数据库查询语句详解:从单表到多表操作
需积分: 0 18 浏览量
更新于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`的顺序。
**典型的单表查询语句**:结合实际业务场景,例如查询特定部门的所有员工,或者查找特定日期范围内的入职员工。
通过以上知识点的学习,可以灵活地对数据库进行数据检索,满足不同需求。在实际工作中,掌握这些查询语句对于有效管理和分析数据至关重要。
184 浏览量
707 浏览量
201 浏览量
1493 浏览量
1788 浏览量
1722 浏览量
1486 浏览量

冰焰435
- 粉丝: 42
最新资源
- webacus工具实现自动页面生成与报表导出功能
- 深入理解FAT32文件系统及其数据存储与管理
- 玛纳斯·穆莱全栈Web开发学习与WakaTime统计
- mini翼虎播放器官方安装版:CG视频教程全能播放器
- CoCreate-pickr:轻便的JavaScript选择器组件指南与演示
- 掌握Xdebug 5.6:PHP代码调试与性能追踪
- NLW4节点项目:使用TypeORM和SQLite进行用户ID管理
- 深入了解Linux Bluetooth开源栈bluez源代码解析
- STM32与A7105射频芯片的点对点收发控制实现
- 微信高仿项目实践:FragmentUtil使用与分析
- 官方发布的CG视频教程播放器 mini翼虎x32v2015.7.31.0
- 使用python-lambder自动化AWS Lambda计划任务
- 掌握异步编程:深入学习JavaScript的Ajax和Fetch API
- LTC6803电池管理系统(BMS)经典程序解析
- 酷音传送v2.0.1.4:正版网络音乐平台,歌词同步功能
- Java面向对象编程练习:多态在游戏对战模拟中的应用