mysql中聯結與關系表簡介
發表時間:2023-08-31 來源:明輝站整理相關軟件相關文章人氣:
[摘要]聯結SQL最強大的功能之一就是能在數據檢索查詢的執行中聯結(join)表。聯結是利用SQL的 SELECT 能執行的最重要的操作,很好地理解聯結及其語法是學習SQL的一個極為重要的組成部分。在能夠有效地使用聯結前,必須了解關系表以及關系數據庫設計的一些基礎知識。下面的介紹并不是這個內容的全部知識,...
聯結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中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。