MySQL基礎(六)常見約束

2021-10-23 11:29:22 字數 3816 閱讀 7199

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...