函数和约束
文章目录
- 函数和约束
- 函数
- 字符串函数
- 数值函数
- 日期函数
- 流程函数
- 约束
- 概念
- 目的
- 分类
- 使用
- 案例
- 外键约束
函数
使用
select 函数();
字符串函数
数值函数
日期函数
流程函数
约束
概念
约束是作用于表中字段上的规则,用于限制存储在表中的数据。
目的
保证数据库中数据的正确、有效性和完整性。
分类
约束 | 描述 | 关键字 |
---|---|---|
主键约束 | 唯一标识表中的记录,每个表只能有一个 | PRIMARY KEY |
唯一约束 | 确保列中的所有值都是唯一的 | UNIQUE |
外键约束 | 确保一列或一组列中的值在另一个表中有对应的值,实现表间关联 | FOREIGN KEY |
非空约束 | 确保列中的值不为空 | NOT NULL |
默认约束 | 为列指定默认值 | DEFAULT |
CHECK约束 | 确保列中的值符合指定的条件 | CHECK |
约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束
使用
# 添加约束
alter table 表名 add constraint 约束名 约束 (字段名);
# 修改约束
alter table 表名 modify 字段名 类型 约束;
案例
create table user(id int primary key auto_increment comment '主键',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 '用户表';
外键约束
概念
外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性
语法
# 添加外键
create table 表名(字段名 数据类型,....,[constraint] [外键名称] foreign key(外键字段名) references 主表(主表列名)
);
alter table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名);# 删除外键
alter table 表名 drop foreign key 外键名称;
删除/更新行为
行为 | 说明 |
---|---|
RESTRICT | 如果存在相关联的子表数据,则禁止对父表数据进行删除或更新操作,直到相关联的子表数据被删除或更新。(与no action一致) |
CASCADE | 如果父表数据被删除或更新,将自动删除或更新相关联的子表数据。 |
SET NULL | 如果父表数据被删除或更新,将相关联的子表外键列设置为 NULL。 |
NO ACTION (默认) | 类似于 RESTRICT,如果存在相关联的子表数据,则禁止对父表数据进行删除或更新操作。(与restrict一致) |
SET DEFAULT | 如果父表数据被删除或更新,将相关联的子表外键列设置为默认值。 |
alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表(主表字段名) on update 行为 on delete 行为;
|
alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表(主表字段名) on update 行为 on delete 行为;