SQL SERVER数据完整性及约束
SQL Server数据库应用开发技术 第六章
6.2 使用约束
6.2.1 空约束(NULL)、非空约束(NOT NULL)
1. 用SQL Server Management Studio实现 【例6.1】设置学生表中字段学号、姓名、性别、入学 时间不允许为空。 1)打开SQL Server Management Studio,在对象资源管理 器中展开教务管理系统,展开“表”结点。 2)选择“学生表”,单击右键,选择“修改”进入表设计 器进行表结构设计,如图6.1所示,分别将学号、姓名 、性别、入学时间字段后的允许空复选框去掉对勾。 3)修改完毕后单击工具栏上的“保存”图标或选择菜单“ 文件”下的“保存”项,关闭窗口即可。
第6章 数据完整性实施
6.1 数据完整性实施方法 6.2 使用约束
6.3 使用默认
6.4 使用规则
6.5 使用标识列
小结
6.1 数据完整性实施方法
有两种方式可以实现数据完整性,即声明数据完 整性和过程数据完整性。 1.声明数据完整性 使用声明数据完整性就是通过在对象定义中来实 现,即定义数据必须满足的条件作为对象定义的一部 分。它包括使用各种约束、默认和规则。 实现数据完整性的首选方法是使用声明完整性。 2.过程完整性 过程数据完整性是通过在脚本语言中定义来实现 的。当执行这些脚本时,就可以强制完整性的实现。 过程数据完整性的方式包括使用触发器和存储过程。 也可以在客户机或服务器上使用其他的编程语言和工 具实现。
【例6.7】创建学生表,对字段身份证号设置唯一约束。
返回目录
6.2 使用约束
6.2.3 唯一约束(UNIQUE)
由于一个表只能定义一个主键,而实际应用中表中 不止一列希望值是唯一的,例如身份证号一般不会做主 键,但它的值也应确保是唯一的,这时就可使用唯一约 束来确保唯一性了。与主键不同的是一个表可以定义多 个 UNIQUE 约束,且定义 UNIQUE 约束列允许空值。不 过由于唯一性,空值也只能出现一次。
数据完整性约束-主键约束
Sname
nvarchar(10) ,
Sex nchar(1) ,
Birth date,
ClassNo nvarchar(10) )
主键约束(PRIMARY KEY)
方法二:在创建表时设置主键,使用表级约束。
CREATE TABLE Student
(Sno
nvarchar(15) ,
Sname nvarchar(10) ,
实例1:设置Student学生表的主键。 Student表中包括Sno,Sname,Sex,Birth、ClassNo5个字段,
Sno学号是这张表的唯一标识,把它设置为主键。
主键约束(PRIMARY列级约束。
CREATE TABLE Student
(Sno nvarchar(15) PRIMARY KEY,
主键约束(PRIMARY KEY)
删除主键约束 1. 通过SQL语句删除student学生表中的主键约束PK_student。
Alter Table Student Drop Constraint PK_student 2. 使用图形化界面删除主键约束。
小结
数据完整性 约束(一)
数据完整性 约束
Sex nchar(1) ,
Birth
date,
ClassNo nvarchar(10),
constraint Pk_ Student Primary Key(Sno) )
表级约束语法格式为:constraint 主键约束名 Primary Key(主键名)
主键约束(PRIMARY KEY)
实例2:设置Score成绩表的主键。 分析:
非空约束(NOT NULL), 唯一约束(UNIQUE), 默认值约束(DEFAULT)。
第10章 SQL server 2008 表数据完整性
第10章SQL server 2008 表数据完整性表数据完整性指的是数据库中表数据的准确性和一致性。
数据完整性是衡量数据库中数据质量好坏的一种标志,是确保数据库中数据一致、正确以及符合企业规则的一种思想。
可以使无序的数据条理化,确保正确的数据被存放在正确的位置的一种手段。
10.1 表主键表主键(PRIMARY KEY)通过表数据中的一个列或多个列组合的数据来惟一标识表中的每一行数据。
换句话说,表主键就是用来约束数据表中不能存在相同的两行数据。
而且,位于主键约束下的数据应使用确定的数据,不能输入NULL来代替确定的数值。
在管理数据时,应确保每一个数据表都拥有自己惟一的主键,从而实现数据的实体完整性。
在SQL Server 2008系统中,表的主键约束有以下几个特征和作用:●主键约束通常不允许一个或多个列输入重复的值,来保证一个表中所有行的惟一性,使所有行都是可区分的。
●一个表上只能有一个主键,且组成主键的列的数据都不能为空值。
●当定义主键约束时,SQL Server在主键列上建立惟一索引,这个索引在主键被查询时可以提高查询的速度。
当主键由多个列组成时,某一列上的数据可以出现重复,但是这几个列的组合值必须是惟一的。
并且IMAGE和TEXT类型的列不能被定义为主键。
在SQL Server 2008系统中,定义表的主键可以在创建表的同时定义主键,也可以给已有的表添加主键。
同时如果表中指定的主键不需要时,也可以通过Transact-SQL语句将其主键删除。
1.在创建表时定义主键在创建表时,定义主键(PRIMARY KEY)约束的语法如下:在上面语法中,各元素的具体意义如下:●constraint_name 主键约束的名称,他也是数据库对象,所以约束的命名也必须遵守数据库对象命名的规则。
●CLUSTERED 表示在该列上建立聚集索引。
●NONCLUSTERED 表示在该列上建立非聚集索引。
例如,在【工资管理系统】数据库中,新建一个【学历表】,定义【学历编号】列为主键约束,具体语句如下所示:2.给已有表添加主键如果某个表已经存在,但没有设置主键(PRIMARY KEY)约束,那么就可以使用下列语句向表中添加PRIMARY KEY约束。
第5章sql数据库完整性约束
5.2.4 默认值(DEFAULT)约束
默认约束是指在用户未提供某些列的数据时,数据库 系统为用户提供的默认值。从而简化应用程序代码和提高 系统性能。 表的每一列都可包含一个DEFAULT定义。可以修改或 删除现有的DEFAULT定义,但必须首先删除已有的 DEFAULT定义,然后通过新定义重新创建。 1.利用Management Studio定义(删除)default约束 步骤1:右键要建立default约束的表选择“修改”。 步骤2:在弹出的窗口中对应字段的“默认值或绑定”处 输入默认值。 步骤3:点击保存即可。
PRIMARY KEY约束在表中定义一个主键,唯一的标 识表中的行。一个表只能有一个PRIMARY KEY约束。
当向表中的现有列添加PRIMARY KEY约束时,SQL Server将检查列中现有的数据以确保现有数据遵从主键的 规则,即无空值、无重复值。 每个表都应有一个主键。主键可以是一列或列组合。
CREATE TABLE kc_new (5-4)
(课程号 CHAR(4) NOT NULL CONSTRAINT pk_kch1 PRIMARY KEY, 课程名 CHAR(16) NOT NULL CONSTRAINT ix_kcm1 UNIQUE,
学分 SMALLINT,
数据库管理与开发项目教程(SQL Server 2019)第3版 项目八 实现数据完整性
/*定义列名、数据类型、
是否空值
[[CONSTRAINT check_name] CHECK (logical_expression)][,…n]) /*定义
CHECK约束
【例8-1】 在xs数据库中创建XSXX表,并定义CHECK约束。
10
项目8 实现数据完整性 ->任务1 实现域完整性
任务1-2 CHECK约束
项目8 实现数据完整性 ->任务1 实现域完整性
任务1-2 CHECK约束
CHECK约束实际上是字段输入内容的验证规则,表示一个字段的输入内容
必须满足CHECK约束的条件,如果不满足,数据就无法正常输入。
CHECK约束可以作为表定义的一部分在创建表时创建,也可以添加到现有表中。
表和列可以包含多个CHECK约束。允许修改或删除现有的CHECK约束。
【项目描述】
为xs数据库创建CHECK约束、规则、DEFAULT约束、默认值对象、索引、PRIMARY KEY约束、 UNIQUE约束、FOREIGN KEY约束实现数据完整性保护。
项目8 实现数据完整性
【项目分析】 项目4在数据库xs中建立了数据表,在向表中输入数据时,由于种种原因,有
时会输入无效或错误的信息。比如,对不同的学生输入了相同的学号,“性别” 字段的值输入了非法数据,相同的数据行被多次输入,学生成绩表中出现了学生 档案表中不存在的学号等。之所以会出现这些错误信息,是因为没有实现数据完 整性。为避免此类情况发生,本项目主要介绍如何通过实施数据完整性来解决上 述问题,以此保证数据输入的正确性、一致性和可靠性。
《SQL SERVER2019项目开发教程 》
项目8 实现数据完整性
项目8 实现数据完整性
131-server2000数据完整性
1) 在企业管理器中展开服务器组,然后展开一个服务器。 2) 展开“数据库”文件夹,然后展开目标数据库。 3)单击“默认”节点,然后在详细信息窗格中右击默认对 象名称并选择“属性”命令。 4) 在如图8所示的“默认属性”对话框中执行下列操作之 一:若要将该默认对象绑定到表字段上,单击“绑定列” 按钮;若要将该默认对象绑定到用户定义数据类型上(如 此设置以后,默认对象对所有使用该数据类型的字段都起 作用),单击“绑定UDT”按钮。
1)在企业管理器中展开服务器组,然后展开一个服务器。 2)展开“数据库”文件夹,然后展开规则所属的数据库。 3)在目标数据库下方单击“规则”,然后右击要绑定的 规则并选择“属性”命令。 4)在如图12所示的“规则属性”对话框中执行下列操 作之一:如果要将规则绑定到表中的一个字段上,可 以单击“绑定列”按钮:如果要将规则绑定到一个用 户定义数据类型上,可以单击“绑定UDT”按钮。 5)返回规则属性对话框以后单击“确定”按钮,完成绑 定操作。
2.2 绑定默认对象
在数据库中建立一个默认对象以后,还 必须把该默认对象绑定到字段或用户定 义数据类型上才能让他发挥作用。这个 任务可以使用企业管理器或系统存储过 程sp_bindefault来完成。
使用企业管理器绑定默认对象
如果要在企业管理器中绑定默认对象,执行下面的操 作步骤:
图11、 “规则属性”对话框
使用CREATE RULE语句建立规则
CREATE RULE语句用于在当前数据库 中建立一个规则,该语句的语法格式如 下:
CREATE RULE 规则名称 AS 条件表达式。
其中规则名称必须符合标识规则,可以 选择是否指定规则所有者的名称。条件 表达式是定义规则的条件。
实验三、四创建表及输入数据及完整性约束
实验三、四 创建表及输入数据及完整性约束本实验需要4学时。
一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二、实验内容1 创建表、确定表的主码和约束条件。
为主码建索引。
2 查看和修改表结构。
3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。
(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求.还要有表间关联的记录。
(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。
删除和修改操作。
(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。
四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
SQL Server 2000数据库中数据完整性解决方案
C E R HO Z AR E RI ON
S L S re 00 q ev r20 数据库中数据完整性解决方案
徐 也 可
摘要 : 保证数据库 中数据 的完整性 ,在数据库应用 中是十 数据完整性可 以分为 4种类型 :实体完整性 (ni nery 、 Ety I gi ) t t t 分 重要 的.它是衡量 数据库 中数据质 量的 重要标 志。在 S 域 完 整 性 (o i I ery 、 照 完 整 性 (ee nilnery 、 L Q D ma n gi ) 参 n t t Rfr t t i ) e a I gt Sre 2 0 e r 00中, 以通过 “ v 可 约束” 规则” 默认” 触发器” 用 户 定 义 的完 整 性 (sr df e nery 。 、“ 、“ 、“ 、 U e- ei d I gi ) n t t “ 存储 过程”等来达 到保证数据完整性 的 目的。 1实体 完 整性 。 实体 完 整 性也 称 为行 完 整 性 ,是规 定 表 中 . 关键词 :数据 库 ;S L Sre 2 0 ;数据完整性;约束 ; 的每一行数据在表 中保证惟一且非空值 ,即数据库 中所有的行 O evr 0 0
性别char2check性别男or性别女以上定义的全为列对象级数据完整性定义学号列为主键姓名列为非空值性别列通过检验checkcreatetable课程表课程名char20primarykeyconstraintkcxzidcheck课程性质考试or以上定义的约束constraintkcxzidcheck课程性质考试or课程性质考查为表对象级数据完整createtable学生成绩表学号char6课程名char20成绩intconstraintxhkcmidprimarykey学号课程constraintxhidforeignkey号references学生信息表学号constraintkcmidforeignkey名references课程表课程名以上三个约束全为表对象级约束约束constiaintxhkcmidprimarykey学号课程名保证学号课程名非空且惟一约束constraintxhidforelgnkey学号references学生信息表学号constraintkcmidforeignkey名references课程表课程名保证该表中的学号和课程名字段值只能取中已存在的学号值和中已存在的课举例2
《SQL Server》课程数据完整性约束的教学整体设计
3 . 2 参照 完整性
参照完整性通过外键约束实现. 例如 , 成绩表( 子表) 的“ 学号” 字段与学生表 ( 父表) 的“ 学号 ” 字段对 应, 其值引用学生表中“ 学号” 字段 的值 , 那么通过公共字段“ 学号” , 可以在成绩表和学生表之间建立关联 ; 同理 , 也可 以在 成绩表 和课 程表 之 间建 立关 联 . 可以使用 S Q L 语句 , 在创建数据表的同时定义外键约束. 如定义成绩表 : C r e a t e t a b l e 成绩表( 学号 C h a r ( 6 ) n o t n u l l f o r e i g n k e y( 学号) r e f e r e n c e s 学生表( 学号 ) , 课程号 C h a r ( 4 ) n o t n u l l f o r e i g n k e y( 课程号 ) r e f e r e n c e s 课程表 ( 课程号)p r i m a r y k e y ( 学号 , 课程号) , 成绩 d e c i m a l ( 6 , 1 ) ) 当然, 也可以使用 S Q L 语句 , 通过修改表结构来定义外键约束. a l t e r t a b l e成 绩表
字 段设 置惟 一约束 . 设计 如下 : C r e a t e t a b l e学生 表 ( 学号 C h a r ( 6 )n o t n u l l p r i ma r y k e y , 姓名 C h a r ( 8 )u n i q u e , 性别 C h a r ( 2 ) , 出生 日期 d a t e t i m e , 民族 V a r c h a r ( 2 0 ) )
对数据完整性约束 问题进行 了探讨和分析 , 同时 , 根据教务管理工作的特点 , 对教务管理系统的数据完整性 进行 了设计 , 并使之通过 S Q L S e r v e r 2 0 0 8 得到实现. 本文拟对这一教学实践做个总结.
SQLServer的数据库完整性和实现方法
2015
数据库的完整性:数据完整性就是指 存储在数据库中的数据正确无误并且相关 数据具有一致性。数据库中是否存在完整 的数据关系到数据库系统能否真实的反映 现实世界。它是衡量数据库中数据好坏的 一种标志,是确保正确的数据被存放在正 确的位置的一种手段。例如:学校的学生 学号必须是唯一的;性别只能为男或女; 学生所在的系必须是学校已开设的系等。
触发器的用途是维护行级数据的完整性,它不能返回结果集。与CHECK 约束相比,触发器能强制实现更加复杂的数据完整性,能执行操作或 级联操作,能实现多行数据间的完整性约束,能维护非正规化的数据。
you
放映结束 感谢各位观看!
谢 谢!
让我们共同进步
2.数据完整性的两种方式
(1)声明数据完整性 声明数据库完整性通过在对象定义、系统本身自动 强制来实现。声明数据完整性包括各种约束、默认 和规则。 (2)过程数据完整性 过程数据完整性通过使用脚本语言定义,系统在执 行这些语言时,强制完整性实现。过程数据完整性 包括触发器和存储过程等。
3.实现数完整性的具体方法
默认和规则与约束相比,功能较低但开支大。所以,如果默认和规则 可以使用约束方法表示,要尽可能采用约束数据完整性方法处理。
(4)触发器
触发器是一个特殊的存储过程。在创建触发器时通过CREATE TRIGGER 语句定义触发器对应的表、执行的事件和触发器的指令。当发生事件 后,会引发触发器执行,通过执行其指令,保证数据完整性。
1.数据库完整性的分类
(1)域完整性
域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据 集,并确定该列是否允许为空。域完整性要求向表中指定列输入的数 据必须具有正确的数据类型、格式以及有效的数据范围。实现域完整 性的方法主要有CHECK约束、外键约束、默认约束、非空定义、规则以 及在建表时设置的数据类型。
sql server约束表达式
sql server约束表达式
“SQL Server约束表达式”是指在使用SQL Server数据库时,用于定义和限制数据表中的数据的一系列约束条件。
这些约束条件用于确保数据的完整性和准确性,确保数据的正确性,以及限制不正确的数据插入或更新到数据库中。
SQL Server约束表达式主要包括以下几种类型:
1.主键约束(Primary Key Constraint):用于唯一标识表中的每条记录。
主键约束要求字段的值必须是唯一的,并且不能为空。
2.外键约束(Foreign Key Constraint):用于建立两个表之间的关系,确保
参照完整性。
外键约束要求子表中对应的外键值必须在父表中存在。
3.唯一约束(Unique Constraint):用于确保字段中的值唯一,但允许字段
值为NULL。
4.检查约束(Check Constraint):用于限制字段中的值范围,确保数据的
合法性。
5.默认约束(Default Constraint):用于为字段设置默认值,以确保在插入
新记录时如果没有指定该字段的值,则会自动赋予默认值。
6.非空约束(Not Null Constraint):用于确保字段的值不能为NULL。
这些约束表达式可以通过SQL语句在创建或修改表时进行定义,以维护数据库中数据的准确性和一致性。
总结来说,“SQL Server约束表达式”是指在SQL Server数据库中定义一系列约束条件,用于限制和确保数据表中的数据完整性和准确性的表达式。
常见的约束表达式包括主键约束、外键约束、唯一约束、检查约束、默认约束和非空约束等。
第5章 数据完整性
第5章数据完整性【学习目标】Microsoft SQL Server 2005系统提供了一系列保证数据完整性的方法和机制,例如约束、默认值和规则等。
其中约束技术是应用最为广泛的保证数据完整性的方法。
本章将主要介绍有关数据库完整性的技术与方法。
本章学习要点:◆数据完整性的基本概念与类型◆约束的概念与类型◆默认值的概念与类型◆规则的概念与类型【学习导航】数据完整性是指数据库系统中数据在逻辑上的一致性和准确性,是保证数据库中数据质量的一种重要手段,是数据库设计好坏的一项重要指标,同时也是现代数据库系统的一个重要特征。
我们都有在网上注册帐户的经历,在注册信息的时候,我们经常会遇到用户名已经存在、密码少于规定的长度、电子邮件必填、出生日期有效、身份证号码是否正确等一系列的限制,实际上这些限制就是保证数据完整性的一些手段,主要的目的就是为了保证用户所填写的内容正确、有效。
本章主要内容见图5-1所示的学习导航。
图5-1 本章学习导航5.1 概述当对数据库进行一系列的操作后,如添加、修改、删除后,数据可能会出现被破坏或相关数据不一致的情况,那么如何防止和解决这些问题的出现呢?这不仅仅需要管理人员和操纵人员的认真和负责,更需要建立一个保障机制,要么防止这些问题发生,要么发生这些问题时可以及时地发现。
数据完整性就是解决这些问题的一种机制。
数据完整性就是指存储在数据库中的数据的一致性和准确性。
在评价数据库的设计时,数据完整性是数据库设计好坏的一项重要指标。
根据数据完整性机制所作用的数据对象和范围不同,数据完整性可以分为实体完整性、域完整性、参照完整性和用户定义完整性4种。
1.实体完整性实体完整性,也可以称为行完整性。
实体是指表中的记录,一个实体就是表中的一条记录。
实体完整性要求在表中不能存在完全相同的记录,而且要求每条记录都要具有一个唯一的标识符,这种标识符一般称为主键值。
这样就可以保证数据所代表的任何事物都不存在重复、可以区分。
数据库教程(SQL Server)课后习题及答案
习题13、简述数据库系统的组成。
答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator ,DBA )和用户组成。
4、试述数据库系统的三级模式结构。
这种结构的优点是什么?答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。
数据库应用1……外模式A 外模式B 模式应用2应用3应用4应用5……模式外模式/模式映像模式/内模式映像数据库系统的这种结构具有以下优点:(1)保证数据独立性。
将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
(2)有利于数据共享,减少了数据冗余。
(3)有利于数据的安全性。
不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
(4)简化了用户接口。
按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。
5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。
答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
(2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。
(3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。
相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。
从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。
8、什么是数据模型?答:数据模型(Data Model )是一种抽象模型,是对现实世界数据特征的抽象。
约束、默认和规则
CREATE DEFAULT sex_mr
AS ’男‘
大型数据库——SQL Server 2000程序设计
4.3.2 绑定默认对象
使用企业管理器绑定默认对象 使用sp_bindefault语句绑定默认对象 语法格式:sp_bindefault [@defname=] ‘默认对象名’, [@objname=] ‘绑定的列名’
CHECK约束用于限制输入到一列或多列的值的范围:用户 想输入的数据值如果不满足CHECK约束中的条件(逻辑表 达式)将无法正常输入。 使用企业管理器定义、删除CHECK约束
使用T-SQL语句创建CHECK约束(在创建或修改表时);
语法格式: [CONSTRAINT 约束名] CHECK(逻辑表达式) 使用T-SQL语句删除CHECK约束 语法格式: DROP CONSTRAINT 约束名
语法格式:
[CONSTRAINT
约束名]
FOREIGN KEY (从表外键) REFERENCES 主表(主表主键) 使用T-SQL语句删除FOREIGN KEY约束 语法格式: DROP CONSTRAINT 约束名
大型数据库——SQL Server 2000程序设计
4.2.3 FOREIGN KEY约束
大型数据库——SQL Server 2000程序设计
4.1 数据完整性
在SQL SERVER2000里,我们可以采取许多方法保证各种 完整性: 实体完整性 通过建立唯一索引、PRIMARY KEY约束、
UNIQUE约束、IDENTITY属性等来强制主键
的唯一性。 域完整性 强制域有效性可以通过限制数据类型、 CHECK 约束和规则、FOREIGN KEY、 DEFAULT、NOTNULL定义实现。
数据库实验-数据完整性约束
广州XX学院数据库管理及应用实验报告专业班级计算机181 实验日期2020.4.18 姓名李XX 学号2018132 实验名称数据完整性约束指导教师王琢(报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等)一、实验目的(1)理解数据完整性约束概念。
(2)掌握SQL Server的数据完整性约束技术。
(3)了解SQL Server的违反数据完整性约束的处理措施。
二、实验设备及器材Windows平台、SQL Server 2012。
三、实验内容4.1在数据库EDUC中创建下列完整性约束。
1)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。
2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。
3)为教师上课信息表TC_info创建CHECK约束:学生成绩在0-100。
4)为教师上课信息表TC_info创建外键约束:tcid、tno、classno和cno。
4.2在数据库TSGL中创建下列完整性约束。
1)创建CHECK约束:readers表的RederType在0-9。
2)利用SSMS删除readers表的约束。
3)创建主键约束:为readers表的字段ReaderID添加主键。
4)创建多个字段的主键:为borrowinf表的ReaderID、BookID字段定义主键。
四、实验步骤4.11)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。
USE EDUCGOALTER TABLE Course_infoWITH NOCHECK ADD CONSTRAINT CK_lecture CHECK(lecture>=10 AND lecture <=80)GO2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。
SQL Server中数据完整性实现机制分析
ADD CO T AI NS R NTCK ra e C E K S x ’ O e dr H C ( e 男’ RS x ’ ’ s = e =女 )
_
( )默认 值约 束 五 不希 望 有 可 为空 的 列 , 因此 最好 是 为 列 定义 D F U T 定 EA L 义 。B r w表 的 B r w ok u 设为 默认值 约 束 。 or o o o B oN m
外 键(K 是用 于建 立和 加强 两 个表 数据之 间 的链 接 的一列 或 F) 多列 。当创 建或 修改 表 时可通 过 定义 F R IN K Y 约束 来创 O EG E 建外 键 。 在 br w表 中 B o I 与 B r we D都设 为外 键 。 B o I or o okD or r o I 如 okD
计算机光盘软件 与应用
工程技术
C m u e D S f w r n D l c t o s o p t rC o ta ea dA p ia in
D A D CONS R I T DE T A N F
_
2 1 年第 l 02 3期
br w D F U T 1) F R o o E A L (0 r O
[ 力颖 , 2陈 2 ] 侯春 萍 , 陆 虹 , 毛 吴顺 华 , 振梅 , 振 兴 . 种 无 源 徐 王 一
①货 品仓 储模 式设计 物 资到货 以后 ,存 储 中心 的物流 管理 信 息系 统通过 自动 识别
货物 所 附带 的 电子 标签 ,结 合事 先根 据货 物 实际情 况准 备好 的仓
② 包装 模式 的设 计
货 物 在进 行二 次分配 时 ,需要 对其 进行 必要 的加 工 与包 装 , 对 货 品进 行 统计 和分 流之 后 ,结合 其具 体形 态对 其加 工 ,制 作好 电子标 签 ,标签所 存储 的货 物数 据信 息其 产地 ,数 量 , 往地 等 , 发 收货 单 位 以物 联 网系 统 相 应 产 品信 息 与 货物 的存 储 信 息进 行 匹
SQLServer2008数据库—创建、建表、查询语句
SQLServer2008数据库—创建、建表、查询语句一、创建数据库1、利用对象资源管理器创建用户数据库:(1)选择“开始”—“程序”—MicrosoftSQLServer 2008—SQLServerManagementStudio命令,打开SQL ServerManagementStudio。
(2)使用“Windows身份验证”连接到SQLServer2008 数据库实例。
(3)展开SQLServer实例,右击“数据库”,然后人弹出的快捷菜单中选择“新建数据库存”命令,打开“新建数据库”对话框。
(4)在“新建数据库”对话框中,可以定义数据库的名称、数据库的所有者、是否使用全文索引、数据文件和日志文件的逻辑名称和路径、文件组、初始大小和增长方式等。
输入数据库名称student。
2、利用T-SQL语句创建用户数据库:在SQLServerManagementStudio中,单击标准工具栏的“新建查询”按钮,启动SQL编辑器窗口,在光标处输入T-SQL语句,单击“执行”按钮。
SQL编辑器就提交用户输入的T-SQL语句,然后发送到服务器执行,并返回执行结果。
创建数据库student的T-SQL语句如下:CreatedatabasestudentOnprimary(name=student_data,filename='E:\SQLServer2008SQLFULL_CHS\MicrosoftSQLstudent_data.mdf',size=3,maxsize=unlimited,filegrowth=1)Logon(name=student_log,filename='E:\SQLServer2008SQLFULL_CHS\MicrosoftSQLstudent_log.ldf',size=1,maxsize=20,filegrowth=10%)二、创建数据表1、利用表设计器创建数据表:o连接到SQL (1)启动SQLServerManagementStudi,Server2008数据库实例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL SERVER数据完整性及约束
【摘要】所谓数据完整性,实际上是衡量数据库中数据质量好坏的一种标志,是确保数据库中数据一致,正确以及符合企业规则的一种思想,本文以详细的文字来介绍了什么是数据完整性及约束,以及如何在数据库建设中应用和使用这些约束。
【关键词】SQL Server;约束;数据完整性;一致性
在数据库管理系统中,保证数据库中的数据完整性是非常重要的。
所谓数据完整性,就是指存储在数据库的表中数据的一致性和正确性。
约束定义关于列中允许值的规则,是强制完整性的标准机制,对输入数据的取值范围和格式的限制称为约束。
约束是用来保证数据完整性的。
在SQL Server中有6种常设约束:空置约束(NULL)、唯一性约束(unique constraint)、主键约束(primary key constraint)、外键约束(foreign key constraint)、检查约束(check constraint)、缺省约束(default constraint)。
一、SQL Server的数据完整性
存储在数据库中的所有数据值均属正确的状态。
如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。
强制数据完整性可确保数据库中的数据质量。
例如,如果有一“教学管理数据库”,学生表中学号一项输入了值为20110101的学生,那么该数据库不应允许其他学生使用同一学号值。
如果计划将选修表中成绩的值范围设定为0到100,则数据库不应接受121。
如果学生表有一列为班级编码,该列存储的班级编码为数据库中允许的有效班级编码。
二、数据完整性分类
在SQL Server中,根据数据完整性所作用的数据库对象和范围不同,可以将数据完整性分为实体完整性、域完整性、引用完整性、用户定义完整性四种。
1、实体完整性
实体完整性,简单来说,就是将表中的每一行看作一个实体。
实体完整性要求表的标示符列或主键的完整性(主键不能为空)。
可以通过建立唯一索引、PRIMARY KEY约束、UNIQUE约束来实施实体完整性。
2、域完整性
域完整性是指给定列的输入有效性。
要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。
强制域有效性的方法有:限制类型(通过数据类
型)、格式(通过CHECK约束和规则)或可能值的范围。
域完整性通过FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则来实现。
3、引用完整性
引用完整性又称参照完整性。
引用完整性维持被参照表和参照表之间的数据一致性,主要通过主键(PRIMARY KEY)约束和外键(FOREIGN KEY)约束来实现。
引用完整性确保数据在所有表中一致。
这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的修改。
在被参照表中,当其主键值被其他表所参照时,该行不能被删除也不允许改变。
在参照表中,不允许参照不存在的主键值。
4、用户定义完整性
用户定义完整性使用户能定义不属于其它任何完整性分类的特定设置。
所有的完整性类型都支持用户定义完整性。
三、SQL Server的约束
约束作为数据库定义的一部分在CREATE TABLE语句中声明,所以又称做声明完整性约束。
也可以在可视化操作界面,如sqlserver2005的ssms中操作设置。
约束独立于表结构,可以在不改变表结构情况下,通过ALTER TABLE语句来添加或者删除。
在删除一个表时,该表所带的所有约束定义也被随之删除。
1、空置约束
格式:null/not null。
空置约束,是否允许该字段的值为NULL。
当某一字段的值一定要输入才有意义的时候,则可以设置为NOT NULL。
例如主键列就不允许出现空值,否则就失去了唯一标识一条记录的作用。
2、唯一约束(UNIQUE约束)
格式:[CONSTRAINT ] UNIQUE。
UNIQUE约束用于指明基本表在某一列或多个列的组合上的取值必须唯一。
定义了UNIQUE约束的那些列称为唯一键,系统自动为唯一键建立唯一索引。
从而保证了唯一键的唯一性。
唯一键允许为空,但系统为保证其唯一性,最多只可以出现一个NULL值。
3、主键约束(PRIMARY KEY约束)
格式:[CONSTRAINT ] PRIMARY KEY。
PRIMARY KEY约束,PRIMARY KEY约束用于定义基本表的主键,起唯一标识作用,其值不能为NULL,也不能重复,以此来保证实体的完整性。
PRIMARY KEY与UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:
①在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束;
②对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。
4、外键约束(FOREIGN KEY约束)
格式:REFERENCES 主表名(主键名)。
FOREIGN KEY约束要用到两个表一个从表,一个主表,包含外部键的表称为从表,包含外部键所引用的主键或唯一键的表称主表。
系统保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。
以此保证两个表之间的连接,确保了实体的参照完整性。
5、检查约束(CHECK约束)
格式:CHECK (条件表达式)。
CHECK约束用来检查字段值所允许的范围,如一个字段只能输入整数,而且限定在0-100的整数,以此来保证域的完整性。
6、默认值约束
格式:DEFAULT 默认值。
当为一列的约束设的是默认值约束。
那么当用户在插入记录是没有明确地提供值时,系统便自动将默认值赋予给该列。
例:建立一个学生表,对性别字段进行默认约束。
CREATE TABLE 学生表
(学号CHAR(7),
性别CHAR(2)DEFAULT ‘男’,
……)
建立和使用约束的目的是保证数据的完整性,约束是SQL Server强制实行的应用规则,使用规则能够限制用户存放到表中数据的格式和值的范围,可确保数据库中的数据质量。