数据库-数据过滤

一:组合WHERE子句

/*
为了进行更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以进行两种方式使用:以AND子句的方式或OR子句的方式使用。

操作符:用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符。
*/

二:AND操作符

/*
为了通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。

AND :用在WHERE子句中的关键字,用来指示检索满足所有给定的条件的行。

此SQL语句检索由供应商1003制造且价格小于等于10美元的所有产品的名称和价格。
*/

SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 1003 AND prod_price <= 10;

三:OR操作符

/*
OR操作符:它指示MySQL检索匹配任一条件的行。

OR操作符告诉DBMS匹配任一条件而不是同时匹配两个条件。
*/

SELECT prod_name,prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003;

四;计算次序

/*

供应商1003制造的任何价格为10美元(含)以上的产品,或由供应商1002制造的任何产品,而不管其价格如何。
*/

SELECT prod_name,prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >=10;

/*

供应商1002或1003制造的任何价格为10美元(含)以上的产品。
*/
SELECT prod_name,prod_price
FROM products
WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >=10;

五:IN操作符

/*
圆括号在WHERE子句中还有另一种用法。IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配

IN :WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。
*/

SELECT prod_name,prod_price
FROM products
WHERE vend_id IN (10021003)
ORDER BY prod_name;

六:NOT操作符

/*
WHERE子句的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

MySQL中支持使用NOT对IN、BETWEEN、EXISTS子句取反。
*/ SELECT prod_name,prod_price FROM products WHERE vend_id NOT IN(10021003) ORDER BY prod_name;
原文地址:https://www.cnblogs.com/de-ming/p/13168554.html