mysql中聯結和關聯表簡介

巴扎黑
發布: 2017-05-10 13:24:56
原創
1471 人瀏覽過

連結

SQL最強大的功能之一就是能在資料擷取查詢的執行中聯結(join)表。聯結是利用SQL的 SELECT 能執行的最重要的操作,很好地理解聯結及其語法是學習SQL的一個極為重要的組成部分。

在能夠有效地使用聯結前,必須了解關係表以及關聯式資料庫設計的一些基礎知識。以下的介紹並不是這個內容的全部知識,但作為入門已經足夠了。


關係表

#理解關係表的最好方法是來看一個現實世界中的例子。

假如有一個包含產品目錄的資料庫表,其中每個類別的物品佔一行。對於每種物品要儲存的資訊包括產品描述和價格,以及生產該產品的供應商資訊。

現在,假如有由同一供應商生產的多種物品,那麼在何處儲存供應商資訊(如,供應商名、地址、聯絡方式等)呢?將這些資料與產品資訊分開儲存的理由如下。

1.因為同一供應商生產的每個產品的供應商資訊都是相同的,對每個產品重複此資訊既浪費時間又浪費儲存空間。

2.如果供應商資訊改變(例如,供應商搬家或電話號碼變更),只需改變一次即可。

3.如果有重複資料(即每種產品都儲存供應商資訊),很難保證每次輸入該資料的方式都相同。不一致的數據在報表中很難利用。

關鍵是,相同資料出現多次絕不是一件好事,此因素是關係資料庫設計的基礎。關係表的設計就是要確保把資訊分解成多個表,一類資料一個表。各表透過某些常用的值(即關係設計中的關係(relational))互相關聯。在這個例子中,可建立兩個表,一個儲存供應商信息,另一個儲存產品資訊。 vendors 表包含所有供應商訊息,每個供應商佔一行,每個供應商具有唯一的識別。此識別稱為主鍵(primary key),可以是供應商ID或任何其他唯一值。

products 表只儲存產品信息,它除了儲存供應商ID( vendors 表的主鍵)外不儲存其他供應商資訊。 vendors 表的主鍵又稱為 products 的外鍵,它將 vendors 表與 products 表關聯,利用供應商ID能從 vendors 表中找出對應供應商的詳細資料。

外鍵(foreign key) 外鍵為某表中的一列,它包含另一個表的主鍵值,定義了兩個表之間的關係。

這樣做的好處如下:

1.供應商資訊不重複,從不浪費時間和空間;

2.如果供應商資訊變動,可以只更新vendors 表中的單一記錄,相關表中的資料不用改動;

3.由於資料無重複,顯然資料是一致的,這使得處理資料更簡單。總之,關係資料可以有效地儲存和方便地處理。因此,關聯式資料庫的可擴展性遠比非關聯式資料庫好。

可擴展性(scale) 能夠適應不斷增加的工作量而不失敗。設計良好的資料庫或應用程式稱之為可伸縮性好(scale well)。

【相關推薦】

1.什麼是mysql子查詢?如何利用子查詢進行過濾?

2.mysql建立計算欄位使用子查詢

3.為什麼使用聯結和如何建立聯結

4.MySQL中WHERE子句重要性和如何連結多個表


以上是mysql中聯結和關聯表簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!