必知必会-第四章
这里开始,我们正式开始接触sql语句了,也是以后工作中会经常用到的地方。
SELECT
想从表中查询出信息,至少给出两条信息:想选择什么(列),和从哪里选择(表)。
从最简单的开始,比如从customer表查看emali这一列。
select email from customer
image.png
同样是customer表,查询多个列,列名之间用‘,’隔开
select email, first_name, address_id
from customer
image.png
提示:如果你在linux和mac上开发,在mysql的命令行中要在每一句sql后面加上';'。
再次提示:SQL语法是不区分大小的,比如select 和 SELECT是等价的,不会报语法方面的错误。但是也是有潜规则的,一般来说关键字大写,所有列名和表名使用小写,这样易于阅读和调试,以及后期项目的维护。
接着刚才的说。
检索所有列,‘’代表所有列。那么查询所有列就是,select * from 表名。
这个是通配符,如果在开发中你确实需要表中的所有列,不然请不要使用,因为这会降低检索和应用程序的性能。
当然,还是有优点的,第一省事,第二它能查询出未知名的列。
去重复,DISTINCT
没有使用DISTINCT.png使用了DISTINCT.png
可以看到,重复的Jon被去掉了,只留有一个。
限制结果
比如,你只想要前5条数据
image.png
当然,你可以要第6条到第10条数据
image.png
limit 5,5 中第一个5代表,返回起始索引,也就是告诉它从哪开始,第二个5代表,返回的条数。
这样的语法很容易让人懵逼,从mysql5开始,可以这么写limit 5 offset 3,表示从第5条开始取,取3条。
提示:有一种特殊情况,比如你要返回前100条数据,可是数据库中只有80条数据,那么数据库只会返回80条。
什么是完全限定的表名
就是以“数据库名.表名”这样的方式来表示表,因为不同的数据库中可以存在相同的表名,这样做就完全确定了是哪个表,降低出错的概率。
image.png
这个在多表联合查询时会有用。也是工作中会经常用到的。