MySQL约束

·概述

1、概念:

约束是作用于表中字段上的规则,用于限制存储在表中的数据。

2、目的:

保证数据库中数据的正确、有效性和完整性。

3、分类:

|------|------------------------------|-------------|
| 约束 | 描述 | 关键字 |
| 非空约束 | 限制该字段的数据不能为null | NOT NULL |
| 唯一约束 | 保证该字段的所有数据都是唯一的,不重复的 | UNQUE |
| 主键约束 | 主键时一行数据的唯一标识,要求非空且唯一 | PRIMARY KEY |
| 默认约束 | 保存数据时,如果未指定该字段的值,则采用默认方式 | DEFAULT |
| 检查约束 | 保证字段值满足某个条件 | CHECK |
| 外键约束 | 用来让两张表的数据之间建立联系,保证数据的一致性和完整性 | FOREIGN KEY |

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

·约束演示

根据下图的条件,添加约束

create table user(

id int primary key auto_increment comment '主键', -- auto_increment是自增

name varchar(10) not null unique comment '姓名',

age int check (age > 0 && age <= 120) comment '年龄',

status char(1) default '1' comment '状态',

gender char(1) comment '性别'

)comment '用户表';

·外键约束

外键是用来让两张表之间建立连接,从而保证数据的一致性和完整性。

只是在逻辑上关联,但是在数据库上并没有联系

添加外键:

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

删除外键:

alter table emp drop foreign key fk_emp_dept_id;

相关推荐
cooldream200918 分钟前
深入理解主从数据库架构与主从复制
数据库·oracle·数据库架构·系统架构师
Eternity......31 分钟前
spark MySQL数据库配置
数据库·mysql·spark
Freedom℡32 分钟前
使用scp命令拷贝hadoop100中文件到其他虚拟机中
数据库·hadoop·spark
Qdgr_36 分钟前
电厂除灰系统优化:时序数据库如何降低粉尘排放
数据库·时序数据库
慧一居士1 小时前
Memcached 服务搭建和集成使用的详细步骤示例
数据库·架构·nosql·memcached
脑子慢且灵1 小时前
MySQL:关系模型的基本理论
数据库·sql·mysql
码农飞哥1 小时前
互联网大厂Java求职面试实战:Spring Boot与微服务场景深度解析
java·数据库·spring boot·安全·微服务·消息队列·互联网医疗
Ai 编码助手1 小时前
可视化+智能补全:用Database Tool重塑数据库工作流
数据库
敲上瘾1 小时前
MySQL基本查询
数据库·mysql·数据库开发·数据库架构·数据库系统
清幽竹客2 小时前
redis数据结构-09 (ZADD、ZRANGE、ZRANK)
数据结构·数据库·redis