数据库_关键词用法
数据库_关键词用法
select、from、where、group by、having、order by、limit组合用法
一、关键词意义
【1】select 用来指定查询哪些列,可以使用聚合函数。
【2】from 用来指定查询哪张表。
【3】where用来指定过滤条件,针对原表,那么条件中的列名只能是是原表的列名,不可以是别名或者使用聚合函数。
【4】group by 用来对结果集进行分组,条件中的列可以使用原名,也可以使用别名。
【5】having 用来指定对分组后的数据进行再次过滤的条件,条件中的列可以使用原名,也可以使用别名。
【6】order by 对结果集中某一列进行排序,默认降序。有 asc 升序,desc 降序两种选择。条件中的列可以使用原名,也可以使用别名。
【7】limit 用来取出结果集中的某些行.limit m,n取出的是从第m+1行开始一共n行的数据。limit n相当于limit 0,n
oracle中返回前10条数据不用limit,而是用where rownum<=10;
having子句使用的原因:是因为where子句无法与聚合函数(sum,count...)在一起使用
having子句主要用来筛选分组,与group by在一起使用
where子句在分组前过滤,having在分组后过滤,两者可以同时在一个句子里使用,并不矛盾
having子句限制组是组而不是行
having子句的使用:select column_1,column_2...column_n,aggregate_function(expression)
from table where predicates
group by column_1,column_2...column_n
having condition_1...condition_n;
二、sql语句编写顺序
select .. from ..是必须的,其他的关键词可选。
那么他们的组合顺序为
select ... from .. where ... group by ... having ... order by ... limit ...
三、sql语句执行顺序
【1】from 用于指定待查询的表
【2】where 由where后面的提交过滤表中的数据,形成结果集1
【3】group by 由后面的列对结果集1中的数据进行分组,形成结果集2
【4】having 对结果集2再次进行过滤,形成结果集3
【5】order by 对结果集3进行排序操作,形成结果集4
【6】limit 取结果集4中的某些行,返回最终结果集