MySQL保证数据完整性

php中文网
发布: 2016-06-07 17:24:06
原创
1873人浏览过

实体就是显示世界中的一个对象,RDBMS中每一行就代表一个实体。所谓实体完整性就是每一个实体都能被区别。所以,实现实体完整性一

数据完整性概述

1、实体完整性

实体就是显示世界中的一个对象,RDBMS中每一行就代表一个实体。所谓实体完整性就是每一个实体都能被区别。所以,实现实体完整性一般通过主键约束、唯一约束或表示列属性

2、域完整性

主要指列的输入要有效,,可通过限制列的数据类型、格式或值的范围来实现

3、引用完整性

主要是表与表的关系,可通过外键实现

4、用户自定义完整性

不是很了解,可通过触发器、存储过程实现,以后学了Oracle后会进一步了解

数据完整性的实现

1、创建非空约束(域完整性)

not null关键字,指定列不能输入null值

例子:

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44
查看详情 怪兽AI数字人

name varchar(50) not null;

2、设置主键约束(实体完整性)

primary key关键字,保证指定列的数据不可重复,不可为空。一张表只能定义一个主键

例子:

id int(10) primary key not null;

3、设置唯一约束(域完整性,因为是对列的限制)

unique关键字,因为有时一张表需要多个列唯一,而一张表又只能由一个主键,所以可以设置唯一约束来实现,一张表可以设置多个唯一约束

例子:

phoneNo varchar(20) unique;

4、指定默认值(域完整性)

default关键字,一条数据产生时如果没有输入一个列的值,那么我们可以指定一个默认值

例子:

phoneNo varchar(20) default'10086';

5、设置检查约束(域完整性)

check关键字,在插入新行或者更改已有行时才起作用,作用是阻止不满足条件的值进入该列,对null值无效,因为插入null就相当于没有插入。一个列可有多个check

例子:

age int check(age between 10 and 20);

由于mysql不支持,所以现在不是很清楚,以后填补下这个空白

6、使用自动编号列

auto_increment关键字,可以在添加一条记录时,自动为该行添加数值,而且是自动增长的。一般与主键一起用

例子:

id int primary key auto_increment not null;

7、创建外键约束

语法:

fk_name varchar(50) references 引用表表名(列名)

注意:引用表的列名必须是主键,且在删除引用表时必须删除引用关系或者删除当前表

比如:1张表代表班级,另1张表代表学生,在删除班级时必须删除引用关系或将学生全部开除

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号