[](()2.2.1 查询部分列
#查询员工表中所有员工的编号、名字、邮箱
SELECT employee_id,first_name,email
FROM t_employees;
[](()2.2.2 查询所有列
#查询员工表中所有员工的所有信息(所有列)
SELECT 所有列的列名 FROM t_employees;
SELECT * FROM t_employees;
- [注意:生产环境下,优先使用列名查询。*的方式需转换成全列名,效率低,可读性差。](()
[](()2.2.3 对列中的数据进行运算
#查询员工表中所有员工的编号、名字、年薪
SELECT employee_id , first_name , salary*12
FROM t_employees;
| 算数运算符 | 描述 |
| — | — |
| + | 两列做加法运算 |
| - | 两列做减法运算 |
| * | 两列做乘法运算 |
| / | 两列做除法运算 |
- [注意:%是占位符,而非模运算符。](()
[](()2.2.4 列的别名
列 as ‘列名’
#查询员工表中所有员工的编号、名字、年薪(列名均为中文)
SELECT employee_id as “编号” , first_name as “名字” , salary*12 as “年薪”
FROM t_employees;
[](()2.2.5 查询结果去重
DISTINCT 列名
#查询员工表中所有经理的ID。
SELECT DISTINCT manager_id
FROM t_employees;
[](()2.3排序查询
语法: SELECT 列名 FROM 表名 [ORDER BY 排序列 [排序规则]](()
| 排序规则 | 描述 |
| — | — |
| ASC | 对前面排序列做升序排序 |
| DESC | 对前面排序列做降序排序 |
[](()2.3.1 依据单列排序
#查询员工的编号,名字,薪资。按照工资高低进行降序排序。
SELECT employee_id , first_name , salary
FROM t_employees
ORDER BY salary DESC;
[](()2.3.2 依据多列排序
#查询员工的编号,名字,薪资。按照工资高低进行升序排序(薪资相同时,按照编号进行升序排序)。
SELECT employee_id , first_name , salary
FROM t_employees
ORDER BY salary DESC , employee_id ASC;
[](()2.4 条件查询
语法:SELECT 列名 FROM 表名 [WHERE 条件](()
| 关键字 | 描述 |
| — | — |
| WHERE 条件 | 在查询结果中,筛选符合条件的查询结果,条件为布尔表达式 |
[](()2.4.1 等值判断(=)
#查询薪资是11000的员工信息(编号、名字、薪资)
SELECT employee_id , first_name , salary
FROM t_employees
WHERE salary = 11000;
- [注意:与 java 不同(==),mysql 中等值判断使用 =](()
[](()2.4.2 逻辑判断(and、or、not)
#查询薪资是11000并且提成是0.30的员工信息(编号、名字、薪资)
SELECT employee_id , first_name , salary
FROM t_employees
WHERE salary = 11000 AND commission_pct = 0.30;
[](()2.4.3 不等值判断(> 、< 、>= 、<= 、!= 、<>)
#查询员工的薪资在6000~10000之间的员工信息(编号,名字,薪资)
SELECT employee_id , first_name , salary
FROM t_employees
WHERE salary >= 6000 AND salary <= 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 10000;
[](()2.4.4 区间判断(between and)
#查询员工的薪资在6000~10000之间的员工信息(编号,名字,薪资)
SELECT employee_id , first_name , salary
FROM t_employees
WHERE salary BETWEEN 6000 AND 10000; #闭区间,包含区间边界的两个值
- [注:在区间判断语法中,小值在前,大值在后,反之,得不到正确结果](()
[](()2.4.5 NULL 值判断(IS NULL、IS NOT NULL)
- IS NULL
列名 IS NULL
- IS NOT NULL
列名 IS NOT NULL
#查询没有提成的员工信息(编号,名字,薪资 , 提成)
SELECT employee_id , first_name , salary , commission_pct
FROM t_employees
WHERE commission_pct IS NULL;