完整性約束

2021-10-06 06:31:35 字數 3852 閱讀 4133

create

table student_tb(

id int

notnull

, 非空約束(資料不允許為空)

name varchar

(255

)null 顯式指定允許為空);

- 新增非空約束

alter

table 表名 modify

column 屬性名 屬性型別 not

null

;alter

table student_tb modify

column name varchar

(255

)not

null

;- 刪除非空約束

alter

table 表名 modify

column 屬性名 屬性型別;

alter

table student_tb modify

column id int

;

create

table teacher_tb(

id int

notnull

unique

, 唯一性約束(資料存在必唯一,允許為 null)

另一種寫法

id int

,unique

(id)

name varchar

(255

)not

null

,- 約束關鍵字 constraint

給約束起名字,方便刪除

constraint 約束名 約束型別

constraint id_unique unique

(name)

, age int);

- 新增唯一性約束

alter

table 表名 add

constraint

[約束名]

unique(屬性名);

alter

table teacher_tb add

constraint age_unique unique

(age)

;- 刪除唯一性約束

alter

table 表名 drop

index 屬性名;

alter

table teacher_tb drop

index age_unique;

create

table student_tb(

id int

primary

keyauto_increment

, 自增長約束必須和主鍵一起使用

age int)[

auto_increment=2

]; 可以自己設定初始值,預設為 1 開始

- 新增自增長約束

alter

table 表名 modify

column 屬性名 屬性型別 primary

keyauto_increment

;

create

table course_tb(

subject varchar(20

)default math,

teacher varchar(20

));- 新增預設值約束

alter

table 表名 modify

column 屬性名 屬性型別 default 預設值;

alter

table course_tb modify

column teacher varchar(20

)default

'小雨滴'

;- 刪除預設值約束

alter

table 表名 modify

column 屬性名 屬性型別;

alter

table course_tb modify

column teacher varchar(20

);

主鍵約束的特點

- 非空約束 not

null

- 唯一約束 unique

- 每個表只能有乙個主鍵約束

- 多列聯合的主鍵約束,聯合主鍵的值不能重複

- 列級定義

create

table student_tb(

id int

primary

key,

age int);

- 表級定義

create

table student_tb(

id int

, age int

,constraint id_primary primary

key(id));

- 復合主鍵(表級定義)

create

table student_tb(

id int

, age int

,primary

key(id,age));

- 新增主鍵約束

alter

table 表名 add

constraint 主鍵名 primary

key(屬性名)

;create

table student_tb(

id int

, age int,)

;alter

table student_tb add

constraint primary_key primary

key(id)

;- 刪除主鍵約束

alter

table 表名 drop

primary

key;

alter

table student_tb drop

primary

key;

- 什麼是外來鍵

當有兩個表 a、b , id 是 a 的主鍵,而 b 中也有 id 字段,則 id 就是表 b 的外來鍵

一張表可以有多個外來鍵

- 新增外來鍵約束(列級定義)

foreign

key(屬性名)

references 被引用表名(被引用表主鍵名)

create

table student_tb(

stu_id int

primary

key,

name varchar(20

),class int);

create

table inform_tb(

grade int

, id int

,foreign

key(id)

references student_tb(stu_id);)

;- 新增外來鍵約束

alter

table 表名 add

constraint 約束名 foreign

key(屬性名)

references 被引用表名(主鍵名)

;alter

table inform_tb add

constraint id_foreign foreign

key(id)

references student_tb(stu_id)

;- 刪除外來鍵約束

alter

table 表名 drop

foreign

key 約束名;

alter

table inform_tb drop

foreign

key id_foreign;

完整性約束

資料庫的完整性是指保護資料庫的有效性和正確性,防止資料庫中存在不符合語義的 不正確的資料。sql語言提供了相應的完整性約束機制,以確保將正確的資料儲存到資料庫中。完整性約束的型別 唯一約束 unique 用於表中的非主鍵字段,確保字段不會輸入重複的值,為其創造唯一索引 唯一鍵的值可以是null,但只...

完整性約束

約束 為什麼要使用約束?為了保障資料的合法性,完整性 分類 not null 非空約束,資料不能為空 例如 學生表的姓名字段 create table student id int,name char 10 not null,char 1 default woman unique 唯一的約束,該字段...

SQL完整性約束

完整性約束保證授權使用者對資料庫所做的修改不會破壞資料的一致性。not null宣告禁止在該屬性上插入空值。任何可能導致向乙個宣告為not null的屬性插入空值的資料都會產生錯誤診斷資訊。unique aj 1 aj 2 aj m unique宣告指出aj 1 aj 2 aj m 形成了乙個候選碼...