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