1. 语法
SELECT
查询列表
FROM
表名
WHERE
筛选条件;
执行顺序:表名——筛选——查询列表
2. 分类
(1)按条件表达式筛选
条件运算符:>(大于) <(小于) =(等于) !=(不等于) <>(不等于) >=(大于等于) <=(小于等于)
(2)按逻辑表达式筛选
逻辑表达式:&&(与) ||(或) !(非) and or not
(3)模糊查询
关键词:
like
between and
in
is null
3. 使用
(1)按条件表达式筛选
#查询员工工资大于12000的员工信息
SELECT
*
FROM
表名
WHERE
salary>12000;
#查询部门编号不等于90的员工名和部分编号
SELECT
员工名(字段名),
部分编号(字段名)
FROM
表名
WHERE
部门编号<>90;
(2)按逻辑表达式筛选
#查询工资在10000-20000之间的员工名、工资和奖金
SELECT
员工名,
工资,
奖金
FROM
表名
WHERE
salary>=10000 AND salary<=20000;
(3)模糊查询
like
特点:
- 一般和通配符一起使用,%表示任意个字符(包含0个字符),_表示任意单个字符
#查询员工名中包含字符a的员工信息
SELECT
*
FROM
表名
WHERE
员工名 LIKE '%a%';
#查询员工名中第三个字符为e、第五个字符为a的员工和工资
SELECT
员工名,
工资
FROM
表名
WHERE
员工名 LIKE '__e_a%';
#查询员工名中第二个字符为_的员工名(通过转义的方式查询 关键字ESCAPE)
SELECT
员工名
FROM
表名
WHERE
员工名 LIKE '_$_%' ESCAPE '$';
between and
特点
- 提高语句的简洁度
- 包含临界值
- 两个临界值不能调换顺序
#查询员工编号在100-120之间的员工信息
SELECT
*
FROM
表名
WHERE
员工编号 BETWEEN 100 AND 120;
in
特点
- 用于判断某字段的值是否属于in列表中的某一项
- 提高语句简洁度
- IN列表的值类型必须统一
- 不支持通配符
#查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的员工和工种编号
SELECT
员工名,
工种编号
FROM
表名
WHERE
工种编号 IN('IT_PROG','AD_VP','AD_PRES');
is null
- =或<>不能用于判断null值
- is null或is not null可以判断null值
#查询没有奖金的员工名和奖金率
SELECT
员工名,
奖金率
FROM
表名
WHERE
奖金率 IS NULL;
#查询有奖金的员工名和奖金率
SELECT
员工名,
奖金率
FROM
表名
WHERE
奖金率 IS NOT NULL;
安全等于 <=>
#查询没有奖金的员工名和奖金率
SELECT
员工名,
奖金率
FROM
表名
WHERE
奖金率 <=>NULL;
#查询工资为12000的员工信息
SELECT
员工名,
工资
FROM
表名
WHERE
salary <=> 12000;