資料庫表的約束條件

2021-10-09 05:48:30 字數 3371 閱讀 9407

主鍵約束可以用兩種方式定義:列級主鍵約束和表級主鍵約束

列級主鍵約束演示:

create

table dept_htlwk(

deptno varchar(20

)primary

key,

--列級約束條件

dname varchar(20

),location varchar(40

));

表級主鍵約束演示:

create

table dept_htlwk(

deptno varchar(20

),dname varchar(20

),location varchar(40

),constraint dept_htlwk_deptno_pk primary

key(deptno)

);

非空約束只有列級定義方式,即非空約束只能定義在列級

create

table dept_htlwk_bak1(

deptno varchar(20

)primary

key,

dname varchar(30

)not

null

,//非空約束

location varchar(50

));

非空約束如何命名?

create

table dept_htlwk_bak1(

deptno varchar(20

)primary

key,

dname varchar(30

)constraint dept_htlwk_bak1_dname_nn not

null

,//非空約束

location varchar(50

));

唯一約束可以用兩種方式定義:列級唯一約束和表級唯一約束

列級唯一約束演示:

create

table student(

student_id bigint(20

)primary

key,

student_name varchar(30

)not

null

,email varchar(30

)unique

,student_age tinyint(3

));

表級唯一約束演示:

create

table student(

student_id bigint(20

),student_name varchar(30

)not

null

,email varchar(30

),age tinyint(3

),constraint student_id_pk primary

key(student_id)

,//表級主鍵約束

constraint student_email_uk unique

(email));

//表級唯一約束

檢查約束可以用兩種方式定義:列級檢查約束和表級檢查約束

列級檢查約束演示:

create

table student(

student_id bigint(20

)primary

key,

student_name varchar(30

)not

null

,email varchar(30

)unique

,age tinyint(3

)check

(age >10)

,gender char(1

)check

(gender in

('f'

,'m'))

--'f'代表女生 ;'m'代表男生

);

表級檢查約束演示:

create

table student(

student_id bigint(20

),student_name varchar(10

)not

null

,email varchar(30

),age tinyint(3

),gender char(1

),--'f'代表女生 ;'m'代表男生

constraint student_id_pk primary

key(student_id)

,constraint student_email_uk unique

(email)

,constraint student_age_ck check

(age >10)

,constraint student_gender_ck check

(gender in

('f'

,'m'

,'f'

,'m'))

);

mysql關於check約束無效的解決辦法

外來鍵約束只有表級定義方式,即外來鍵約束只能定義在表級

外來鍵約束演示:

create

table student(

student_id bigint(20

),student_name varchar(20

)not

null

, email varchar(30

)unique

,gender char(1

),age tinyint(3

),major_id bigint(20

),constraint student_id_pk primary

key(student_id)

,constraint student_gender_ck check

(gender in

('f'

,'m'

,'f'

,'m'))

,constraint student_major_id_fk foreign

key(major_id)

references major(major_id)

ondelete

setnull

);

解釋:

on delete set null 一旦主表資料刪除,從表關聯資料置為null

on delete cascade 級聯刪除,主表資料刪除,從表關聯資料也刪除

資料庫建表的約束條件

primary key pk 標識該字段為該錶的主鍵,可以唯一的標識記錄,主鍵就是不為空 且唯一當然其還有加速查詢的作用 foreign key fk 標識該字段為該錶的外來鍵,用來建立表與表的關聯關係 not null 標識該欄位不能為空 unique key uk 標識該字段的值是唯一的 aut...

01 2資料庫約束條件

約束的分類 1 主鍵 pk primary key 2 唯一約束 uk unique key 3 外來鍵約束 fk foreign key 4 非空約束 nn not null 5 檢查約束 ck check 6 預設值約束 default ps 1 pk uk nn 唯一且非空 2 實現方法 co...

資料庫之約束條件

約束條件 python primary key pk 標識該字段為該錶的主鍵,可以唯一的標識記錄 foreign key fk 標識該字段為該錶的外來鍵 not null 標識該欄位不能為空 unique key uk 標識該字段的值是唯一的 auto increment 標識該字段的值自動增長 整...