mysql欄位約束

2021-09-17 18:36:52 字數 1680 閱讀 9852

為了確保資料的完整性和唯⼀性,關係型數 據庫通過約束機制來實現目。

一. unique 唯一性約束    : 值不可重複;

二. not null    非空約束    : 值不可為空;

三. default  預設值約束   : 當增加資料時沒有插⼊值時,會自動插⼊預設值;

四. check     檢查約束     : mysql不支援該約束,但寫入語句不會報錯;

五. primary key 主鍵約束:主鍵約束 = 唯一性約束 + 非空約束,是一張表的代表性字段,

一張表只能有乙個主鍵,

主鍵可以是乙個字段,也可以是多個字段(聯合主鍵,復合主鍵),

整形主鍵字段可以使用auto_increment(自動增長)修飾,

插入時不寫主鍵字段值,值 = 上一列值 + 1;

六. foreign key 外來鍵約束 :外來鍵是另一表的主鍵,常用來和其他表建立聯絡

外來鍵與主鍵的引用型別必須一致,如果主鍵是int外來鍵是char則不行  

一定要匹配主表中 引用的列 ( 所要建立的外來鍵是主表中的主鍵 )

主鍵和外來鍵的字元編碼必須一致,如果主表為utf8,則此表也要為utf8

–新增方式(注:文中新增方式僅為示例,

·           實際同時對乙個字段同時新增多個約束會有bug,

具體原因可以參見約束原理)

–第一種,建立表時在修飾字段末直接新增,不支援新增foreign key

create table stu(sid int unique,sname char(20));

create table stu(sid int not null,sname char(20));

create table stu(sid int default 0,sname char(20));

create table stu(sid int primary key,sname char(20));

–第二種,建立表時單獨新增,constraint表示起別名,不支援新增default

create table stu(sid int,

sname char(20),

constraint unique_stu unique(sid),

constraint notnull_stu not null(sid),

constraint pk_stu primary key(sid),

constraint fk_stu foreign key(sid) references s(sid)

);–第三種,表已經存在,且字段下的所有值符合約束條件

alter table stu add constraint unique_stu unique(sid);

alter table stu add constraint notnull_stu not null(sid);

alter table stu add constraint pk_stu primary key(sid);

alter table stu add constraint fk_stu foreign key(sid) references s(sid);

--查詢約束資訊,可檢視約束名,table表示表名

show keys from table;

–刪除約束,index表示約束名,table表示表名

drop index on table;

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欄位約束

特點 唯一且不能為空!當主鍵為數值時,為了方便維護,可以設定主鍵為自增 auto increment 示例 建立user表,指定id為主鍵,並指定主鍵自增 第一種方式 主鍵自增和主鍵宣告放一起 create table user id int primary key auto increament,...

mysql 邏輯型字段 MySQL 字段約束

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