当前位置:网站首页>MySQL约束关系,你必须要知道的知识点!
MySQL约束关系,你必须要知道的知识点!
2022-08-09 09:29:00 【农场主er】
创建表的时候往往给字段加一些约束,以保证数据的 合法性、有效性、完整性。
1、非空约束:not null
非空约束针对某个字段设置其值不能为NULL
。创建表时如果有字段声明如下:字段名 数据类型 not null
,表明插入数据时必须要给这个字段赋值,如果没有就会报错。
2、唯一约束:unique
唯一性约束可令某个字段不可重复。创建表时如果有字段声明如下:字段名 数据类型 unique
,表明插入时这个字段的值不可与已经存在的数据重复,但是均可以为NULL
,称为列级约束。
如果想令几个字段合起来不可重复,可以这样声明:unique(字段名,...)
,称为表级约束,非空约束没有表级写法。
3、主键约束:primary key
3.1 pk的作用
具有pk
的字段既不能重复,也不能为NULL
。创建表时的pk
声明如下:字段名 数据类型 primary key
,称为单一主键,如果采用表级约束:primary key(字段名,...)
称为复合(联合)主键
。
字段加上pk
后称为主键字段,主键字段中的每一个值都是主键值,主键值是记录在表中的唯一标识,任何一张表中都应该有主键,且pk
只能有一个。
3.2 主键的分类
根据主键的性质可划分为自然主键和业务主键。前者的主键字段独立,与具体的业务没有关联;后者主键值和业务挂钩,比如银行卡号。
业务主键不推荐使用,因为业务后续发生改变的话,主键值随之变化,可能导致主键值相同,但是这是不允许的,反之业务也无法改变。
3.3 主键值自增
实际业务中主键值往往由服务端给出,主键值从0开始,每次插入一条数据主键值自动增1。创建表时的声明如下:字段名 数据类型 primary key auto_increment
,如果插入数据时手动给主键值赋值,下一次自增在已赋值的基础上进行。
4、外键约束:foreign key
外键可以维护表之间的关系,如果表中的某个字段为外键字段,那么外键值必须来自所选参照表对应的字段值,外键值可以为NULL
。
例如有两张表student:id(pk)、sname、classno
和class:id(pk)、cno(unique)、cname
,其中student
表中的classno
字段值必须来自class
表中的cno
,外键约束为foreign key(classno) references class(cno)
,建表语句如下:
create table class(
id int primary key,
cname varchar(255),
cno int unique
);
create table student(
id int primary key,
sname varchar(255),
classno int,
foreign key(classno) references class(cno)
);
注释
- 存在外键的表是子表(从表),参照的表是父表(主表),即两张表存在主从关系;
- 父表中作为参照的字段可以不是主键,但至少要有
unique
约束。因为一旦作为参照的字段值有重复,子表中的外键值无法确认依赖父表的哪一条记录; - 创建表和添加数据的顺序:先父表后子表;
- 删除表和删除数据的顺序:先子表后父表。
欢迎评论区交流~
边栏推荐
猜你喜欢
try catch 对性能影响
Ontology Development Diary 05-Strive to Understand SWRL (Part 2)
银联最新测试工程师笔试题目,你能得多少分?
一篇文章让你彻底搞懂关于性能测试常见术语的定义
本体开发日记04-努力理解protege的某个方面
2021-04-26QGIS3.10加载天地图影像(地图瓦片)的一种方法
白盒测试的概念、目的是什么?及主要方法有哪些?
A Practical Guide to Building OWL Ontologies using Protege4 and CO-ODE Tools - Version 1.3 (7.4 Annotation Properties - Annotation Properties)
游戏测试的概念是什么?测试方法和流程有哪些?
功能自动化测试实施的原则以及方法有哪些?
随机推荐
RPC服务远程漏洞
1. The concept of flow
1.流的概念
GBase数据库中,源为 oracle 报出“ORA-01000:超出打开游标最大数”
【分布式事务】
3. Coding method
安装torch_sparse失败解决方法
Sweet alert
一个项目的整体测试流程有哪几个阶段?测试方法有哪些?
A Practical Guide to Building OWL Ontologies using Protege4 and CO-ODE Tools - Version 1.3 (7.4 Annotation Properties - Annotation Properties)
软件测试的流程规范有哪些?具体要怎么做?
nacos从下载到安装集群的
3. Practice the Thread
3.编码方式
8. Recursively traverse and delete cases
5.Set interface and implementation class
Summary of steps and methods for installing and uninstalling test cases that you must read
Anti App so层对抗分析
2.Collection interface
Cisco common basic configuration of common commands