首页 > 数据库 > > 提高SQL语言能力必会的知识点
知识回顾
SQL查询逻辑执行顺序
(8)SELECT (9)DISTINCT (11)<Top Num><select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2)ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE | RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>
执行顺序解析
成绩表SC
create table SC(SId varchar(10),CId varchar(10),score decimal(18,1))insert into SC values('01' , '01' , 80)insert into SC values('01' , '02' , 90)insert into SC values('01' , '03' , 99)insert into SC values('02' , '01' , 70)insert into SC values('02' , '02' , 60)insert into SC values('02' , '03' , 80)insert into SC values('03' , '01' , 80)insert into SC values('03' , '02' , 80)insert into SC values('03' , '03' , 80)insert into SC values('04' , '01' , 50)insert into SC values('04' , '02' , 30)insert into SC values('04' , '03' , 20)insert into SC values('05' , '01' , 76)insert into SC values('05' , '02' , 87)insert into SC values('06' , '01' , 31)insert into SC values('06' , '03' , 34)insert into SC values('07' , '02' , 89)insert into SC values('07' , '03' , 98)需求:查询各科成绩前三名的记录
语句如下 :
SELECT* FROMsc WHERE( SELECT count( * ) FROM sc t1 WHERE t1.CId = sc.CId AND t1.score > sc.score ) < 3 ORDER BYcid,score DESC
小结:上述案例SQL执行顺序:FROM - WHERE - SELECT - ORDER BY
所有语句不管多复杂,都按照SQL语句各关键字的执行顺序进行。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3150730/ ,如需转载,请注明出处,否则将追究法律责任。