一、查询语句的组成
查询语句由多个子句组成。例如,select * from T1;由select 子句和from 子句两个子句组成。
子句的执行是有先后顺序的,而这种顺序和子句出现的位置无关。
二、from子句
在查询语句中,from子句是最先被执行的。用于将数据表从硬盘拷到内存中。
from后面只跟数据表。数据表可以重命名。

as可以省略。
二、select子句
本质是一种输出。并非什么选择。
1、输出指定列


字段名可以写成表名的一个成员,用点号表示。


2、字段名重命名

3、去重

如果后面跟多个字段,只有多个字段都相同才认为重复。

三、where子句
用来对记录进行筛选。它的执行顺序在from之后,select之前。
1、比较符
<, <=, >, >=, =,(没有==), !=
注意:由于where子句在select执行之前,所以select对字段的重命名不能用在where中。

2、比较符的组合


3、between


4、集合判断

可以反过来排除集合中的元素。

5、NULL的比较
NULL不能比较,只能用is null或者is not null。

6、模糊查询
用like,通配符有两种,%和_,前者表示多个字符,后者只有一个字符。

模糊查询不仅可以查字符型字段,还可以查整型数等类型的字符。

7、正则表达式查询

四、order子句
用来排序。

如果升序排序,asc可以忽略。
降序用desc。

可以对多个字段进行排序,在第一个字段相同的时候,再对第二个字段排序。

五、limit限定


六、group by子句
分组查询。

分组后,同组的记录被压缩到了第一条后面看不到。

count是计数函数,计数的字段如果为NULL将不计,相同不影响。
为了去除NULL的影响,一般在count函数中使用*代替具体的字段。
注意:分组后,select输出的字段除了统计的字段外,只能输出分组依据的那个字段。其它的都不合适。
除了count函数之外,还有sum, avg, min, max。


七、having子句
用来对分组之后的结果进行进一步的筛选。就像where一样。

having只对分组后的结果进行筛选,而where是对分组前的结果筛选,两者不能混用。
本文详细介绍了SQL查询语句的各个组成部分及其执行顺序,包括from子句如何加载数据表、select子句如何输出数据、where子句如何进行记录筛选、order子句如何排序结果以及limit如何限制返回的行数。
5156

被折叠的 条评论
为什么被折叠?



