SQL SERVER 入門高階教程 聯結表

2021-09-27 12:36:39 字數 2155 閱讀 8244

聯結表

其實sql最強大的功能之一就是能在資料查詢的執行重使用聯結表。這裡還要理解一下關聯式資料庫,關聯式資料庫就是設計時將資訊分解成多個表,一類資料乙個表,各個表通過某些共同的值相互關聯。舉個栗子:比如要設計乙個資料庫用來儲存**商資訊和**商產品資訊,如果要是使用乙個表是可以是實現的就是會出現很多重複資料。那麼使用關係表的話就可以使用兩個表實現,乙個表儲存**商資訊,乙個表儲存產品資訊,每個**商佔一行,使用具有唯一標識,此標識就被稱為主鍵,產品資訊每行都有與其一致的主鍵,這樣就可以通過關聯表的方式將兩個表聯結起來,這樣做的好處就是:

注意:聯結表並不是資料庫實際存在的物理表,他只在執行查詢期間存在。

1.1 建立聯結

建立聯結非常簡單,只要指定要聯結的所有表以及聯結他們的方式即可

下面我們來看乙個例子:

sql語句:

select vend_name,prod_name,prod_price 

from vendors,products 

where vendors.vend_id=products.vend_id

輸出結果

sql語句分析:select語句與前面所有語句一樣要指定檢索的列,這裡最大的區別就是所指定的兩列(prod_name,prod_price)在乙個表中,而第三列(vend_name)在另乙個表中。我們再來看from子語句,與以前的select語句不一樣的是,這條語句的from子語句列出兩個表,vendors和products,他們是這條語句聯結表的名字,這條語句意思是將vendors表中的vend_id與products表中的vend_id匹配起來。

重點了解:

1.2 內聯結

我們目前使用的聯結都稱為內聯結,它使用關鍵字inner join,他的使用稍微有點不同,下來我們看乙個例子:

sql語句:

select vend_name,prod_name,prod_price 

from vendors  inner join products 

on vendors.vend_id=products.vend_id

輸出結果:

sql語句分析:

這條語句中使用的select與前面的select語句相同,但from子語句不同,這裡兩個表之間的關係時以inner join指定的部分from子語句。這裡使用這種語法,聯結條件用特定的on子語句而不是wherer子語句。

1.3 多表聯結

sql並不限制一條select語句中可以聯結表的數量,都是相同的基本規則,首先列出所有表,然後定義表之間的關係。下來我們看乙個例子:

sql語句:

select vend_name,prod_name,prod_price,quantity

from orderitems,vendors,products 

where vendors.vend_id=products.vend_id

and orderitems.prod_id=products.prod_id

and order_num=20007

輸出結果:

總結:

聯結時sql中乙個最重要的特性,內聯結(inner join)也是常用的聯結,使用聯結時需要遵循基本規則,先用from列出所有表,然後使用where或on定義表之間的關係,至於什麼時候使用inner join這個遵循方便原則。

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除了內聯結還有外聯結 outer join 當然也有人叫左聯結 右聯結以及全聯結,其實都是乙個意思,只要理解了內聯結和外聯結,左右聯結就不難了,這也使最常用的高階聯結了。注意 在學習高階聯結前,我們先來學習乙個特殊功能表別名,故名思意就是...

深度學習入門 高階教程

神經網路和深度學習目前提供了針對影象識別,語音識別和自然語言處理領域諸多問題的最佳解決方案。傳統的程式設計方法中,我們告訴計算機如何去做,將大問題劃分為許多小問題,精確地定義了計算機很容易執行的任務。而神經網路不需要我們告訴計算機如何處理問題,而是通過從觀測資料中學習,計算出他自己的解決方案。自動地...