MySQL单表查询详解:语法、约束至分组与聚合
35 浏览量
更新于2024-09-03
收藏 85KB PDF 举报
MySQL单表查询操作是数据库管理中常用的技术,本文详细介绍了在MySQL中进行单表查询时的各种关键语法、约束、分组、聚合、过滤、排序以及限制返回结果的数量。以下是主要内容的详细解析:
**语法概览**
在MySQL中,基本的单表查询语法如下:
```sql
SELECT [DISTINCT] 字段1, 字段2, ...
FROM 表名
WHERE 条件
GROUP BY 字段
HAVING 过滤条件
ORDER BY 字段 [ASC|DESC]
LIMIT 限制数目
```
- `SELECT`:指定要返回的列,可以使用`DISTINCT`去除重复数据。
- `FROM`:指定查询的数据来源,即要查询的表。
- `WHERE`:应用筛选条件,用于过滤出满足特定条件的记录。
- `GROUP BY`:对查询结果进行分组,通常与聚合函数一起使用,如COUNT(), SUM(), AVG()等。
- `HAVING`:对分组后的结果进行进一步筛选,用于过滤掉分组后的不满足条件的组。
- `ORDER BY`:按照指定字段对查询结果进行排序,可选升序(`ASC`)或降序(`DESC`)。
- `LIMIT`:限制返回结果的数量。
**关键字执行优先级**
- `FROM`:指定表来源,是查询过程的起点。
- `WHERE`:在获取记录后应用过滤条件。
- `GROUP BY`:在`WHERE`之后,根据字段进行分组。
- `HAVING`:对`GROUP BY`的结果进行过滤。
- `SELECT`:选择要返回的字段。
- `DISTINCT`:对`SELECT`的字段去重,一般紧跟`SELECT`。
- `ORDER BY`:最后对结果排序。
- `LIMIT`:限制最终返回的记录数。
**实例解析**
1. **WHERE子句**:用比较运算符(>, <, >=, <=, <>, !=)、区间范围(between, in)、通配符(like)及逻辑运算符(and, or, not)设置筛选条件。例如:
- `where age > 18`:年龄大于18的记录。
- `where gender in('Male', 'Female')`:筛选出男性和女性用户。
- `where name like 'xiaoming%'`:名字以“xiaoming”开头的记录。
2. **GROUP BY和HAVING**:分组查询用来处理聚合数据,如计算每个部门的平均工资或员工数量。分组是在`WHERE`之后进行的,`HAVING`确保只返回符合筛选条件的分组结果。例如:
- `SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 5000`:获取每个部门薪资超过5000的平均薪资。
3. **ORDER BY和LIMIT**:对查询结果进行排序和限制返回行数。例如,`ORDER BY salary DESC LIMIT 10`:按薪水降序排列,取前10条记录。
通过理解并熟练运用这些SQL语法,你可以有效地执行MySQL单表查询,满足各种数据分析和业务需求。
2016-12-07 上传
2018-03-08 上传
2020-09-09 上传
2020-09-09 上传
2020-09-08 上传
2013-01-28 上传
2020-09-08 上传
2020-09-09 上传
2022-08-08 上传
weixin_38554186
- 粉丝: 0
- 资源: 955
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践