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;

相关推荐
晚霞的不甘1 天前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位1 天前
JAVA开发常见安全问题:纵向越权
java·数据库·安全
海奥华21 天前
mysql索引
数据库·mysql
2601_949593651 天前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
javachen__1 天前
mysql新老项目版本选择
数据库·mysql
Dxy12393102161 天前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light1 天前
MySQL相关问题
数据库·mysql
蜡笔小炘1 天前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长1 天前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
Re.不晚1 天前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构