MySQL- 外鍵設置

1、外鍵

一、在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個表之間的關聯關係。
    image.pngorm

三、鏈接
在MySQL中有2種類型的鏈接,分別是內鏈接(INNER JOIN)和外鏈接(OUTER JOIN)it

  • 內鏈接表示查詢結果只返回符合鏈接條件的記錄,這種鏈接方式比較經常使用;
  • 外鏈接則不一樣,表示查詢結果返回某一個表中的全部記錄,以及另外一個表中知足鏈接條件的記錄。
相關文章
相關標籤/搜索