關係表: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;
說明:等值鏈接也稱爲內部鏈接,爲最經常使用的聯結方式