SQL语法知识梳理—(3)DQL条件查询
一、语法
SELECT
selection_list /*要查询的列名称*/
FROM
table_list /*要查询的表名称*/
WHERE
condition /*行条件*/
GROUP BY
grouping_columns /*对结果分组*/
HAVING
condition /*分组后的行条件*/
ORDER BY
sorting_columns /*对结果分组*/
LIMIT
offset_start, row_count /*结果限定*/
执行顺序:
①from子句
②where子句
③group by 子句
④having子句
⑤select子句
⑥order by子句
二、条件查询
2.1语法
select 查询列表
from 表名
where 筛选条件;
特点:
- 按关系表达式筛选 关系运算符:> < >= <= = <>
补充:也可以使用!=,但不建议 - 按逻辑表达式筛选 逻辑运算符:and or not
补充:也可以使用&& || ! ,但不建议 - 可以结合 like、in、between and、is null使用
2.2模糊查询
#like
#案例1:查询姓名中包含字符a的员工信息
SELECT *
FROM employees
WHERE last_name LIKE '%a%';
#案例2:查询姓名中包含第二个字符为_的员工信息
SELECT *
FROM employees
WHERE last_name LIKE '_\_%';
功能:一般和通配符搭配使用,对字符型数据进行部分匹配查询
常见的通配符:
_ 任意单个字符
% 任意多个字符,支持0-多个
like/not like
2.3in语句
功能:查询某字段的值是否属于指定的列表之内
#案例1:查询部门编号是30/50/90的员工名、部门编号
SELECT last_name,department_id
FROM employees
WHERE department_id IN(30,50,90);
2.4between and语句
功能:判断某个字段的值是否介于xx之间
#案例1:查询部门编号是30-90之间的部门编号、员工姓名
SELECT department_id,last_name
FROM employees
WHERE department_id BETWEEN 30 AND 90;
2.5is null/is not null语句
#案例1:查询没有奖金的员工信息
SELECT *
FROM employees
WHERE commission_pct IS NULL;
#案例2:查询有奖金的员工信息
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL;