not null:非空約束,針對某個字段設定其值不為空,如:學生的姓名不能為空。
unique:唯一約束,它可以使某個欄位的值不能重複,如:email不能重複:
primary key:主鍵約束,每個表應該具有主鍵,主鍵可以標識記錄的唯一性,主鍵分為單一主鍵和復合(聯合)主鍵,單一主鍵是由乙個字段構成的,復合(聯合)主鍵是由多個字段構成的。
foreign key:外來鍵約束,外來鍵主要是維護表之間的關係的,主要是為了保證參照完整性,如果表中的某個欄位為外來鍵字段,那麼該字段的值必須**於參照的表的主鍵,如:emp中的deptno值必須**於dept表中的deptno字段值。
注意:當乙個表中存在外來鍵約束時,比如a表中有乙個外來鍵來自b表,那麼刪除資料的時候的時候要先刪除a表中的引用記錄,再刪除b表中的資料。
drop
table
if exists t_classes;
create
table
t_classes(
classes_id
int
(3),
classes_name
varchar
(30)
not
null
,
constraint
pk_classes_id
primary
key
(classes_id)
)
drop
table
if exists t_student;
create
table
t_student(
student_id
int
(10),
student_name
varchar
(50)
not
null
,
***
char
(2)
not
null
,
birthday
date
not
null
,
email
varchar
(30)
unique
,
classes_id
int
(3)
not
null
,
constraint
pk_student_id
primary
key
(student_id),
constraint
fk_classes_id
foreign
key
(classes_id)
references
t_classes(classes_id)
)
當乙個表中存在外來鍵約束時,刪除和修改都會是乙個比較令人頭疼的事情,一不小心就會報錯。可以採用級聯的方法去解決這個問題。
on update cascade 級聯更新
mysql對有些約束的修改比較麻煩,所以我們可以先刪除,再新增
alter
table
t_student
drop
foreign
key
fk_classes_id;
alter
table
t_student
add
constraint
fk_classes_id_1
foreign
key
(classes_id)
references
t_classes(classes_id)
on
update
cascade
;
on delete cascade 級聯刪除
mysql對有些約束的修改時不支援的,所以我們可以先刪除,再新增
alter
table
t_student
drop
foreign
key
fk_classes_id;
alter
table
t_student
add
constraint
fk_classes_id_1
foreign
key
(classes_id)
references
t_classes(classes_id)
on
delete
cascade
;
delete
from
t_classes
where
classes_id = 20;
① 新增外來鍵約束:alter table 從表 add constraint 約束名稱 foreign key 從表(外來鍵字段) references 主表(主鍵字段);
示例:alter table t_student add constraint fk_classes_id_1 foreign key(classes_id) references t_classes(classes_id);
② 新增主鍵約束:alter table 表 add constraint 約束名稱 primary key 表(主鍵字段);
示例:alter table t_student add constraint pk primary key(student_id);
③ 新增唯一性約束:alter table 表 add constraint 約束名稱 unique 表(字段);
示例:alter table t_student add constraint uk unique(email);
alter table t_student modify student_name varchar(30) unique;
mysql對有些約束的修改時不支援,所以我們可以先刪除,再新增
刪除外來鍵約束:alter table 表名 drop foreign key 約束名;
刪除主鍵約束:alter table 表名 drop primary key ;
mysql建立約束 MySQL 建立表及其約束
create table tb name 1 建立表的主鍵約束 主鍵是唯一標識某字段的作用,當該字段為主鍵的時候,其值必須是唯一的,且不能為空。mysql create table student id int primary key,stu id int,course id int id為主鍵,所...
mysql刪除表主鍵約束 MySQL新增約束
mysql新增約束 刪除約束及修改約束 mysql刪除約束 將t student 刪除外來鍵約束 alter table 表名 drop foreign key 外來鍵 區分大小寫 alter table t student drop foreign key fk classes id 刪除主鍵約束...
mysql 建立表新增行 列注釋
建立表新增注釋 create table purchase id int 25 primary key auto increment,user id int 50 comment 列注釋 created on datetime default null engine innodb default c...