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 在表已經建立好的情況下 進行新增約束
- 一個沒有約束的表
- 給表 新增主鍵約束
- 給表新增 唯一約束
表的約束分為 : 主鍵約束 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;
表名 命令 欄位名 欄位型別 自動增添命令
外來鍵約束
外來鍵約束、外來鍵約束的相關操作
- 首先建立兩個表
兩張表的型別為InnoDB型別
Alter table 表名 engine =InnoDB;
修改表的型別
-
- 班級表 作為主表 欄位 id name 作為外檢的欄位要為主鍵約束
- 學生表 作為從表 欄位 sid sname gid gid為外來鍵約束,與class表中的id想聯絡。 從表student 的gid不能超過主表class的id的值
- 表的外來鍵約束的新增
向student表中加入外來鍵約束,gid與class表中的id相聯絡
alter table student add constraint FK_id foreign key (gid) references class (id);
外來鍵名 從表字段 主表名 主表字段
Student 表中的 gid 與主表 class表中的id 相互聯絡
- 表中的資料的插入
當你在向student表中插入資料的時候 gid的值不能超過2,
在student表中插入的資料 gid 在 主表的id的範圍之內允許被插入
- 表中的資料的刪除
如果在從表中 gid 如果有值,那麼主表就不能刪除
先將從表中的 外來鍵約束的值刪掉,才能講主表中的外間的值刪掉
- 表的外來鍵約束的刪除