1. 程式人生 > >Mysql 表的約束的相關操作

Mysql 表的約束的相關操作

表的約束分為 :  主鍵約束  primary key

唯一約束  unique

非空約束  not null

預設約束  default

外來鍵約束 

 

約束的增添與刪除:

 

主鍵約束:

    新增:1. ALTER TABLE t_user MODIFY user_id INT(10) PRIMARY KEY;

2.ALTER TABLE t_user CHANGE user_id user_id INT(10) PRIMARY KEY;

3. ALTER TABLE t_user ADD PRIMARY KEY(user_id);

刪除: ALTER TABLE t_user DROP PRIMARY KEY;

注:主鍵約束相當於(唯一約束+非空約束)

一張表中最多有一個主鍵約束,如果設定多個主鍵,就會出現如下提示:

Multiple primary key defined!!!

刪除主鍵約束前,如果有自增長需要先刪除自增長,如果不刪除自增長就無法刪除主鍵約束

 

 

 

唯一約束:

新增:1. ALTER TABLE t_user MODIFY user_id INT(10) UNIQUE;

 

2. ALTER TABLE t_user CHANGE user_id user_id INT(10) UNIQUE;

 

3. ALTER TABLE t_user ADD UNIQUE(user_id);

 

刪除:

ALTER TABLE t_user DROP INDEX user_id;

注:唯一但是可以為空(空和空不相等)

非空約束:

新增:

ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL;

ALTER TABLE t_user CHANGE user_id user_id INT(10) NOT NULL;

刪除:

1)ALTER TABLE t_user MODIFY user_id INT(10);

2)ALTER TABLE t_user CHANGE user_id user_id INT(10);

 

 

預設約束:

新增:

ALTER TABLE t_user MODIFY user_id INT(10) DEFAULT  2;

ALTER TABLE t_user CHANGE user_id user_id INT(10) DEFAULT  2;

刪除:

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

 

約束的相關操作

1 建立表的時候建立約束

2 在表已經建立好的情況下 進行新增約束

  1. 一個沒有約束的表
  2. 給表 新增主鍵約束

  1. 給表新增 唯一約束

 

表的約束分為 :  主鍵約束  primary key

唯一約束  unique

非空約束  not null

預設約束  default

 

約束的增添與刪除:

 

主鍵約束:

    新增:1. ALTER TABLE t_user MODIFY user_id INT(10) PRIMARY KEY;

2.ALTER TABLE t_user CHANGE user_id user_id INT(10) PRIMARY KEY;

3. ALTER TABLE t_user ADD PRIMARY KEY(user_id);

刪除: ALTER TABLE t_user DROP PRIMARY KEY;

注:主鍵約束相當於(唯一約束+非空約束)

一張表中最多有一個主鍵約束,如果設定多個主鍵,就會出現如下提示:

Multiple primary key defined!!!

刪除主鍵約束前,如果有自增長需要先刪除自增長,如果不刪除自增長就無法刪除主鍵約束

 

 

 

唯一約束:

新增:1. ALTER TABLE t_user MODIFY user_id INT(10) UNIQUE;

 

2. ALTER TABLE t_user CHANGE user_id user_id INT(10) UNIQUE;

 

3. ALTER TABLE t_user ADD UNIQUE(user_id);

 

刪除:

ALTER TABLE t_user DROP INDEX user_id;

注:唯一但是可以為空(空和空不相等)

非空約束:

新增:

ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL;

ALTER TABLE t_user CHANGE user_id user_id INT(10) NOT NULL;

刪除:

1)ALTER TABLE t_user MODIFY user_id INT(10);

2)ALTER TABLE t_user CHANGE user_id user_id INT(10);

 

 

預設約束:

新增:

ALTER TABLE t_user MODIFY user_id INT(10) DEFAULT  2;

ALTER TABLE t_user CHANGE user_id user_id INT(10) DEFAULT  2;

刪除:

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

 

在表建立之後對錶進行新增約束的時候

Alter table 表名 add 約束型別(欄位名)

 

欄位值自動增加(只能給整形int新增)

命令:alter table four_lianxi modify   id     int       auto_increment;

            表名      命令 欄位名 欄位型別    自動增添命令

外來鍵約束

外來鍵約束、外來鍵約束的相關操作

  1. 首先建立兩個表

兩張表的型別為InnoDB型別

Alter table 表名 engine =InnoDB;

修改表的型別

 

    1. 班級表 作為主表  欄位  id  name  作為外檢的欄位要為主鍵約束
    2. 學生表 作為從表   欄位  sid  sname gid  gid為外來鍵約束,與class表中的id想聯絡。   從表student 的gid不能超過主表class的id的值

 

  1. 表的外來鍵約束的新增

向student表中加入外來鍵約束,gid與class表中的id相聯絡

alter table student add constraint FK_id foreign key (gid) references class  (id);

                                                  外來鍵名          從表字段      主表名 主表字段

Student 表中的  gid  與主表 class表中的id 相互聯絡

  1. 表中的資料的插入

當你在向student表中插入資料的時候 gid的值不能超過2,

 

在student表中插入的資料 gid 在 主表的id的範圍之內允許被插入

  1. 表中的資料的刪除

如果在從表中 gid 如果有值,那麼主表就不能刪除

先將從表中的 外來鍵約束的值刪掉,才能講主表中的外間的值刪掉

  1. 表的外來鍵約束的刪除