DISTINCT
SELECT DISTINCT用来过滤结果集中的重复行,确保SELECT子句中返回指定的一列或多列的值是唯一的。
DISTINCT子句只能在SELECT语句中使用。
SELECT *,COUNT(DISTINCT age) from infos i group by age --使用DISTINCT去掉多余的重复记录
WHERE
WHERE子句用来指定过滤条件返回符合查询条件的行记录。
WHERE子句出现在FROM子句之后,但是在ORDER BY子句之前。
SELECT --使用WHERE子句指定SELECT语句返回符合搜索条件的行记录
stuid,age
from
infos i2
WHERE --WHERE放在FROM之后,但是要放在ORDER BY 之前
age = '20' --age > '20'
AND stuid = '124';
要组合条件,可以使用AND、OR和NOT逻辑运算符。
要查找两个值之间的行,可以在WHERE子句中使用BETWEEN运算符。
SELECT --使用WHERE子句指定SELECT语句返回符合搜索条件的行记录
stuid,age
from
infos i2
WHERE --WHERE子句后加入BETWEEN查找在两个值之间的行
age BETWEEN 20 AND 23; --age IN(20,22)
要查询值列表中的行记录,可以使用IN运算符。
AND子句
AND运算符组合了布尔表达式,如果两个表达式都为真,则返回true;如果两个表达式其中有一个表达式为假,则返回false。
SELECT
stuid,age
from
infos i
WHERE
age = '20'
AND stuid = '125'; --AND运算符查询返回了满足两个表达式的行
可以将AND运算符与其他逻辑运算符(比如OR或NOT)进行组合,形成一个条件。
SELECT
stuid,age
from
infos i
WHERE
(age = '20'OR age = '21') --AND运算符可以和OR或NOT进行组合,形成新的条件
AND stuid = '125';
OR
OR运算符组合了布尔表达式,如果其中一个表达式为真(true),则返回true。
SELECT
stuid,age
from
infos i
WHERE
age = "20"
OR age = "21" --OR运算符,表达式有一个为真时,返回true
可以使用IN运算符来代替多个OR运算符。
FETCH
FETCH子句用来限制查询返回的行数
IN
IN子查询
SELECT employee_id, first_name, last_name
FROM employees
WHERE
employee_id IN(
SELECT --子查询
DISTINCT salesman_id
FROM
orders
WHERE
status = 'Canceled'
)
ORDER BY first_Name;
LIKE
LIKE可以用来测试列中的值是否与指定的模式匹配。
SELECT
stuid,age
FROM
infos
WHERE
stuid LIKE '12%'; --stuid LIKE '%23';