SQL学习 — DQL — 条件查询
DQL语言学习
数据查询语言(Data Query Language),关键字 select
2.条件查询
2.1 条件表达式筛选
| # 一、按条件表达式筛选 |
| # 案例1:查询工资>12000的员工信息 |
| SELECT * FROM employees |
| WHERE salary > 12000; |
| |
| # 案例2:查询部门编号不等于90号的员工名和部门编号 |
| SELECT |
| CONCAT(last_name,first_name) AS "员工名", |
| department_id |
| FROM |
| employees |
| WHERE |
| department_id <> 90; |
2.2 逻辑表达式筛选
| # 二、按逻辑表达式筛选 |
| # 案例1:查询工资在10000到20000之间的员工名、工资以及奖金 |
| SELECT |
| CONCAT(last_name,first_name) AS "员工名", |
| salary, |
| commission_pct |
| FROM |
| employees |
| WHERE |
| salary >= 10000 AND salary <= 20000; |
| |
| # 案例2:查询部门编号不是在90~110之间,或者工资高于15000的员工信息 |
| SELECT |
| * |
| FROM |
| employees |
| WHERE |
| department_id < 90 OR department_id > 110 |
| # not(department_id >= 90 AND department_id <= 110) |
| OR |
| salary > 15000; |
2.3 模糊查询
| # like案例 |
| # like案例1:查询员工名中包含字符a的员工信息 |
| SELECT * FROM employees |
| WHERE last_name LIKE '%a%'; |
| |
| # like案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资 |
| SELECT |
| last_name, salary |
| FROM |
| employees |
| WHERE |
| last_name LIKE '__n_l%'; |
| |
| # like案例3:查询员工名中第二字符为_的员工名 |
| |
| |
| |
| |
| |
| SELECT |
| last_name |
| FROM |
| employees |
| WHERE |
| last_name LIKE '_$_%' ESCAPE '$'; |
| |
| |
| # between and案例 |
| # between and案例1:查询员工编号在100到120之间的员工信息 |
| SELECT * FROM employees |
| WHERE employee_id BETWEEN 100 AND 120; |
| # in案例 |
| # in案例1:查阅员工的工种编号是 IT_PROT、AD_VP、AD_PRES中的一个员工名和工种编号 |
| SELECT |
| last_name, job_id |
| FROM |
| employees |
| WHERE |
| job_id IN('IT_PROT', 'AD_VP', 'AD_PRES'); |
| # is null案例 |
| # is null案例1:查询没有奖金的员工名和奖金率 |
| SELECT |
| last_name, commission_pct |
| FROM |
| employees |
| WHERE |
| commission_pct IS NULL; |
2.4 安全等于
| # 安全等于 <=> |
| # <=>案例1:查询没有奖金的员工名和奖金率 |
| SELECT |
| last_name, |
| commission_pct |
| FROM |
| employees |
| WHERE |
| commission_pct <=> NULL; |
| |
| # <=>案例2:查询工资为12000的员工信息 |
| SELECT * |
| FROM employees |
| WHERE salary <=> 12000; |
| |
| # is null pk 安全等于<=> |
| |
| |
| |
| |
| |
| |
2.5 条件查询练习
| # 将以下内容复制到sql图像化客户端界面进行思考 |
| 1. 查询工资大于 12000 的员工姓名和工资 |
| 2. 查询员工号为 176 的员工的姓名和部门号,奖金率和年薪 |
| 3. 选择工资不在 5000 到 12000 的员工的姓名和工资 |
| 4. 选择在 20 或 50 号部门工作的员工姓名和部门号 |
| 5. 选择公司中没有管理者的员工姓名及 job_id |
| 6. 选择公司中有奖金的员工姓名,工资和奖金级别 |
| 7. 选择员工姓名的第三个字母是 a 的员工姓名 |
| 8. 选择姓名中有字母 a 和 e 的员工姓名 |
| 9. 显示出表 employees 表中 first_name 以 'e'结尾的员工信息 |
| 10. 显示出表 employees 部门编号在 80-100 之间 的姓名、职位 |
| 11. 显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、职位 |
| 12. 查询没有奖金,且工资不小于18000的员工名和工资 |
| 13. 查询employees表中,job_id不为'IT'或者工资为12000的员工信息 |
| 14. 查询部门departments表中涉及到了哪些位置编号 |
| 15. 经典面试题:试问 |
| SELECT * FROM employees; |
| 和 |
| SELECT * FROM employees |
| WHERE commission_pct LIKE '%%' AND last_name LIKE '%%'; |
| 结果是否一样?并说明原因。 |
| |
| SELECT * FROM employees; |
| 那么和 |
| SELECT * FROM employees |
| WHERE commission_pct LIKE '%%' OR last_name LIKE '%%'; |
| 相比,结果是否一样? |
| |
2.6 条件查询练习答案
文件名:02SQL_conditionquery.sql
链接:https://pan.baidu.com/s/11Xqwc9F7W3SZwaRH_8sFhA?pwd=ccjz
提取码:ccjz
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具