SQL unique約束之 表約束 與 列約束

2021-10-09 14:09:42 字數 2070 閱讀 1068

唯一約束——unique

ⅰ 列約束:每個欄位都不能出現重複的資料

drop

table

ifexists studentinfo;

create

table studentinfo(

studentid bigint

unique

,//表約束

name varchar

(255

)unique

//表約束

);

建表成功 :

① 新增 相同id 不同姓名 的學生記錄 ↓↓↓

insert

into studentinfo values

(202001

,'aimer'

),(202001

,'majiko'

);

新增失敗:

error 1062 (23000): duplicate entry '202001' for key 'studentinfo.stuentid'
② 新增 不同id 相同姓名 的學生記錄 ↓↓↓

insert

into studentinfo values

(202001

,'amier'

),(202002

,'aimer'

);

新增失敗:

error 1062 (23000): duplicate entry 'aimer' for key 'studentinfo.name'
③ 新增 不同id 不同姓名 的學生記錄 ↓↓↓

insert

into studentinfo values

(202001

,'amier'

),(202002

,'majiko'

);

新增成功 ↓↓↓

ⅱ 表約束:多個字段聯合約束,即被約束多個字段不能全部重複

drop

table

ifexists studentinfo;

create

table studentinfo(

stuentid bigint

unique

, name varchar

(255

)unique,

unique

(studentid,name)

//表約束

);

① 新增 不同id 相同姓名 的學生記錄 ↓↓↓

insert

into studentinfo values

(202001

,'amier'

),(202002

,'aimer'

);

新增成功 ↓↓↓

② 新增 相同id 相同姓名 的學生記錄 ↓↓↓

insert

into studentinfo values

(202001

,'amier'

),(202001

,'aimer'

);

新增失敗:

error 1062 (23000): duplicate entry '202001-aimer' for key 'studentinfo.studentid'

SQL UNIQUE 約束 關鍵字解析

語法 create table persons id p int not null,lastname varchar 255 not null,firstname varchar 255 address varchar 255 city varchar 255 unique id p create ...

Oracle之表的約束

1.建表的同時建立約束 create table student 1 stuid number 32 primary key,主鍵 stuname varchar2 16 unique 唯一約束 age varchar2 4 notnull 非空約束 gender varchar2 8 check ...

MySQL中的約束,列級約束,表級約束

總結了一些課上的筆記和 可以執行看看 約束的作用 一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性。約束的分類 1.not null 非空,用於保證該字段的值不能為null 2.default 預設值,用於保證該字段在不設定具體的內容時,有乙個預設值。即開始存資料的時候不不傳也會有乙個...