千家信息网

MySQL(3)-表的完整性约束

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,表的完整性约束作用 : 用于保证数据的完整性常见的表的约束有 : PRIMARY KEY(PK主键) , FOREIGN KEY(FK外键) , NOT NULL , UNIQUE KEY(唯一键)
千家信息网最后更新 2026年11月01日MySQL(3)-表的完整性约束


表的完整性约束作用 : 用于保证数据的完整性


常见的表的约束有 : PRIMARY KEY(PK主键) , FOREIGN KEY(FK外键) , NOT NULL , UNIQUE KEY(唯一键) , AUTO_INCREMENT , DEFAULT(默认值)


一 . DEFAULT , NOT NULL

说明 : default : 指定默认值

not null : 不允许为空 , 就类似我们在网上注册账号时 , 有些内容必须要填写 , 空着就提交不了


例 : 创建 school 数据库 , 在 school 数据库中创建 student 表 , 字段有学号id , 姓名name , 性别sex ; 设置 id , name不允许为空 ,sex不允许为空 , 且sex默认设置为男 .

创建表后查看student表的结构 , 可以看到null都为no , default选项sex字段默认为m

现在插入一条数据 , 如 : insert into student value(1,'jack','m');

从上图可以看出成功插入 , 再次插入一条数据 : insert into student(id,name) value(1,'lucy');

只插入两个字段 , sex字段没有数据插入 , 但因为该字段不允许为空且默认值设为m , 所以会默认记录为m


二 . 设置唯一约束 UNIQUE

唯一约束 : 控制此列的值不允许重复 , 必须是唯一的一个值


例 : 创建student2表 , 在student表的基础上把id字段设为unique

create table student2( id int unique, name varchar(50) not null, sex enum('m','f')default 'm' not null);

可以看到id字段key为UNI , 这时插入两条记录

可以看出 , 因为id字段设置了unique , 插入两条记录的id值都为1 , 所以插入数据报错

三 . 设置主键约束 PRIMARY KEY

primary key 字段的值是不允许重复 , 且不允许为空 , 即 UNIQUE + NOT NULL

主键有单列主键和多列主键(复合主键) ,多列主键即两条或两条以上的字段设置为主键

例 : 创建student3表 , 将字段 id 设为主键

create table student3(id int primary key ,name varchar(50) not null ,sex enum('m','f'));

设置主键之后 , 插入数据时id字段的值不能为空且不能出现相同时 , 才能插入成功

(复合主键同理 , 即多个字段设置primary key 或 not null unique)

四 . 设置外键约束 FOREIGN KEY

外键功能 : 设置字表与父表 , 对父子表进行同步更新 , 同步删除

实例 : 在test表中创建一张员工(employees)表 , 一张工资(payroll)表 , 将两张表设置外键

员工表(父表) :

工资表(子表)

查看这两张表结构:

创建完两张表后 , 在父表employees中插入tom , jack 的记录

在字表中插入一条Lucy的记录 , 从下图看出插入数据Lucy会报错 , 因为做了外键 , 并且父表中没有Lucy的信息

再在payroll表中插入tom ,jack字段 :insert into payroll(id,pname,payroll) values (1,'tom',15.6), (2,'jack',100.5);

插入值之后 , 将父表employees中的tom改为tomer , 再看看字表中的变化 , 子表的tom也变成了tomer

结论:
0、外键的作用就是实现在子表中引用父表中某列的值,这样子表中外键的值是依赖于父表的。
1、父表中的主键才能作为子表中的外键。
2、当父表中某个员工的记录修改时,子表也会同步修改
3、当父表中删除某个员工的记录,子表也会同步删除


五 . 设置自增字段值 AUTO_INCREMENT

例 : 在test库中创建一张zhi表 ,将id设置成自增

创建表之后插入数据 : insert into zhi(name,age) values('tom',18),('jack',19),('lucy',20); #可以看出插入的数据没有id自段

插入上述字段可以看出 , id 字段自动一自增的形式自动补全数据



字段 数据 员工 中创 完整性 成功 作用 工资 数据库 结构 建一 同步 相同 上图 下图 两个 信息 内容 再次 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 小米移动互联网科技园 互联网科技公司排名 科技金融是不是互联网金融 疫情对互联网科技公司影响 互联网金融公司科技 赫美联合互联网科技 撒么互联网科技公司 上海亿帐通互联网科技 宁波青枫互联网科技有限公司 互联网科技实习生岗位职责 互联网经济与金融科技 厦门比较好的科技互联网公司 昊天互联网科技有限公司 国大互联网教育科技有限公司工作 互联网在线教育科技创业 济南有互联网科技公司吗 四川互联网展示科技馆设计 东营紫格互联网科技 陕西九四连强互联网科技有限公司 广州大一互联网络科技有限公司 湖南永感互联网科技有限公司 互联网金融科技平台 湖北码尼互联网科技有限公司电话 如何创新互联网科技 工业互联网等科技实现智能化赋能 山东星卡互联网科技有限公司官网 互联网营销推广黑科技 风投北京互联网科技 玉溪新华互联网科技怎么选
0