MySQL約束命令

約束 :對表中的數據進行限定 ,保證數據的正確性 、有效性和完整性

非空約束

創建表前添加
  create table 表名(列名 數據類型 not null);
創建表後添加
  alter table 表名 modify 列名 數據類型 not null;
刪除表約束
  alter table 表名 modify 列名 數據類型;

唯一約束

創建表前添加
  create table 表名(列名 數據類型 unique);
創建表後添加
  alter table 表名 modify 列名 數據類型 unique;
刪除表約束
  alter table 表名 drop index 列名 ;

主鍵約束

-- 創建表前添加
  create table 表名(列名 數據類型 primary key);
  create table 表名(
          列名1  數據類型1,
        列名2  數據類型2,
          ...
          列名n  數據類型n
          primary key(列名,..)       -- 一個或一組列組成的主鍵,主鍵唯一
      );
-- 創建表後添加
  alter table 表名 modify 列名 數據類型 primary key;
-- 刪除表約束
  alter table 表名 drop primary key;
  
-- 創建表前添加自動增長
  create table 表名(列名 數據類型 primary key auto_increment);
-- 創建表後添加自動增長
  alter table 表名 modify 列名 數據類型 auto_increment;
-- 刪除自動增長
  alter table 表名 modify 列名 數據類型;

-- 特性 :
     -- 非空且唯一
     -- 一表僅一字段爲主鍵
     -- 主鍵是表中記錄唯一標識

外鍵約束

-- 創建表前
  create table 表名A (
    ....
    ····
    列名x 數據類型 ,   -- 外鍵字段名 x  
    constraint 外鍵名稱 foreign key (外鍵字段x) references 表名B(B表的主鍵y)
  ) ;           		
  						-- 外鍵名稱 :可以定義爲A_B 
                        -- 表A的外鍵字段x 指向 在表B中的主鍵y 
                        -- 兩字段名稱可以不一樣,但含義要一樣
-- 創建表後添加
  alter table 表名A 				-- 表名A : 和表B關聯的表,注意是關聯
    add constraint 外鍵名稱 foreign key (外鍵字段名) 
    references 表名B(B表的主鍵名) ;	

-- 刪除外鍵
  alter table 表名 drop foreign key 外鍵名稱 ;

-- 取消(當前頁)外鍵約束         
  SET FOREIGN_KEY_CHECKS=0;
-- 設置(當前頁)外鍵約束
  SET FOREIGN_KEY_CHECKS=1;

外鍵約束級聯

創建表後添加
  alter table 表名A add constraint 外鍵名稱
          foreign key (外鍵列名)
          references B表名(B表列名) 
          on update cascade    -- 級聯更新
          on delete cascade ;  -- 級聯刪除 
  -- 級聯更新和級聯刪除可以同時寫
  -- 級聯刪除會將被關聯表中記錄刪除
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章