1.約束的含義:一種限制。用於限制表中資料,為了保證表中資料準確可靠。
2.六大約束
(1)not null:非空,用於保證該字段的值不能為空
(2)default:預設,用於保證該字段有預設值
(3)primary key:主鍵,用於保證該字段值具有唯一性,並且非空
(4)unique:唯一、具有唯一性但可為空;比如:座位號
(5)check:檢查約束(mysql中不支援)
(6) foreign key:外來鍵,用於限制兩個表的關係,保證該字段的值必須來自主表的關聯列的值
(在從表中新增外來鍵約束,用於引用主表中某列的值)
q1. 主鍵 vs 唯一:
是否唯一
是否允許為空
一張表中可以有多少個
是否可以組合
主鍵唯一
不允許至多1個
可以,但不推薦
主鍵唯一
允許可以多個
可以,但不推薦
q2. 外來鍵的特點:
1.要求在從表設定外來鍵約束
2.從表外來鍵列的型別和主表關聯列的型別要求一致或相容,名稱無要求
3.主表關聯列必須是乙個key(主鍵或者唯一)
4.插入資料時,先插入主表,再插入從表;刪除資料時,先刪除從表,再剔除主表
3.約束的新增時機:
4.約束的新增分類: 位置
支援的約束型別
是否可起約束名
列級約束
列的後面
語法都支援,外來鍵沒效果
不可以表級約束
所有列下面
預設和非空都不支援,其他支援
可以,但主鍵沒效果
create
table 表名 (
欄位名 字段型別 列級約束,
欄位名 字段型別,
表級約束
);
1.新增列級約束
create
table students (
stu_id int
primary
key,
stu_name varchar(20
)not
null
, gender char(1
)check
(gender=
'男'or gender=
'女')
, seat int
unique
, age int
default
, majorid int
[foreign
key]
references major(id)
);
2.新增表級約束
語法:[constraint 約束名] 約束型別 (欄位名)
create
table students (
stu_id int
, stu_name varchar(20
),gender char(1
),seat int
, age int
, majorid int
,primary
key(id)
,unique
(seat)
,check
(gender=
'男'or gender=
'女')
,foreign
key(majorid)
references major(id)
);
1.新增非空約束
alter
table students modify
column stu_name varchar(20
)not
null
;
2.新增預設約束
alter
table students modify
column age int
default
18;
3.新增主鍵
alter
table students modify
column id int
primary
key;
或者alter
table students add
primary
key(id)
;
4.新增唯一(同3)
alter
table students modify
column seat int
unique;或者
alter
table students add
unique
(seat)
;
5.新增外來鍵
alter
table students add
foreign
key(majorid) fk_students_major references major(id)
;
1.刪除非空、預設約束
alter
table students drop
primary
key;
alter
table students ;
2.刪除主鍵、唯
一、外來鍵
alter
table students drop
primary
key;
alter
table students drop
index seat;
alter
table students drop
foreign
key fk_students_major;
【補充:標識列】
定義
標識列,又稱自增長列,可以不用手動插入值,系統提供預設的序列值。
特點
1.修改表時設定標識列
alter
table students modify
column id int
primary
keyauto_increment
;
2.修改表時刪除標識列
alter
table students modify
column id int
primary
key;
Mysql基礎七之常見約束
常見約束 含義 一種限制,用於限制表中的資料,為了保證表中資料的準確和可靠性 1.not null 非空,用於保證該字段的值不能為空 2.default 預設,用於保證該字段有預設值 3.primary key 主鍵,用於保證該字段的值具有唯一性,並且非空 4.unique 唯一,用於保證該字段的值...
MySQL常見約束
1 含義 一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性 2 分類 六大約束 not null 非空,用於保證該字段的值不能為空 比如姓名 學號等 default 預設,用於保證該字段有預設值 比如性別 primary key 主鍵,用於保證該字段的值具有唯一性,並且非空 比如學號 ...
mysql常見約束
2.2 修改表時 三 刪除外來鍵 總結語法 欄位名和型別後面追加 約束型別即可。支援範圍 預設 非空 主鍵 唯一 use students drop table stuinfo create table major id int primary key,majorname varchar 20 cr...