目录
3.1使用SQL Server Management Studio创建主键约束
4.1使用SQL Server Management Studio创建外键约束
6.1使用SQL Server Management Studio
7.1使用SQL Server Management Studio创建默认值
数据完整性是指数据的精确性和可靠性,主要用于保证数据库中数据的质量。它是为防止数据库中存在不符合规定的数据和防止因错误信息的输入输出造成无效操作或报错而提出的。
一.数据完整性的分类
数据完整性分为你3类:实体完整性、用户定义完整性和参照完整性
1.实体完整性
保证表中的每一行数据没有重复(主键的功能)。是唯一的。
2.用户定义完整性
指数据库根据应用的不同,需要一些约束条件,如表中的列的数据类型、限制格式或限制可能值的范围(比如在性别字段中定义智能输入0或1,不能输入其他数值)
3.参照完整性
参照完整性是指在输入或删除记录时,包含主关键字和主表和包含外关键字的从表的数据应对应一致,保证了表之间的数据的一致性,防止数据丢失或无意义的数据在数据库中扩散。
SQL Server 将防止用户执行下列操作
(1)当主表中没有关联记录时,将记录添加或更改到相关表中。
(2)更改主表中的值,但会导致在相关表中生成孤立的记录
(3)从主表中删除记录,但仍存在与该记录匹配的相关记录
二.约束概述
2.1约束定义
约束是自动保持数据库完整性的一种方法。约束就是限制,定义约束就是定义可输入表或表的单个列中的数据的限制条件。
2.2约束分类
在SQL Server中有五种约束:主键约束、外键约束、唯一约束、检查约束和默认值约束
三.主键约束
主键约束用于指定表的一列或几列的组合唯一标识表,即能在表中唯一地指定一行记录。这样的一列或列的组合称为表的主键。定义主键约束的列,其值不可为空、不可重复:每个表只能有一个主键。
3.1使用SQL Server Management Studio创建主键约束
(1)启动SQL Server Management Studio
(2)在“对象资源管理器”窗格中,展开数据库对于的表选项,右击,选择“设计”命令
(3)选择需要添加主键的列,右击“设置主键”命令
(5)选择“文件”中的“保存”命令
3.2在创建单个表的同时创建主键约束
USE 学生选课
GO
CREATE TABLE course(
cno char(6) not null primary key,/*设置主键*/
cname char(20) not null,
Credit tinyint
)
四.外键约束
两个表中如果有共同列,则可利用外关键字与主关键字将两个表关联起来。
4.1使用SQL Server Management Studio创建外键约束
(1)启动SQL Server Management Studio
(2)在“对象资源管理器”窗格中,展开数据库对于的表选项,右击,选择“设计”命令
(3)选择需要添加外键的列,右击“关系”命令
(4)单击“表和列规范”右端按钮
(5)选择主键和外键
(5)选择“文件”中的“保存”命令
4.2使用Transact-SQL语句定义外键
USE 学生选课
GO
CREATE TABLE SC(
Sno char(4) not null foreign key references Student(Sno),/*设置外键约束*/
Cno char(6) not null foreign key references course(Cno)
)
五.唯一约束
唯一约束用于指定非主键的一个列或多个列的组合值具有唯一性,以防止在列中输入重复的值。
唯一约束与主键约束的区别:唯一约束的指定列可以为NULL,但是主键约束所在列不能为NULL,一个表可以包含多个唯一约束,但是只能有一个主键约束。
USE 学生选课
GO
ALTER TABLE Student
add constraint UN_Sname unique(Sname) /*添加唯一约束*/
go
ALTER TABLE Student
drop constraint UN_Sname
GO
六.检查约束
检查约束实际上是检验字段输入内容的规则,表示一个字段的输入内容必须满足检查约束的条件,若不满足,则内容无法输入
6.1使用SQL Server Management Studio
(1)启动SQL Server Management Studio
(2)在“对象资源管理器”窗格中,展开数据库对于的表选项,右击,选择“设计”命令
(3)选择需要添加检查约束的列,右击“check约束”命令
(4)弹出的对话框中,点击“添加”按钮,然后在”表达式”列表框中输入逻辑表达式
6.2使用Transact-SQL语句
ALTER TABLE student
ADD CONSTRAINT CK_Sage CHECK(Sag>=18)/*年龄需要在十八岁以上*/
七.默认值约束
默认值约束用于确保数据完整性,它提供了一种为数据表中任何一列提供默认值的手段。默认值约束是指使用INSERT语句向数据表中插入数据时,如果没有为某一列指定数据,则将默认值随着新记录一起存储到数据表的该列中。
7.1使用SQL Server Management Studio创建默认值
(1)启动SQL Server Management Studio
(2)在“对象资源管理器”窗格中,展开数据库对于的表选项,右击,选择“设计”命令
(3)选择Ssex字段,在列属性中,将“默认值或绑定”选项设为男
7.2使用Transact-SQL语句创建默认值
ALTER TABLE Student
add constraint def_Ssex default '男' for Ssex
八.约束禁止和启用
一般来说,只有FOREINGN KEY和CHECK约束可被禁用。禁用的方法是在ALTER TABLE语句中使用NOCHECK并指定约束名,如果要禁用表的所有CHECK约束和FOREIGN KEY约束,则使用ALL,使用的方法是使用NOCHECK