SQL-SELECT : IN | NOT IN, SOME, ALL, Exists| NOT Exists
SQL-SELECT: 聚集函數(shù),GROUP BY, HAVING
視圖及其應(yīng)用
IN
集合成員資格
某一元素是否是某一個(gè)集合的成員
集合之間的比較
某一個(gè)集合是否包含另外一個(gè)集合等
集合基數(shù)的測(cè)試
測(cè)試集合是否為空
測(cè)試集合是否存在重復(fù)元素
子查詢: 出現(xiàn)在where子句中的select語(yǔ)句被稱為子查詢,子查詢返回了一個(gè)集合,可以通過與這個(gè)集合的比較來確定另一個(gè)查詢集合
三種類型的子查詢: (NOT) IN-子查詢; some /all 子查詢; (NOT)Exists子查詢
聚集函數(shù)
COUNT SUM AVG MAX NIN
分組查詢 分組過濾
聚集函數(shù)是不允許用于where子句中的; where子句是對(duì)每一元組進(jìn)行條件過濾,而不是對(duì)集合進(jìn)行條件過濾
分組過濾:若要對(duì)集合(即分組)進(jìn)行條件過濾,即滿足條件的集合/分組留下,不滿足條件的集合/分組剔除
Having子句,又稱分組過濾子句。需要有g(shù)roup by子句支持,換句話說,沒有g(shù)roup by子句,便不能有having子句
并 交 差 處理
子查詢 {Union [ALL] | Intersect [ALL] | Except [ALL] 子查詢};
通常情侶下自動(dòng)刪除重復(fù)元組,不帶all。若要保留重復(fù)元組,則要帶ALL
空值處理
空值檢測(cè)
is [not] null
where Sage = null 錯(cuò)誤的,空值是不能進(jìn)行運(yùn)算
除count(*)外,其他聚集函數(shù),都會(huì)忽略null
內(nèi)連接 外連接
select 列名 from 表名 [natural] [inner | {left | right | full} outer] join {on 連接條件 | using (colname)}
where 檢索條件
視圖——先定義后使用
如果視圖select目標(biāo)列包含聚集函數(shù),則不能更新
如果視圖的select子句使用了unique或distinct,則不能更新
如果視圖中包括了group by子句,則不能更新
如果視圖中包括了經(jīng)算術(shù)表達(dá)式計(jì)算出來的列,則不能更新
如果視圖是由單個(gè)表的列構(gòu)成,但并沒有包括主鍵,則不能更新
對(duì)于由單一table子集構(gòu)成的視圖,即如果視圖是從單個(gè)基本表使用選擇、投影操作導(dǎo)出的,并且包含了基本表的主鍵,則可以更新
撤銷視圖
Drop view 名