網(wǎng)站開發(fā)及維護合同網(wǎng)站免費制作
列表名
列表名之后 order by 可以用別名 也可以用原名,
where 中不能用別名的
SQL語句執(zhí)行順序:
from–>where–>group by -->having — >select --> order
第一步:from語句,選擇要操作的表。
第二步:where語句,在from后的表中設(shè)置篩選條件,篩選出符合條件的記錄。
第三步:group by語句,把篩選出的記錄進行分組。
第四步:having語句,設(shè)置條件篩選分組后的數(shù)據(jù)。
第五步:select語句,選取經(jīng)過上述流程后的結(jié)果集。
第六步:order by語句:將select后的結(jié)果集按照順序展示出來。
注意:
掌握SQL語句執(zhí)行流程非常重要,是理解并寫好SQL語句的前提,根據(jù)實際業(yè)務(wù)邏輯要執(zhí)行的數(shù)據(jù)庫操作對應(yīng)到SQL語句的執(zhí)行流程能夠幫助我們快速寫出相應(yīng)功能的標(biāo)準(zhǔn)SQL語句。
where和having區(qū)別:
where在group by前, having在group by 之后。
where 用于 過濾數(shù)據(jù)行 , having 用去過濾分組,是結(jié)果集過濾
where 針對數(shù)據(jù)庫文件進行過濾,having 針對查詢結(jié)果進行過濾,也就是說 where 根據(jù)數(shù)據(jù)表中的字段直接進行過濾的 having是根據(jù)前面已經(jīng)查詢出的字段(結(jié)果集)進行過濾 ,where 先過濾 having 后過濾
where中不能使用聚合函數(shù),having中可以使用聚合函數(shù)。原因:因為聚合函數(shù)是針對結(jié)果集進行的,但where是在查詢結(jié)果集之前進行,故where中不能使用聚合函數(shù);having是針對結(jié)果集做篩選的,故一般把聚合函數(shù)放在having中。
HAVING 關(guān)鍵字和 WHERE 關(guān)鍵字都可以用來過濾數(shù)據(jù),且 HAVING 支持 WHERE 關(guān)鍵字中所有的操作符和語法。
表別名
只要表使用別名,且 sql中所涉及的 原名 必須 使用表別名,否報錯 xxx 過長的樣子 錯誤