1. 程式人生 > >第三章 sql 的約束

第三章 sql 的約束


    1.0 約束分類

約束型別: 主鍵 預設值 唯一 外來鍵 非空
關鍵字: PRIMARY KEY DEFAULT UNIQUE FOREIGN NOT NULL



    2.0 建立含約束的表


    3.0 主鍵
        約束英文:constraint
        約束實際上就是表中資料的限制條件

        主鍵是用於約束表中的一行,作為這一行的唯一識別符號,在一張表中通過主鍵就能準確定位到一行,主鍵不能有重複且不能為空
        複合主鍵

 CONSTRAINT P_ID PRIMARY KEY (s_name,d_age)


    4.0 預設值約束
        當有 DEFAULT 約束的列,插入資料為空時,將使用預設值
            p_num int(10)DEFAULT'10',
            p_num 有預設約束,預設值為10

            # 正常插入資料

  INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);

            #插入新的資料,people_num 為空,使用預設值

 INSERT INTO department(dpt_name) VALUES('dpt2');

        SELECT + 表字段名 + FROM +資料表名
        表字段名那個,如果想要獲得所有的欄位或者不知道有哪些欄位的情況下用*代表所有欄位。
        比如
            SELECT * FROM 獲取每條資訊全部欄位的值
            SELECT id , name FROM 只能獲取每條資訊的id欄位和name欄位的值

    5.0 唯一約束 (UNIQUE)
        當 INSERT 語句新插入的資料和已有資料重複的時候,如果有 UNIQUE約束,則 INSERT 失敗
        比如:

INSERT INTO employee VALUES(01,'Tom',25,3000,110110,'dpt1');
INSERT INTO employee VALUES(02,'Jack',30,3500,110110,'dpt2'); 

    6.0 外來鍵約束 (FOREIGN KEY)
        既能確保資料完整性,也能表現表之間的關係。一個表可以有多個外來鍵,每個外來鍵必須(參考)另一個表的主鍵,被外來鍵約束的列,取值必須在它參考的列中有對應值。




    7.0 非空約束



    PRIMAPY是主鍵的意思,表示定義的該列值在表中是唯一的意思,不可以有重複。
    NSIGNED是無符號的意思,代表該欄位沒有正負。
    AUTO_INCREMENT可以理解為自動遞增的意思,每增加一條記錄,值會自動加1。(例如在上面的例子中,ID列每增加一條記錄,便會從100自增) 。