数据库查询语句详解:从单表到多表操作
需积分: 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`的顺序。
**典型的单表查询语句**:结合实际业务场景,例如查询特定部门的所有员工,或者查找特定日期范围内的入职员工。
通过以上知识点的学习,可以灵活地对数据库进行数据检索,满足不同需求。在实际工作中,掌握这些查询语句对于有效管理和分析数据至关重要。
2018-11-16 上传
2022-12-03 上传
2024-01-03 上传
2020-12-17 上传
2021-10-03 上传
2020-12-15 上传
2018-10-12 上传
冰焰435
- 粉丝: 42
- 资源: 5
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器