主鍵約束可以用兩種方式定義:列級主鍵約束和表級主鍵約束
列級主鍵約束演示:
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 標識該字段的值自動增長 整...