2025年数据库表的约束条件[通俗易懂]

数据库表的约束条件[通俗易懂]文章目录 1 主键约束 2 非空约束 3 唯一约束 4 检查约束 5 外键约束 1 主键约束 主键约束可以用两种方式定义 列级主键约束和表级主键约束 列级主键约束演示 create table dept htlwk deptno varchar 20 primary key 列级约束条件 dname varchar 20 location varchar 40

文章目录

1.主键约束

2.非空约束

3.唯一约束

4.检查约束

5.外键约束

1.主键约束

主键约束可以用两种方式定义:列级主键约束和表级主键约束

列级主键约束演示:

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) );

2.非空约束

非空约束只有列级定义方式,即非空约束只能定义在列级

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));

3.唯一约束

唯一约束可以用两种方式定义:列级唯一约束和表级唯一约束

列级唯一约束演示:

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) );//表级唯一约束

4.检查约束

检查约束可以用两种方式定义:列级检查约束和表级检查约束

列级检查约束演示:

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约束无效的解决办法

5.外键约束

外键约束只有表级定义方式,即外键约束只能定义在表级

外键约束演示:

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) on delete set null);

解释:
on delete set null 一旦主表数据删除,从表关联数据置为null
on delete cascade 级联删除,主表数据删除,从表关联数据也删除

编程小号
上一篇 2025-01-17 09:21
下一篇 2025-01-17 09:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/148775.html