定义:保证数据库中的数据在逻辑上的一致性、正确性和可靠性。

作用:防止无效数据或错误数据进入数据库

数据完整性包括:实体完整性、域完整性和参照完整性

实体完整性

规定表的每一行记录在表中是唯一的

实体完整性的实现方式包括:主键约束、自增约束、唯一约束

  • 主键约束(Primary Key,PK)用于识别每一条记录,添加主键【右击>设置主键】或者【 alter table表名 add constraint 约束名 primary key(字段名)】;每个数据表只有一个主键,字段内容不能又重复值且不能为空
  • 自增约束(IDENTITIY):【列属性>标识规范】
  • 注意:
  • 有一定的增长规则
  • 只能对整形数据进行设置
  • 不能对自有增约束的字段内容进行输入删除
  • 通常在整型数据的主键上设置自增约束,每次报错都会有一次自增值
  • 唯一约束(Upique):【右击>索引/键>添加】或者【alter table 表名 add constraint 约束名 unique(字段名)】。在一个字段或一组字段中的数据与表中的其他数据想比试唯一的。

注意:主键约束一定是唯一的,而唯一约束不一定是唯一的

域完整性

保证指定列的数据具有正确的数据类型喝有效的数据范围

域完整性的实现方式包括:是否为空、CHECK约束、默认约束

  • 是否为空:not null。保证列中所有数据不能为空
  • CHECK约束:限制字段值的范围【右击>CHECK约束>添加>表达式】或者【alter table 表名 add constraint 约束名 check(内容)】
  • 默认值约束:【列属性>常规>默认值或绑定】或者【alter table 表名 add constraint 约束名 default(默认值) for 字段名】

参照完整性

两表之间的约束,要求一张表的某些列受到另一张表的某列的限制

主表:被参照的表        从表:参照表

主键:主表中被参照的列      外键:从表中的参照列

设置外键:【从表列>右击>关系>添加>表和列规范>设置主键表和外键表>确定】或者【alter table 表名 add constraint 约束名 foreign key(外键字段名) referencese 主表 (关联主键列)】主键表的列名可以和外键表的列名不同)

MYSQL

MySQL不支持检查约束

1.建表时添加约束

CREATE TABLE EMP(

ID  INT  PRIMARY  KEY  auto increment,  --主键约束,auto increment:主键自动增长(当列是数字类型且是唯一约束)

NAME  VACHER(10)  NOT NULL  UNIQUE,  --不为空且唯一,唯一约束

BIRTHDAY DATE  NOT NULL,  --不为空

SALARY  DOUBLE(7,2)  NOT NULL,  --不为空,非空约束

BONUS DOUBLE(7,2)  DEFAULE 0  --如果没有则默认为0,默认约束

)

外键约束

建立两表的数据之间建立链接,保证数据的一致性和完整性

建表时添加约束:CATEATE TABLE 表名(列明 数据类型,...CONSTRAINT  外键名称 FOREIGN KEY 外键列名 REFERNCES 主表列名)

建表后添加约束:alter table 表名 add constraint 约束名 foreign key(外键字段名) referencese 主表 (关联主键列)

2.建表后添加约束

ALTER TABEL 表名 MODIFY 字段名 数据类型 NOT NULL;

3.删除约束

删除非空约束:ALTER TABLE 表名 MODIFY 字段名 数据类型;

删除唯一约束:ALTER TABLE  表名 DROP INDEX 字段名;

删除默认约束:ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;

删除外键约束:ALTER TABEL 表名 DROP FOREIGN KEY 外键名称;

SQL server——基础篇之数据完整性的更多相关文章

  1. SQL Server 基础 02 确保数据完整性

    本章总结目的:    为了巩固 约束.事务! 约 束 使用数据库约束就是保证数据库的完整性的方法,SQL Server 涉及的完整性有三个: 1.实体完整性 : (不能为空且重复,即唯一的,例如身份证 ...

  2. 【SQL Server】SQL Server基础之存储过程

    SQL Server基础之存储过程  阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...

  3. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  4. 数据库开发基础-SQl Server 基础

    SQL Server 基础 1.什么是SQL Server SQL:Structured Query Language  结构化查询语言 SQL Server是一个以客户/服务器(c/s)模式访问.使 ...

  5. Sql Server 基础知识

    Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.c ...

  6. Sql Server 基础语法

    来自:http://www.cnblogs.com/AaronYang/archive/2012/04/24/2468093.html Sql Server 基础语法 -- 查看数据表 select  ...

  7. 【目录】sql server 进阶篇系列

    随笔分类 - sql server 进阶篇系列 sql server 下载安装标记 摘要: SQL Server 2017 的各版本和支持的功能 https://docs.microsoft.com/ ...

  8. 【目录】sql server 架构篇系列

    随笔分类 - sql server 架构篇系列 sql server 高可用镜像 摘要: 一.什么是数据库镜像 基本软件的高可用性解决方案 快速的故障转移恢复(3秒转移),低硬件成本 基于数据库级别的 ...

  9. 《SQL Server基础——SQL语句》

    SQL Server基础--SQL语句       一.创建和删除数据库: 1.创建数据库(默认化初始值) 格式: CREATE DATABASE 数据库名称 例如: CREATE DATABASE ...

  10. SQL Server基础之索引

     索引用于快速找出在某个列中有某一特定值的行,不使用索引,数据库必须从第一条记录开始读完整个表,直到找出相关的行.表越大,查询数据所花费的时间越多,如果表中查询的列有一个索引,数据库能快速到达一个位置 ...

随机推荐

  1. 微信开发者工具代码管理设置使用SSH Key(使用密码)方法

    参考微信开发社区--使用ssh key无法推送代码.微信开发者工具 SSH key认证 推送.拉取GitHub项目 1.确认已安装git,打开 Git Bash 使用https://git.weixi ...

  2. linux交叉编译libiconv

    1.解压libiconv-1.14.tar 2.进入解压后目录libiconv-1.14 3.执行交叉编译环境命令,例如: source /home/huhe/environment-setup-aa ...

  3. Keil51单片机数码管鬼影显示问题

    Keil51单片机数码管鬼影显示问题 所为的鬼影就是程序逻辑正确,但电路逻辑有问题.就是按程序逻辑,前一个数字显示后,直接显示下一组数字,因为没清干净,导致瞬间残留: 处理的办法,就是有就显示,没有就 ...

  4. 解决mysql使用sql文件不能还原数据库的问题

    来源:https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=109605 解决ERROR 1231 (42000): Variable ...

  5. tcpdump: error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory

    [root@inner ~]# tcpdump -i any -s 0 -w trunkm.pcaptcpdump: error while loading shared libraries: lib ...

  6. laravel视图响应

    1.输出json $data = [ 'id' => 1, 'name' => 'jack', ]; return response()->json($data); 2.重定向 // ...

  7. C# Visual Studio等,学习地址

    Visual Studio 2022 学习地址 Visual Studio系列学习地址 Csharp11 学习地址 Csharp 学习地址 W3School公营,推广技术,免费学习 W3CSchool ...

  8. centos7 系统初始化配置

    1.设置ip地址 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192 PROXY_METHOD="none ...

  9. HTML学习笔记3----制作一个简易网站

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  10. 字体样式font-style

    font-family 指的是字体比如 "宋体","微软雅黑"等等 具体字体:微软雅黑.宋体.黑体.宋体等等 字体系列:sans-serif.serf.mono ...