一、在MySQL中,爲了把2個表關聯起來,會用到2個重要的功能:外鍵(FOREIGN KEY)和鏈接(JOIN)。外鍵須要在建立表的階段定義,鏈接能夠經過相贊成義的字段把2個錶鏈接起來,用在查詢階段。
二、假設有2個表,分別是表A和表B,它們經過一個公共字段id 發生關聯關係,咱們把這個關聯關係叫作R。若是id在表A中是主鍵,那麼表A就是這個關係R中的主表,相應的,表B就是這個關係中的從表,表B中的id,就是表B用來引用表A中數據的,叫外鍵。因此,外鍵就是從表中用來引用主表中數據的那個公共字段。數據庫
建立主表spa
CREATE TABLE demo.importhead ( listnumber INT PRIMARY KEY, supplierid INT, stocknumber INT, importtype INT, importquantity DECIMAL(10 , 3 ), importvalue DECIMAL(10 , 2 ), recorder INT, recordingdate DATETIME);
建立從表code
CREATE TABLE demo.importdetails( listnumber INT, itemnumber INT, quantity DECIMAL(10,3), importprice DECIMAL(10,2), importvalue DECIMAL(10,2), -- 定義外鍵約束,指出外鍵字段和參照的主表字段 CONSTRAINT fk_importdetails_importhead FOREIGN KEY (listnumber) REFERENCES importhead (listnumber) );
運行這個SQL語句,咱們就在建立表的同時定義了一個名字叫fk_importdetails_importhead的外鍵約束,同時,咱們聲明,這個外鍵約束的字段listnumber引用的是表importhead裏面的字段listnumber。
建立完成後,咱們能夠經過SQL語句來查看,這裏咱們要用到MySQL自帶的、用於存儲系統信息的數據庫:information_schema。咱們能夠查看外鍵約束的相關信息:
外鍵約束所在的表是importdetails,外鍵字段是listnumber
參照的主表是importhead,參照主表字段是listnumber,
這樣經過定義外鍵約束,咱們已經創建起了2個表之間的關聯關係。
orm
三、鏈接
在MySQL中有2種類型的鏈接,分別是內鏈接(INNER JOIN)和外鏈接(OUTER JOIN)it