SQL server——基础篇之数据完整性

2023-03-12,,

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

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

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

实体完整性

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

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

主键约束(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——基础篇之数据完整性的相关教程结束。

《SQL server——基础篇之数据完整性.doc》

下载本文的Word格式文档,以方便收藏与打印。