資料庫 約束

2021-10-03 05:51:59 字數 2513 閱讀 6821

約束:對錶中的資料進行限定,保證資料的正確性,有效性和完整性。

分類1.主鍵約束:primary key

2.非空約束:not null

3.唯一約束:unique

4.外來鍵約束:foreign key

非空約束 :

建立表時新增約束name varchar(20) not null -- name為非空約束

取消約束:alter table stu modify name varchar(20);

建立表完後新增非空約束:alter table stu modify name varchar(20) not null;

唯一約束:

phone_number varchar(20

)unique

-- 新增唯一約束

注意,兩個null不衝突

alter

table stu1 modify phone_number varchar(20

);-- 這樣刪不掉唯一約束

alter

table stu1 drop

index phone_number;

-- 這樣刪掉唯一約束

alter

table stu1 modify phone_number varchar(20

)unique

;--新增唯一約束

主鍵約束:

1.注意:

含義:非空且唯一

一張表只能有乙個字段為主鍵

主鍵就是表中記錄的唯一標識

2.在建立表時,新增主鍵約束

create

table stu2(

id int

primary

key,

--給id新增主鍵約束

name varchar(20

));

3.刪除主鍵

alter

table stu1 modify id int

;-- 這樣刪不掉主鍵

alter

table stu2 drop

primary

key;

-- 這樣刪除主鍵

4.建立完錶後,新增主鍵

alter

table stu2 modify id int

primary

key;

5.自動增長

create

table stu(

id int

primary

keyauto_increment

,-- 給id新增主鍵約束,自動增長

name varchar(20

));alter

table stu3 modify id int

; 刪除自動增長,但不會刪除主鍵

alter

table stu3 modify id int

auto_increment

,--新增自動增長

外來鍵約束:

語法1.新增外來鍵

create

table 表名(..

. 外來鍵列;

constraint 外鍵名程 foreign

key (外來鍵列名稱) references 主表名稱(主表列名稱)

);

2.刪除外來鍵

alter

table 表名 drop

foreign

key 外來鍵名稱;

3.建立表之後,新增外來鍵

alter

table 表名 add

constraint 外來鍵名稱 foreign

key(外來鍵欄位名)

references 主表名稱(主表列名稱)

4.級聯操作

新增級聯操作-- 新增外來鍵設定級聯更新

alter

table employee add

constraint emp_dept_fk foreign

key(dep_id)

references department(id)

onupdate

cascade

;-- 新增外來鍵並設定級聯刪除

alter

table employee add

constraint emp_dept_fk foreign

key(dep_id)

references department(id)

ondelete

cascade

;

資料庫約束

mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...

資料庫約束

約束的簡介 資料的完整性是指資料的正確性和一致性,可以通過定義表時定義完整性約束,也可以通過規則,索引,觸發器等。約束分為兩類 行級和表級,處理機制是一樣的。行級約束放在列後,表級約束放在表後,多個列共用的約束放在表後。完整性約束是一種規則,不占用任何資料庫空間。完整性約束存在資料字典中,在執行sq...

資料庫 約束

約束說白了就是限制條件 當你不給某引數賦值時,該引數會採用預設值。例子 建立資料庫 create database tx 選擇使用的資料庫 use tx go goods表 create table goods goodsid nvarchar 50 primary key,主鍵 goodsname...