mysql欄位約束

2021-10-13 12:33:55 字數 2046 閱讀 4167

特點:唯一且不能為空!!!

當主鍵為數值時,為了方便維護,可以設定主鍵為自增(auto_increment)

示例:建立user表,指定id為主鍵, 並指定主鍵自增

第一種方式:主鍵自增和主鍵宣告放一起

create table user(

id int primary key auto_increament,

name varchar(50)

......

);

第二種方式:主鍵自增放在最後

create table user(

id int auto_increament,

name varchar(50) ,

......,

primary key(id)

);

特點:唯一約束特點是不能重複!!(允許為空)

重點說明:

唯一約束,可以為空

允許為空

示例:建立user表, 指定使用者名稱不能重複

create table user(

id int primary key auto_increament,

username varchar(50) unique,

...);

特點:不能為空值, 即插入資料時該列必須得有值!!

示例:建立user表, 指定密碼不能為空

create table user(

id int primary key auto_increament,

username varchar(50) unique,

password varchar(50) not null,

...);

示例:員工部門表,員工表設定部門id為外來鍵

第一種方式:建表的時候指明外來鍵

-- 建立部門表

create table dept(

id int primary key auto_increment, -- 部門編號

name varchar(20) -- 部門名稱

);-- 建立員工表

create table emp(

id int primary key auto_increment, -- 員工編號

name varchar(20), -- 員工姓名

dept_id int, -- 部門編號

foreign key(dept_id) references dept(id) -- 指定dept_id為外來鍵

);

第二種方式:如果表已存在,可以使用下面這種方式:

-- 建立部門表

create table dept(

id int primary key auto_increment, -- 部門編號

name varchar(20) -- 部門名稱

);-- 建立員工表

create table emp(

id int primary key auto_increment, -- 員工編號

name varchar(20), -- 員工姓名

dept_id int -- 部門編號

);-- 如果表已存在,可以使用下面這種方式:

alter table emp add constraint fk_dept_id foreign key(dept_id) references dept(id);

其中 add constraint fk_dept_id 表示新增列,列名為**fk_dept_id** (名字由自己定義)

說明:

一般情況下,我們表是不設定外來鍵的,因為外來鍵的設定導致很多操作不方便

mysql 字段約束

5.6 操作表的約束 80 5.6.1 mysql支援的完整性約束 81 5.6.2 設定非空約束 not null,nk 81 5.6.3 設定欄位的預設值 default 82 5.6.4 設定唯一約束 unique,uk 84 5.6.5 設定主鍵約束 primary key,pk 85 5....

mysql欄位約束

為了確保資料的完整性和唯 性,關係型數 據庫通過約束機制來實現目。一.unique 唯一性約束 值不可重複 二.not null 非空約束 值不可為空 三.default 預設值約束 當增加資料時沒有插 值時,會自動插 預設值 四.check 檢查約束 mysql不支援該約束,但寫入語句不會報錯 五...

mysql 邏輯型字段 MySQL 字段約束

字段約束 mysql的字段約束共四種 約束名關鍵字 描述主鍵約束 primary key 字段值唯一,且不能為null 非空約束 not null 字段值不能為null 唯一約束 unique 字段值唯一,但可以為null 外來鍵約束 foreign key 保持關聯資料的邏輯性 關於主鍵約束 主鍵...