資料庫學習 14 常見約束

2021-09-30 01:10:48 字數 2600 閱讀 5944

一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性。

六大約束

1.建立表時

2.修改表時

1.列級約束:約束只能應用於一列上,六大約束語法上都支援,但外來鍵約束沒有效果

2.表級約束:可以應用於一列上,也可以應用在乙個表中的多個列上,除了非空、預設,其他的都支援

create table 表名(

欄位名 字段型別 列級約束,

欄位名 字段型別,

表級約束

)

1.新增列級約束建立乙個資料集:

create database students;
建立帶約束的學生資訊表:

create table stuinfo(

id int primary key,#主鍵

stuname varchar(20) not null unique,#非空

gender char(1) check(gender='男' or gender ='女'),#檢查

seat int unique,#唯一

age int default 18,#預設約束

majorid int references major(id)#外來鍵

);

建立帶約束的專業表:

create table major(

id int primary key,

majorname varchar(20)

);

2.新增表級約束

create table stuinfo(

id int,

stuname varchar(20),

gender char(1),

seat int,

age int,

majorid int,

constraint pk primary key(id),#主鍵

constraint uq unique(seat),#唯一鍵

constraint ck check(gender ='男' or gender = '女'),#檢查

constraint fk_stuinfo_major foreign key(majorid) references major(id)#外來鍵

);

通用的寫法:

create table if not exists stuinfo(

id int primary key,

stuname varchar(20),

*** char(1),

age int default 18,

seat int unique,

majorid int,

constraint fk_stuinfo_major foreign key(majorid) references major(id)

);

1、新增列級約束

alter table 表名 modify column 欄位名 字段型別 新約束;

2、新增表級約束

alter table 表名 add 【constraint 約束名】 約束型別(欄位名) 【外來鍵的引用】;

案例1:新增非空約束

alter table stuinfo modify column stuname varchar(20)  not null;
案例2:新增預設約束

alter table stuinfo modify column age int default 18;
案例3:新增主鍵

列級約束

alter table stuinfo modify column id int primary key;
表級約束

alter table stuinfo add primary key(id);
1.刪除非空約束

alter table stuinfo modify column stuname varchar(20) null;
2.刪除預設約束

alter table stuinfo modify column age int ;
3.刪除主鍵

alter table stuinfo drop primary key;
4.刪除唯一

alter table stuinfo drop index seat;
5.刪除外來鍵

alter table stuinfo drop foreign key fk_stuinfo_major;
主鍵和唯一的對比:

資料庫常見的約束

約束分為字段級別約束和表級別約束 字段級約束 只為單個字段新增約束 表級約束 為乙個或多個字段新增約束 primary key 不重複且不為null not null,unique 不重複但是可以有多個null auto incremenrt,foreign key name reference t...

學習資料庫 約束

約束語句 解釋主鍵約束 primary key 要求設定的列非空 not null 且唯一 unique 外來鍵約束 foreign key references c 要求設定的列參照列c,列c有資料時,在設定的列中才可新增相應的資料,兩列資料型別必須相同 非空約束 not null 要求設定的列非...

MySQL資料庫 常見約束詳解

常見約束 含義 一種限制,用於限制表中的資料,為了保證表中資料的可靠性和準確性 分類 六大約束 not null 非空,用於保證欄位的值不能為空 比如姓名,學號等 default 預設,用於保證該字段有預設值 比如性別 primary key 主鍵,用於保證該字段的值具有唯一性,並且非空 比如學號,...