sql题目练习——单表查询
题目:
有一张 employees 表,包含字段 employee_id(员工编号,主键),employee_name(员工姓名),department(部门),salary(薪资),hire_date(入职日期)。编写 SQL 查询薪资在 3000 到 5000(包含边界值)之间,且入职日期在 2019 年之后的员工姓名和部门,结果按薪资降排列
解答:
select employee_name,department
from employees
where hire_date>'2019-01-01' AND salary>=3000 AND salary<=5000
order by salary DESC
追问:
只想显示第 3 到第 5 条记录
追答:
select employee_name,department
from employees
where hire_date>'2019-01-01' AND salary>=3000 AND salary<=5000
order by salary DESC
limit 2,3
相关知识点总结
1. 条件查询
- 比较运算符:使用
>
、<
、>=
、<=
等比较运算符来筛选满足特定条件的数据。如在 “薪资在3000到5000之间,且入职日期在2019年之后” 的条件中,使用了>
、>=
和<=
运算符。 - 逻辑运算符:通过
AND
逻辑运算符连接多个条件,实现多条件同时满足的筛选。例如,WHERE hire_date>'2019 - 01 - 01' AND salary>=3000 AND salary<=5000
确保入职日期和薪资条件都满足。
2. 范围查询
BETWEEN
关键字:BETWEEN
用于指定一个闭区间范围,例如salary BETWEEN 3000 AND 5000
,等价于salary>=3000 AND salary<=5000
,使代码更简洁。
3. 排序
ORDER BY
子句:用于对查询结果进行排序。ORDER BY salary DESC
按薪资降序排列,若要升序则使用ASC
,ASC
通常可省略,因为默认是升序。
4. 结果集限制‼️
LIMIT
子句:在MySQL中用于限制返回结果的行数。LIMIT offset, count
,offset
表示偏移量(从0开始),count
表示返回的行数。例如要显示第3到第5条记录,可使用LIMIT 2, 3
(偏移量为2,即从第3条记录开始,返回3条记录)。