网站大量收购独家精品文档,联系QQ:2885784924

第6讲 完整性约束.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
An Introduction to Database Systems 第6讲 数据完整性 在SQL Server中有6种约束 主键约束 外键约束 惟一性约束 检查约束 默认约束 非空值约束 其中非空值约束已在第5章中做了详细介绍,本节介绍其他5种约束。 主键约束 表的一列或几列的组合的值在表中惟一地指定一行记录,这样的一列或多列称为表的主键(Primary Key,PK),通过它可强制表的实体完整性。 主键不允许为空值,且不同两行的键值不能相同。表中可以有不止一个键惟一标识行,每个键都称为侯选键,只可以选一个侯选键作为表的主键,其他侯选键称作备用键。 如果一个表的主键由单列组成,则该主键约束可以定义为该列的列约束。如果主键由两个以上的列组成,则该主键约束必须定义为表约束。 定义列级主键约束的语法格式如下: [CONSTRAINT constraint_name] PRIMARY KEY [CLUSTERED | NONCLUSTERED] 定义表级主键约束的语法格式如下: [CONSTRAINT constraint_name] PRIMARY KEY [CLUSTERED | NONCLUSTERED] { (column_name [, … n ] )} 例8-17 在Sales数据库中创建customer表,并声明主键约束。 CREATE TABLE Sales.dbo.customer ( customer_id bigint NOT NULL IDENTITY(0,1) PRIMARY KEY, customer_name varchar(50) NOT NULL, linkman_name char(8), address varchar(50), telephone char(12) NOT NULL ) 例8-18 创建一个产品信息表goods1,将产品编号goods_id列声明为主键。 CREATE TABLE goods1 ( goods_id char(6) NOT NULL, goods_name varchar(50) NOT NULL, classification_id char(6) NOT NULL, unit_price money NOT NULL, stock_quantity float NOT NULL, order_quantity float NULL CONSTRAINT pk_p_id PRIMARY KEY (goods_id) )ON [PRIMARY] CREATE TABLE 选修 (sno char(10) not null, cno char(8) not null, grade int, CONSTRAINT pkSC PRIMARY KEY(sno,cno)) 列约束只能基于该约束所在的列 而表约束可以包含多个列。 有多列组成的主键/外键、检查约束等,必须使用表约束来定义 PRIMARY KEY主键约束 1 创建表的同时施加主键约束: USE TempTest GO CREATE TABLE Employee ( cEmployeeCode char(4) CONSTRAINT pkEmployeeCode PRIMARY KEY, cEmployeeName char(25) NOT NULL, cDeptName char(25) NOT NULL ) 8.4.2 外键约束 外键约束定义了表与表之间的关系。通过将一个表中一列或多列添加到另一个表中,创建两个表之间的连接,这个列就成为第二个表的外键(Foreign Key,FK),即外键是用于建立和加强两个表数据之间的连接的一列或多列,通过它可以强制参照完整性。 级联操作 SQL Server提供了两种级联操作以保证数据完整性: (1) 级联删除确定当主键表中某行被删除时,外键表中所有相关行将被删除。 (2) 级联修改确定当主键表中某行的键值被修改时,外键表中所有相关行的该外键值也将被自动修改为新值。 外键约束与主键约束相同,也分为表约束与列约束。 定义表级外键约束的语法格式如下: [CONSTRAINT constraint_name] FOREIGN KEY (column_name [, … n ]) REFERENCES ref_table [(ref_column [, … n] )] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] ] [ NOT FOR REPLICATION ] 定义列级外键约束的语法

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档