SQL隨筆

JOIN(鏈接)

Join 用於吧兩個或多個表的行結合起來。基於這些表之間的共同字段。
常用的 Join 類型有:

  • Inner Join:如果表中有至少一個匹配,則返回行。【通常使用】
  • Left Join:即使右表中沒有匹配,也從左表返回所有的行。【不常用】
  • Right Join:即使左表沒有匹配,也從右表中返回所有的行。【不常用】
  • Full Join:只要其中一個表存在匹配,則返回行。【不常用】

例子
1)Inner Join:
Select w.id,w.name,a.count,a.date
From Websites AS w
INNER JOIN access_log AS a
ON w.id = a.site_id
where 條件
2)Left Join:
Select w.id,w.name,a.count,a.date
From Websites AS w
Left JOIN access_log AS a
ON w.id = a.site_id
where 條件
Right Join 和 Full Join 同上述兩個例子相同。

Union

Union 操作符合並兩個或多個 Select 語句的結果。
注意:Union 內部的每個 Select 語句必須擁有相同數量的列。列也必須有相似的數據類型。同時每個 Select 語句中的列的順序必須相同。
默認的 Union 操作符選取不同的值。如果允許重複的值,請使用 Union all。
語法:
Select 字段名 from 表名
Union
Select 字段名 from 表名
例子:
Select country,name from Websites where country = ‘CN’
union all
Select country,app_name from apps where country = ‘CN’
order by country 排序
注意:在這裏 order by 排序添加在最後,無需在每個 select 裏面進行添加。

約束

約束用於規定表中的數據規則。
如果存在違反約束的數據行爲,行爲會被約束終止。約束可以在創建表時規定,或者在表創建之後規定。
SQL 中 約束如下:

  • NOT NULL - 指示某列不能存儲 NULL 值。
  • FOREIGN KEY - 保證一個表中的數據匹配另一個表中的值得參照完整性。
  • CHECK - 保證列中的值符合指定的條件。

注:具體約束的創建不做詳細解釋。一般用圖形界面話工具可以進行直接定義。

Create Index(索引)

Create Index 語句用於在表中創建索引。
在不讀取整個表的情況下,索引使數據庫應用程序可以更快地查找數據。
用戶無法看到索引,它們只能被用來加速搜索/查詢。
注:更新一個包含索引的表需要比更新一個沒有索引的表花費更多的時間,這是由於索引本身也需要更新。因此,理想做法是僅僅在常常被搜索的列(以及表)上面創建索引。

語法:Create Index 索引名稱 ON 表名稱 (字段名稱)

View(視圖)

iews(視圖)
視圖是基於 SQL 語句的結果集的可視化的表。
視圖包含行和列,就像一個真實的表。視圖中的字段就是來自一個或多個數據庫中的真實的表中的字段。
向視圖添加 SQL 函數、where、以及 Join 語句,也可以呈現數據,就像這些數據來自於某個單一的表一樣。
語法:
新建視圖:Create view 視圖名 AS Select 字段名 From 表名 Where 條件 # 可省略。
更新視圖:Create or replace 視圖名 AS Select 字段名 From 表名 Where 條件 # 可省略。
刪除視圖:Drop view 視圖名。
查詢視圖:Select * from 視圖名。
例子
新建視圖:Create view dw_user_view AS Select * from dw_user。
更新視圖:Create or replace view dw_user_view AS Select * from dw_user。
刪除視圖:Drop view dw_user_view。
查詢視圖:Select * from dw_user_view。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章