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 形成了乙個候選碼...