自學書籍.MySQL必知必會 - 聯結表

關係表:sql

1.關係表的設計就是要保證把信息分解成多個表,一類數據一個表,各表經過某些經常使用的值(即關係設計中的關係)互相關聯數據庫

2.外鍵爲某個表中的一列,它包含另外一個表中的主鍵值,定義了兩個表之間的關係,關係數據庫能夠有效的存儲和方便的管理,因此關係數據庫比非關係數據庫可伸縮性要強測試


爲何要使用聯結:spa

1.使用關係表必然數據會分佈在不一樣的表中,爲了單條SELECT語句檢索出數據,必須使用聯結設計

SELECT vend_name, prod_name, prod_price
FROM vendors, products
WHERE vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name;


WHERE子句的重要性:code

1.默認沒有使用WHERE子句的限制,會返回笛卡爾積,檢索出來的行數實際上是第一個表的行數*第二個表的行數it

SELECT vend_name, prod_name, prod_price
FROM vendors, products
ORDER BY vend_name, prod_name;


內部聯結:class

1.基於兩個表之間的相等測試,等值連結,這種鏈接稱爲內部聯結數據

SELECT vend_name, prod_name, prod_price
FROM vendors
     INNER JOIN products
  ON vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name;


聯結多個比表:ant

SELECT prod_name, vend_name, prod_price, quantity
FROM orderitems, products, vendors
WHERE products.vend_id = vendors.vend_id
  AND orderitems.prod_id = products.prod_id
  AND order_num = 20005;
或
SELECT prod_name, vend_name, prod_price, quantity
FROM products
     INNER JOIN vendors
  ON products.vend_id = vendors.vend_id
     INNER JOIN orderitems
  ON orderitems.prod_id = products.prod_id AND order_num = 20005;

說明:等值鏈接也稱爲內部鏈接,爲最經常使用的聯結方式

相關文章
相關標籤/搜索