SQL server中的SELECT查询语句执行顺序
各位大牛們好第一次寫博客有點小激動!以后我會把自己的心得分享給大家,求各種評論
SQL server 中SELSECT查詢語句的執(zhí)行順序如下:
(8) SELECT ? (9) DISTINCT (11) <TOP_specification> <select_list>
(12)INTO<new_table>
(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> ?[ASC|DESC]
需要注意的是在SELECT部分取別名后,在GROUP BY中是不可以直接來使用的。
如:select ?studentNo as '學生編號'
? ??from student
? ? grope by 學生編號
? ?select ?studentNo as '學生編號'
? ??from student
? ? order by 學生編號
按照SELECT查詢順序來看ORDER BY是可以用別名的,而GROPE BY是不可以的。
使用SELECT INTO和CREATE TABLE + INSERT INTO的選擇,一般情況下,SELECT INTO會比CREATE TABLE + INSERT INTO的方法快很多,SELECT INTO是一個無日志記載的過程,所以在成品系統(tǒng)上運行SELECTINTO時必須十分小心,因為不能通過回滾來復原操作。
在同樣的條件下,能用WHERE的地方盡力不要使用HAVING,因為WHERE比HAVING的查詢速度快,在當今大數(shù)據(jù)時代中速度決定地位。
NOT IN、NOT EXISTS的相關子查詢可以改用LEFT JOIN代替寫法
總結(jié)
以上是生活随笔為你收集整理的SQL server中的SELECT查询语句执行顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关键系统的JVM参数推荐
- 下一篇: php使用zeromq