MySQL基础教程

第一章: 环境搭建,安装MySQL

第二章: 掌握数据库的核心概念

第三章: MySQL服务与Show命令

第四章: 创建数据库与数据表

第五章: MySQL增查改删

第六章: MySQL常用函数

第七章: 在Python中操作MySQL

首页 > MySQL基础教程 > 第五章: MySQL增查改删 > 5.2节: 使用SELECT查询数据

5.2节: 使用SELECT查询数据

薯条老师 2021-11-23 17:22:57 189395 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

5.2.1 SELECT的SQL语法

使用SELECT动词查询数据的基本语法:

SELECT select_expr[,select_expr]... [FROM table_references]

select_expr表示查询表达式,在SELECT后面可以接多个查询表达式,表达式之间以英文逗号进行分隔。FROM是个关键字,表示从指定的数据表中进行查询。而table_references即为待查询的数据表。

5.2.2 SELECT查询列值

在上节教程中,我们往商品表中插入了四条数据,现在我们通过SELECT动词来查询商品表的数据。在查询数据前,先切换到chipscoco数据库:

mysql> use chipscoco;
Database changed

接着执行SELECT动词来查询数据:

mysql> select id,name,price,ct from goods;
+----+--------------+-------+---------------------+
| id | name         | price | ct                  |
+----+--------------+-------+---------------------+
|  1 | 黑人牙膏     |    25 | 2021-11-22 17:27:44 |
|  2 | 云南白药     |    28 | 2021-11-22 17:33:24 |
|  3 | 青岛啤酒     |     7 | 2021-11-22 17:33:24 |
|  5 | 湖南辣条     |    38 | 2021-11-22 17:52:33 |
+----+--------------+-------+---------------------+
4 rows in set (0.04 sec)

查询成功后,命令行会以表格的形式来显示数据。SQL语句select id, name, price, ct表示查询数据表中的所有id列,name列,price列,ct列。如仅需查询特定的列,则只需传递指定的列名即可。比如仅查询id列和ct列,则SQL为:

mysql> select id, ct from goods;
+----+---------------------+
| id | ct                  |
+----+---------------------+
|  1 | 2021-11-22 17:27:44 |
|  2 | 2021-11-22 17:33:24 |
|  3 | 2021-11-22 17:33:24 |
|  5 | 2021-11-22 17:52:33 |
+----+---------------------+
4 rows in set (0.00 sec)

也可以在select动词后面加一个通配符*,用来输出所有的字段值:

mysql> select * from goods;
+----+--------------+-------+---------------------+
| id | name         | price | ct                  |
+----+--------------+-------+---------------------+
|  1 | 黑人牙膏     |    25 | 2021-11-22 17:27:44 |
|  2 | 云南白药     |    28 | 2021-11-22 17:33:24 |
|  3 | 青岛啤酒     |     7 | 2021-11-22 17:33:24 |
|  5 | 湖南辣条     |    38 | 2021-11-22 17:52:33 |
+----+--------------+-------+---------------------+
4 rows in set (0.04 sec)

5.2.3 使用DISTINCT去重

如需在查询过程中滤掉重复的数据,则可以在SELECT后面使用DISTINCTDISTINCTROW关键字。DISTINCT用来排重字段值,而DISTINCTROW用来对每一行数据进行排重。SQL实例:

mysql> insert into goods(name, price) values("云南白药", 19);
Query OK, 1 row affected (0.09 sec)
mysql> select distinct name from goods;
+--------------+
| name         |
+--------------+
| 黑人牙膏     |
| 云南白药     |
| 青岛啤酒     |
| 湖南辣条     |
+--------------+
4 rows in set (0.00 sec)

在以上SQL中,先往商品表中插入一条重复的列值:云南白药,在查询时再使用DISTINCT关键字进行排重。读者可以尝试将SELECT中的DISTINCT去掉,以分析输出的结果。在我们的测试中,仅对name字段进行排重,如需对多个字段值进行排重,该如何编写SQL语句?当使用DISTINCT来排重时,MySQL会自动对DISTINCT后面的多个字段值进行排重。SQL实例:

mysql> insert into goods(name, price) values("云南白药", 19);
Query OK, 1 row affected (0.01 sec)
mysql> select distinct name,price from goods;
+--------------+-------+
| name         | price |
+--------------+-------+
| 黑人牙膏     |    25 |
| 云南白药     |    28 |
| 青岛啤酒     |     7 |
| 湖南辣条     |    38 |
| 云南白药     |    19 |
+--------------+-------+
5 rows in set (0.00 sec)

在以上SQL中,我们往商品表中插入了跟上一条记录的name列和price列均相同的值:("云南白药", 19),在查询时使用了DISTINCT关键字来修饰name和price,这时查询出来的结果不会包含最后插入的这条重复的数据。

5.2.4 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4)
Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:



欢迎 发表评论: