sql約束條件的新增和刪除
阿新 • • 發佈:2021-02-19
sql約束條件的新增和刪除
create table stu(
id int(2) primary key,--列級約束,將id設定為主鍵
sname varchar(20),
gender varchar(10),
constraint stus_id_pk primary key(id) --表級約束,將id設定為主鍵
);
desc stu;--查看錶結構
drop table stu;--刪除stu表
6列級:
預設約束default
非空約束not null,autp_increment(這個可以不算約束, 但是經常用),+4表級的4種約束
4表級:
主鍵約束primary key(id)
檢查約束check(gender in('男','女'))
唯一約束unique(sname)
外來鍵約束foreign key(major-id)
6列級4表級約束的新增和刪除
-- 推薦全記方法一,格式統一便於記憶
-- 列級約束:(全部可以用modify來增加刪除約束)
-- default 新增刪除
方法一:
alter table stu MODIFY gender varchar(10) DEFAULT '男'
alter table stu MODIFY gender varchar (10)
方法二:
alter table stu alter gender set DEFAULT '男'
alter table stu alter gender drop DEFAULT
-- 自增 新增刪除(自增的前提是主鍵)
alter table stu modify id int(2) auto_increment
alter table stu modify id int(2)
-- null 新增刪除
alter table stu MODIFY id int(2) not null;
alter table stu MODIFY id int (2) null;
-- 表級約束:
-- check 新增刪除
alter table stu add constraint stu_check check(gender in('男','女'));
alter table stu drop check stu_check;
INSERT into stu VALUES(1,'魯班','人妖')
-- 唯一 新增刪除
方法一:
alter table stu add constraint tb_sname_uk unique(sname);
alter table stu drop key tb_sname_uk;
方法二:
alter table stu add unique tb_sname_uk (sname);
alter table stu drop key tb_sname_uk;
--主鍵 新增刪除
方法一:
alter table stu add constraint stu_id_pk primary key(id);
-- 或者
alter table stu add primary key(id);-- 因為主鍵一個表中只有一個所以不用取別名來讓後續的刪除辨識傷處哪個主鍵)
alter table stu drop primary key;
方法二:
alter table stu add primary key id; -- 因為主鍵一個表中只有一個所以不用取別名來讓後續的刪除辨識傷處哪個主鍵)
alter table stu drop primary key
-- 外來鍵(需多張表) 新增刪除
字表(含有外來鍵的表)
create table stu(
id int(2) primary key,--列級約束,將id設定為主鍵
sname varchar(20),
gender varchar(10),
majorId int(2)
constraint stus_id_pk primary key(id) --表級約束,將id設定為主鍵
);
主表(被外來鍵對映的表):
create table major(
mid int(2) primary key,
name varchar(20)
);
-- 新增:
alter table stu add constraint stu_mid_fk foreign key(majorId) references major(mid) on delete set null;
-- on delete set null:主表major表mid被刪除後 子表stu的major-id變為null
-- on delete cascade :主表major表mid被刪除後 子表stu的major-id級聯刪除,
-- on update cascade :主表major表mid更新後 子表stu的major-id級聯更新
-- 刪除:
第一步:刪除外來鍵 alter table stu drop foreign key stu_mid_fk;-- 約束名
第二步:刪除索引 alter table table_name drop index 索引名;
desc stu;