MySQL基础教程——查询数据

共 1685字,需浏览 4分钟

 ·

2020-09-16 20:36

点击上方SQL数据库开发,关注获取SQL视频教程


SQL专栏

SQL基础知识汇总

SQL高级知识汇总


MySQL 数据库沿用SQL的SELECT语句来查询数据。

语法
SELECT column_name1,column_name2 
FROM table_name 
[WHERE clause]
[LIMIT N][ OFFSET M]

示例数据
我们以Customers表为例,来讲解MySQL中的数据查询功能。

查询单列
即只显示某一列数据,我们以查询Customers表中的姓名为例,可以这样写SQL代码:


SELECT `姓名` FROM customers


结果为:

查询多列
与查询单列的写法类似,不同的是必须在SELECT后面给出多个列名,列名用逗号(,)隔开,例如我们要查询Customers表中客户的姓名和地址,可以这样写:


SELECT `姓名`,`地址` FROM customers


结果为:

查询所有列
除了指定列名以为,SELECT查询语句还可以查询表的所有列名而不必一一列出来,在SELECT后面使用通配符星号(*)来达到该作用。例如我们想查看Customers表里的所有数据,可以这样写:


SELECT * FROM customers;
结果为:
其实就是我们上面的示例数据的结果。

查询结果去重
当我们查询Customers中的城市列时,发现返回的结果中广州和北京都重复了。要在查询结果中去掉重复行,我们可以使用关键字:DISTINCT来去重。如下:


SELECT DISTINCT 城市 FROM customers;


结果为:
注意:DISTINCT不能部分去重,当它后面有多列时,只有当这些列都重复时DISTINCT才会去掉重复的,例如:


SELECT DISTINCT 城市,邮编 FROM customers;
因为城市和邮编都是一一对应的,这里使用DISTINCT可以去掉重复的数据,结果为:

但是如果查询customers表中的客户ID和城市时,使用DISTINCT,则不会对城市单独去重了,因为客户ID没有对应的重复值


SELECT DISTINCT 客户ID,城市 FROM customers;
结果为:

返回指定行数
如果一张表的数据行非常多,但是我们又不想完成显示所有记录行,这时候可以使用LIMIT关键字来返回指定的行数,例如:返回customers表中的前3行


SELECT * FROM customers LIMIT 3;


结果为:

如果要得到第4-6行(即下3行)要怎么操作呢?这时我们可以使用LIMIT的第二个参数来实现,例如:


SELECT * FROM customers LIMIT 3,3;
结果为:

其中第一个3表示起始行的下标,第二个3表示返回的行数。

注意:当LIMIT使用两个参数时,第一个参数的起始下标为0开始而不是1,所以上面的第一个3实际上是第4行开始,务必记住!

查询带表名的列
当我们之后讲到关联查询时,如果两个表里面有相同的列名时,为了区分,我们会在列名前面添加表名来区别,例如:
SELECT customers.`客户ID`,orders.`客户ID` 
FROM customers,orders
where customers.`客户ID`=orders.`客户ID`


结果为:
其中的关联查询我们后面章节为讲述,此处只是为了告诉大家区别列名的用法。


——End——

后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
这是一个能学到技术的公众号,欢迎关注
点击「阅读原文」了解SQL训练营

浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报