MySQL基础教程——查询数据

点击上方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学习路线图,首次公开

思科前员工删库跑路,损失达 1600 多万

孙悟空无姓无名的时候,阎王生死簿是怎么写的呢?

同济版《线性代数》引发激烈争议

有个程序员老公有多爽???
这是一个能学到技术的公众号,欢迎关注

点击「阅读原文」了解SQL训练营

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SQL数据库开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值