SQL查询实例:从基础到高级操作

需积分: 7 0 下载量 111 浏览量 更新于2024-09-10 收藏 16KB DOCX 举报
"SQL查询99法是一份关于如何使用SQL进行数据查询的教程,涵盖了基础到进阶的各种查询技巧。教程中通过一系列实例展示了如何从一个名为`emp`的员工表中提取不同类型的员工信息,包括编号、姓名、工作、年薪、奖金等。" 在SQL查询中,以下是一些关键知识点的详细说明: 1. 选择所有列:`SELECT * FROM emp;` 这是最基本的查询,返回`emp`表中的所有记录和所有列。 2. 选择特定列:`SELECT empno, ename, job FROM emp;` 仅选择指定的列(如员工编号、姓名和职位)。 3. 别名的使用:`SELECT empno 编号, ename 姓名, job 工作 FROM emp;` 可以给列设置别名,使输出更易读。 4. 选择单个列:`SELECT job FROM emp;` 用于获取某一列的所有值。 5. 去除重复值:`SELECT DISTINCT job FROM emp;` 使用`DISTINCT`关键字去除同一列中的重复值。 6. 对多列去重:`SELECT DISTINCT empno, job FROM emp;` 对多个列进行去重,只有当所有选定列的组合都不同才会被视作不同的行。 7. 自定义格式化输出:`SELECT '编号是:' || empno || '的雇员,姓名是:' || ename || ',工作是:' || job FROM emp;` 使用字符串连接操作符`||`将字段值与文本结合,定制输出格式。 8. 计算年薪:`SELECT ename, sal * 12 AS income FROM emp;` 计算员工的年薪,并用`AS`关键字给计算结果列取别名。 9. 条件筛选:`SELECT * FROM emp WHERE sal > 1500;` 使用`WHERE`子句筛选满足特定条件(如工资大于1500)的行。 10. 筛选非空值:`SELECT * FROM emp WHERE comm IS NOT NULL;` 查找佣金(`comm`)不为空的员工。 11. 筛选空值:`SELECT * FROM emp WHERE comm IS NULL;` 相反地,筛选佣金为空的员工。 12. 多个条件同时满足:`SELECT * FROM emp WHERE sal > 1500 AND comm IS NOT NULL;` 使用`AND`操作符,找出工资大于1500且有奖金的员工。 13. 多个条件之一满足:`SELECT * FROM emp WHERE sal > 1500 OR comm IS NOT NULL;` 使用`OR`操作符,找出工资大于1500或有奖金的员工。 14. 逻辑否定:`SELECT * FROM emp WHERE NOT (sal > 1500 AND comm IS NOT NULL);` 使用`NOT`操作符,找出不同时满足工资大于1500和有奖金的员工。 15. 区间查询:`SELECT * FROM emp WHERE sal > 1500 AND sal < 3000;` 找出工资在1500到3000之间的员工。 16. 区间查询(包含边界):`SELECT * FROM emp WHERE sal >= 1500 AND sal <= 3000;` 或者 `SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;` 查找工资在1500到3000(含边界)的员工。 17. 日期条件:`SELECT * FROM emp WHERE hiredate BETWEEN '1981-01-01' AND '1981-12-31';` 使用`BETWEEN`查找在特定日期范围内入职的员工。 这些示例展示了SQL在处理数据查询时的灵活性和强大功能,包括选择、过滤、别名、计算、逻辑运算和日期处理等多种操作。通过掌握这些基本查询,可以应对大多数数据检索的需求。