1. 程式人生 > >sql 基礎語句

sql 基礎語句

表達式 實現 tom 可能 包含 大小 篩選 分組 排序

select

邏輯處理順序

可以將每個步驟想象為生成一個臨時的數據集
from子句
  • 可以包含表、視圖、物化視圖、分區、子分區、子查詢結果集。
  • 處理聯結語句時的順序:交叉聯結、內連接、外聯結

    where子句
  • 篩選條件判斷的值為空值(null)時,判斷結果為false,該行數據不包含在結果集。

    group by子句
  • 對結果集進行聚合
  • 可以按照from子句所列出的對象的任意字段進行分組,且分組的列可以不在輸出結果列表中顯示。
  • select列表中的任何非聚合字段都必須包含在group by 表達式中。
  • rollup運算用來產生部分求和值
  • cube運算用來求得交互分類值

    having子句
  • 在group by子句執行之後用來篩選匯總的值得第二個where子句。

    select列表
  • select列表列出查詢的最終結果集需要顯示那些列,可以是實際列、表達式、查詢結果集(只能返回一行一列的值,稱為標量子查詢,數據量大的時候可能會造成非常大的查詢代價,慎用)等。
  • distinct 從結果集中去除重復的行。

    order by子句
  • 需要排序的數據量大小非常重要。數據量是指結果集的總字節數,即行數乘以每一行字節數。
  • 較小的排序會在內存中實現,較大的排序將使用臨時磁盤空間。
  • 當返回結果集較大時,排序是查詢過程中一個開銷非常大的操作。

例句

select c.customer_id,count(o.order_id) as orders_ct
from oe.customers c
join oe.orders o
on c.customer_id=o.customer_id
where c.gender=‘f‘
group by c.customer_id
having count(o.order_id)>4
order by orders_ct,c.customer_id;

insert

sql 基礎語句