SQL必知必会(第四版) 读书笔记select语句
这是本人的SQL必知必会(第四版) 读书笔记,只对知识点做了总结梳理,一些比较深奥或者觉得没必要记的就没有添加,以方便自己阅读,当中可能有自己的理解。如果对原书感兴趣的请自行阅读原书。
一、select语句
1.格式:
select 列 from 表;
选择 列 从 表;
简单的就是从哪张表选哪列,可以选多列,列与列之间用逗号隔开(注意:英文格式的逗号),但是最后一列后面不能加逗号,否则不错。
select 列1,列2,列3 from 表;
SQL语句不区分大小写,即select写成SELECT或Select都是一样的效果。
但是表名和列名会有所不同,看具体的DBMS(数据库管理系统)。
SQL语句换行是不影响执行结果的。
2.检索所有列:
当列较多时,我们不想一个个的写列名,可以写通配符:*,
select * from 表;
这样就会查询所有的列,但是一般情况下是不支持用通配符来检索,检索不需 要的列通常会降低检索和应用程序的性能。
但是用通配符可以检索出名字未知的列。
3.当我们想看看某列有几种值时,不可能把列查出来一个个的看,这时可以用到‘DISTINCT’关键字,即可返回某列不同的值。
select DISTINCT 列 from 表;
需要注意的是,DISTINCT并不仅仅作用于紧随其后的列而是所有的列。
4.有时我们并不需要全部数据而是前几列或者后几列,这时需要限制结果条数,但是不同的DBMS有不同的写法,这里我只记下MySQL和Oracle的,如果想看别的请自行百度。
MySQL:limit
select 列 from 表 limit num1 offset num2;
简化:
select 列 from 表 limit num1,num2;
num1表示从哪列开始,注意:这个偏移量从0开始,也就是说,如果想返回第一列,那么num1写0而不是1。num2表示想返回的列数。
select 列 from 表 limit 0,3;
表示从第一列选三列,如果num1为0,可省略。
select 列 from 表 limit 3;
Oracle:ROWNUM(行计数器)
select 列 from 表 where ROWNUM <=5;