MySQL学习:深入解析SELECT语句用法
10 浏览量
更新于2024-08-31
收藏 108KB PDF 举报
MySQL是一种广泛使用的开源关系型数据库管理系统,其SQL查询语言是数据库操作的核心。本文将深入探讨MySQL中的SELECT语句,它是用于从数据库中检索数据的基本工具。我们将通过实例详细介绍每个组成部分,包括完整语法、去重选项、字段别名、数据源、WHERE子句、GROUP BY子句、HAVING子句、ORDER BY子句和LIMIT子句。
完整语法
SELECT语句的基本结构如下:
```sql
SELECT 去重选项 字段列表 [AS 字段别名]
FROM 数据源
[WHERE 子句]
[GROUP BY 子句]
[HAVING 子句]
[ORDER BY 子句]
[LIMIT 子句];
```
1. 去重选项:`ALL`表示不去除重复记录,而`DISTINCT`则会去除查询结果中的重复行。
```sql
SELECT ALL/DISTINCT 字段列表 FROM 表名;
```
2. 字段别名:用于给查询结果的字段指定一个新的名称,便于理解和展示。
```sql
SELECT 字段 AS 字段别名 FROM 表名;
```
3. 数据源:可以是单个表、多个表的联合或子查询,用于指定从哪里获取数据。
```sql
SELECT * FROM 表名;
```
4. WHERE子句:根据指定的条件过滤数据源中的行。
```sql
SELECT * FROM 表名 WHERE 条件;
```
5. GROUP BY子句:用于对数据进行分组,通常与聚合函数(如COUNT、SUM、AVG等)一起使用。
```sql
SELECT 字段 FROM 表名 GROUP BY 分组字段;
```
6. HAVING子句:在GROUP BY后的数据集上添加条件过滤,类似于WHERE但作用于分组后的结果。
```sql
SELECT 字段 FROM 表名 GROUP BY 分组字段 HAVING 条件;
```
7. ORDER BY子句:对查询结果进行排序。
```sql
SELECT * FROM 表名 ORDER BY 排序字段 [ASC/DESC];
```
8. LIMIT子句:限制返回的记录数量,常用于分页。
```sql
SELECT * FROM 表名 LIMIT 起始位置, 记录数量;
```
实例解析
以创建一个名为`student`的表为例,包含`name`和`gender`两个字段,插入两条数据:
```sql
CREATE TABLE student (name VARCHAR(15), gender VARCHAR(15));
INSERT INTO student (name, gender) VALUES ("lilei", "male");
INSERT INTO student (name, gender) VALUES ("lilei", "male");
```
- 去重:默认情况下,SELECT * FROM student; 将返回两条重复记录。使用DISTINCT关键字,如SELECT DISTINCT * FROM student; 只返回一条记录。
- 字段别名:若希望将`name`字段显示为“姓名”,可使用SELECT name AS "姓名" FROM student;。
通过上述示例,我们可以理解MySQL SELECT语句的各个部分及其用法。在实际应用中,根据需求灵活组合这些元素,能够实现复杂的查询操作,有效地从数据库中提取所需信息。
2017-08-11 上传
2019-02-23 上传
点击了解资源详情
点击了解资源详情
2023-08-22 上传
2010-03-18 上传
2015-06-25 上传
2017-09-19 上传
2011-10-14 上传
weixin_38620314
- 粉丝: 1
- 资源: 913
最新资源
- BeatTheBotChallenge:来挑战这个玩摩托赛车电话游戏的机器人,看看它是如何制造的,并帮助改进它!
- GetHtmlTool:Qt初步获取网页原始码
- StudentClass,java怎么看源码,javap2p网贷源码下载
- 宠物播种机
- zeromq-4.2.0.tar.zip
- nginx-http-concat:WordPress插件可将单个脚本文件CSS和Javascript连接成一个资源请求
- 高级JSON表单规范第2章:输入小部件
- angularjs-studies
- city-generator:C ++ City Generator
- SocketProject:SocketProject
- crawl_html:python网络爬虫-爬网页原始码
- 手写 Volley 网络访问框架
- living-with-django:关于容忍最臃肿的python web框架的博客
- RestaurantsAppWithCollectionViews
- SkeSubDomain:利用递归归,通过匹配网页源码里的子域内容收集所有的子域信息,可收集四级五级等多级子域名
- portfolio:我的投资组合网站,其中包含我的所有工作