高階聯結表
迄今為止我們所使用的只是內聯結的簡單聯結,但sql除了內聯結還有外聯結(outer join),當然也有人叫左聯結、右聯結以及全聯結,其實都是乙個意思,只要理解了內聯結和外聯結,左右聯結就不難了,這也使最常用的高階聯結了。
注意:在學習高階聯結前,我們先來學習乙個特殊功能表別名,故名思意就是給表起個別名,這樣可以在一條select中多次使用同乙個表,別名只是在查詢中使用,不會返回
1.1 使用別名
下面我們來看乙個例子:
sql語句:
select cust_name,cust_contact
from customers as c,orders as o,orderitems as oi
where c.cust_id=o.cust_id
and oi.order_num=o.order_num
and prod_id='rgan01'
輸出結果
sql語句分析:可以看到from子語句中的三個表全都有別名,customers as c 使用c作為別名,如此等等,這樣的話就可以省略customers了,別名不僅可以在select子語句中使用,還可以在where、order by中使用。
1.2 外聯結
許多聯結都是將乙個表中的行與另乙個表中的行進行關聯,但有時候需要包含那些沒有關聯行的那些行,這些聯結包含了那些在相關表中沒有關聯行的行的聯結就叫外聯結,聽起來不叫拗口,也不容易理解,沒關係用心體會下,下面的例子:
sql語句:
select customers.cust_id,orders.order_num
from customers left outer join orders
on customers.cust_id=orders.cust_id
輸出結果:
sql語句分析:
可以看到使用外聯結時篩選出了一條order_num為null的資料,這裡其實可以這樣理解,left是以匹配語句的左側資料表為準,將左側表中的所有資料篩選出,出現null就意味著這條資料並不滿足篩選條件,當然right也就是以右側表為準,上局語句中的左側表就是customers了。
注意:
1.3 帶聚集函式的聯結
聚集函式使用來彙總資料的,迄今為止我們局的聚集函式都是從乙個表中彙總資料,但是這些函式也是可以與聯結一起使用的。下來我們看乙個例子:
sql語句:
select customers.cust_id,count(orders.order_num) as num_ord
from customers inner join orders
on customers.cust_id = orders.cust_id
group by customers.cust_id
輸出結果:
sql語句解析:這條select語句是使用inner join將customers和orders表相互關聯。group by 子語句按顧客進行分組資料,函式條用count對每個客戶的訂單技術,並將它們作為num_ord返回
總結:
SQL SERVER 入門高階教程 萬用字元
like操作符 1.1 百分號 萬用字元 sql語句 select prod id,prod name from products where prod name like fish sql語句分析 這條語句表示從products中檢索出prod name由fish開頭的所有資料,不僅能放在字元末尾...
SQL SERVER 入門高階教程 聯結表
聯結表 其實sql最強大的功能之一就是能在資料查詢的執行重使用聯結表。這裡還要理解一下關聯式資料庫,關聯式資料庫就是設計時將資訊分解成多個表,一類資料乙個表,各個表通過某些共同的值相互關聯。舉個栗子 比如要設計乙個資料庫用來儲存 商資訊和 商產品資訊,如果要是使用乙個表是可以是實現的就是會出現很多重...
深度學習入門 高階教程
神經網路和深度學習目前提供了針對影象識別,語音識別和自然語言處理領域諸多問題的最佳解決方案。傳統的程式設計方法中,我們告訴計算機如何去做,將大問題劃分為許多小問題,精確地定義了計算機很容易執行的任務。而神經網路不需要我們告訴計算機如何處理問題,而是通過從觀測資料中學習,計算出他自己的解決方案。自動地...