6.1 使用where子句
在检索数据时往往需要指定搜索条件,因此就需要使用WHERE子句来对条件进行过滤:
SELECT prod_name, prod_price
FROM products
WHERE prod_price = 2.50;
- 限定条件之后就只返回当条件成立下的行
- ORDER BY子句要位于WHERE后,否则会报错
6.2 逻辑运算符
WHERE语句可以搭配上逻辑运算符来进行条件筛选:
SELECT prod_name, prod_price
FROM products
WHERE
#等于
prod_name = 'fuses';
#小于
prod_price < 10;
#小于等于
prod_price <= 10;
当然,还可以进行不匹配检索:
SELECT prod_name, prod_price
FROM products
WHERE vend_id <> 1003;
#等价于
WHERE vend_id != 10;
6.3 搭配其他关键字应用
6.3.1 区间BETWEEN AND
如果想查找某个区间范围内的值,可以在WHERE语句中搭配BETWEEN..AND
关键字来进行:
SELECT prod_name, prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10;
- 类似于BETWEEN..AND的还有IN关键字的用法,但是和前者不同的是,后者只能查找限定值里的行,即是否满足条件为限定值:
SELECT prod_name, prod_price
FROM products
WHERE prod_price IN (5,10);
- 这里只会返回当prod_price=5或prod_price=10的结果,两者还是稍微有点区别的
6.3.2 IS关键字
除了可以搭配BETWEEN关键字之外,还能搭配IS关键字,用来查看当筛选条件为某个条件时所包含的记录:
SELECT prod_name
FROM products
WHERE prod_price IS NULL;
如果prod_price中有空值则返回,否则就不返回任何结果
6.3.3 AND和OR操作符
AND和OR操作符的使用可以使得WHERE条件查询子句可以实现多条件的筛选:
SELECT prod_name, prod_price
FROM products
WHERE vend_id = 1002 OR vend_id =1003
AND prod_price >= 10;
- 当AND和OR出现的时候,AND的计算优先级更高,此时的操作符会出现错误运用
正确的做法是将AND前面的条件用圆括号括起来
6.3.4 NOT关键字
NOT关键字与IS关键字是相反的操作,即否定NOT之后的条件