数据库查询语句详解:从单表到多表操作

需积分: 0 0 下载量 169 浏览量 更新于2024-06-15 收藏 1.52MB PDF 举报
"数据库查询语句是数据库管理系统中用于检索数据的关键组成部分。本知识点主要围绕DQL(Data Query Language)展开,通过创建和操作四个示例表格——dept(部门表)、emp(员工表)、salgrade(薪资等级表)和bonus(奖金表)来讲解各种查询技巧。" 在数据库中,查询语句通常使用SQL(Structured Query Language)编写,它允许用户检索、更新和管理存储在关系型数据库中的数据。DQL是SQL的一个子集,专注于数据查询。 首先,我们创建了四张表格: 1. `DEPT` 表用于存储部门信息,包含部门编号(DEPTNO)、部门名称(DNAME)和部门位置(LOC)。 2. `EMP` 表记录员工数据,包括员工编号(EMPNO)、姓名(ENAME)、职位(JOB)、上级领导编号(MGR)、入职日期(HIREDATE)、基本工资(SAL)和补助(COMM),并且与DEPT表建立了外键关联。 3. `SALGRADE` 表定义薪资等级,包含等级(GRADE)以及对应的最低和最高薪资范围。 4. `BONUS` 表用于记录员工的奖金信息,包括姓名、职位、基本工资和奖金。 在这些表格的基础上,我们可以学习以下查询知识点: **单表查询**:从一个表中选择数据,例如从`EMP`表中查找所有员工信息。 **WHERE子句**:用于指定查询条件,例如`SELECT * FROM EMP WHERE SAL > 5000`将返回所有工资超过5000的员工。 **使用函数**: - **单行函数**如`UPPER()`(转换为大写)、`LOWER()`(转换为小写)、`LENGTH()`(计算字符串长度)等。 - **数值函数**如`SUM()`(求和)、`AVG()`(平均值)、`MAX()`(最大值)、`MIN()`(最小值)等。 - **日期与时间函数**如`DATE_FORMAT()`(格式化日期)或`DATEDIFF()`(计算两个日期之间的差值)。 - **流程函数**如`IF()`(条件判断)、`SWITCH()`(多条件判断)用于在查询中进行条件逻辑处理。 - **其他函数**如`CONCAT()`(连接字符串)、`TRIM()`(去除空格)等。 **GROUP BY行分组**:将结果集按指定列进行分组,例如`SELECT DEPTNO, COUNT(*) FROM EMP GROUP BY DEPTNO`统计每个部门的员工数量。 **HAVING分组后筛选**:在`GROUP BY`之后对分组应用条件,例如`SELECT DEPTNO, AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL) > 5000`找出平均工资高于5000的部门。 **LIMIT限制查询行数**:用于限制返回的结果集大小,例如`SELECT * FROM EMP LIMIT 5`将只返回前5条记录。 **SELECT语句总结**:包括选择列、指定表、添加条件、排序、分组等步骤。 **SELECT语句的执行顺序**:一般遵循`FROM-WHERE-GROUP BY-HAVING-SELECT-DISTINCT-ORDER BY-LIMIT`的顺序。 **典型的单表查询语句**:结合实际业务场景,例如查询特定部门的所有员工,或者查找特定日期范围内的入职员工。 通过以上知识点的学习,可以灵活地对数据库进行数据检索,满足不同需求。在实际工作中,掌握这些查询语句对于有效管理和分析数据至关重要。