【SQL必知必会】笔记 过滤条件
过滤数据:WHERE子句
根据where子句中指定的搜索条件进行过滤
- 筛选价格为2.5元的产品的产品名称和产品价格
SELECT prod_name, prod_price FROM products WHERE prod price=2.50;
- 除了等于之外,where还有一系列操作符,如下图所示。
SELECT vend_id, prod_name FROM products WHERE vend _id > 1003;
SELECT prod_name, prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
除了上图所示的操作符,还有IS NULL(为NULL值)。
SELECT prod_name FROM products WHERE prod_price IS NULL;
- SQL中引号用法
SELECT vend_id, prod_name FROM products WHERE vend _id <> 'DLL01';
单引号限定字符串,将值与串类型的列进行比较,需要限定引号。
用来与数值列进行比较不用引号 。
数据高级过滤:and,or,in,not用法
- AND:多条件同时满足(“且”)
SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;
- OR:满足任一条件即可(“或”)
SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;
- 筛选出满足ID等于价格大于10且1002或1003的产品的产品名称和产品价格
SELECT prod_name, prod_price FROM products WHERE (vend id = 1002 OR vend id = 1003) AND prod price >= 10;
注意:跟数学的算式一样,需要对前面加上圆括号,不然就会筛选出ID为1003或者ID为1002且价格大于10的产品,不符合要求。
- IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。 IN的条件之间用逗号分隔,全都括在圆括号中。
SELECT prod_name, prod_price FROM products WHERE vend_id IN (1002,1003);
in和or具有相同的筛选功能,用法上更简洁
- NOT用法:否定它之后所跟的任何条件。
即筛选ID不是1002或者1003的产品
SELECT prod_name, prod_price FROM products WHERE vend_id NOT IN (1002,1003);