7 实现数据完整性
更新时间:2023-05-26 20:51:02 阅读量: 实用文档 文档下载
- 7星彩推荐度:
- 相关推荐
SQL 学习复习资料(微软)
第7章 章 实现数据完整性
SQL 学习复习资料(微软)
SQL Server 2005数据库开发与实现 数据库开发与实现第1章:SQL Server 2005启航 章 启航 第2章:安装和配置 章 安装和配置SQL Server 2005 第3章:创建数据库和数据 章 库文件 第4章:创建数据类型和表 章 第5章:使用 章 使用Transact-SQL查 查 询数据库 第6章:创建和优化索引 章 第7章:实现数据完整性 章 第8章:实现视图 章 第9章:实现存储过程和函 章 数 第10章:使用 XML 章 第11章:灾难恢复 章 第12章:管理安全性 章 第13章:监视 SQL Server 章 第14章:维持高可用性 章 第15章:自动执行管理任务 章 第16章:使用 Service Broker 章 第17章:传输数据 章 第18章:复制功能简介 章
SQL 学习复习资料(微软)
第7章:实现数据完整性 章数据完整性概述 实现约束 实现触发器 实验 习题
SQL 学习复习资料(微软)
数据完整性的类型
7.1.1 数据完整性的类型
域(或列)完整性 或列)
实体(或行) 实体(或行)完整性
引用完整性 在表或者同一个表的列之间) (在表或者同一个表的列之间)
SQL 学习复习资料(微软)
实施数据完整性的选项
7.1.2 实施数据完整性的选项
机制 数据类型 规则 默认值 约束 触发器 XML 构架
描述定义可存储在列中的数据类型 定义可插入到列中的可接受的值 定义如果值没有指定的时候列的值 定义数据库引擎如何强制数据完整性 定义当表被修改的时候自动执行的代码 定义 XML 文档的命名空间、结构和可接受内容
SQL 学习复习资料(微软)
第7章:实现数据完整性 章数据完整性概述 实现约束 实现触发器 实验 习题
SQL 学习复习资料(微软)
约束
7.2.1 约束
完整性类 型
约束类型DEFAULT 指定列的默认值 指定列的允许值 指定必须存在值的列 指定是否允许为NULL 唯一标识每一行 防止非主键重复
描述
域
CHECK FOREIGN KEY NULL
实体
PRIMARY KEY UNIQUE FOREIGN KEY
引用CHECK
定义值与同一个表或另一个表的主键值匹配的一 列或多列组合 指定根据同一个表中其他列的值可在列中接受的 数据值
SQL 学习复习资料(微软)
创建约束
7.2.2 创建约束
CREATE TABLE语句创建约束 语句创建约束 ALTER TABLE语句修改现有表上的约束 语句修改现有表上的约束CREATE TABLE table_name ({ < column_definition > | < table_constraint > } [ ,...,n ]) < column_definition > ::= {column_name data_type } [{DEFAULT constant_expression | [ IDENTITY [( seed , increment )]]}] [ < column_constraint > [ n ] ] < column_constraint > ::=
SQL 学习复习资料(微软)
PRIMARY KEY 约束
7.2.3 PRIMARY KEY 约束
PRIMARY KEY 约束定义表中构成主键的一列或多 列 一个表只能有一个 PRIMARY KEY 约束 指定为 PRIMARY KEY 的列中的值必须是唯一的 包含在 PRIMARY KEY 约束中的列不能接受 NULL值 值CREATE TABLE [HumanResources].[Department]( [DepartmentID] [smallint] IDENTITY(1,1) NOT NULL, [Name] [dbo].[Name], … CONSTRAINT [PK_Department_DepartmentID] PRIMARY KE
Y CLUSTERED ([DepartmentID] ASC) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] )
SQL 学习复习资料(微软)
DEFAULT 约束
7.2.4 DEFAULT 约束
当没有提供值的时候, 当没有提供值的时候,DEFAULT 为用户定义一个默 认的列值。 认的列值。 每列只允许一个DEFAULT 约束 每列只允许一个 只适用于INSERT 约束 只适用于 允许系统提供的一些值CREATE TABLE [Production].[Location]( ... [Availability] [decimal](8, 2) NOT NULL CONSTRAINT [DF_Location_Availability] DEFAULT ((0.00)), [ModifiedDate] [datetime] NOT NULL CONSTRAINT [DF_Location_ModifiedDate] DEFAULT (getdate()) )
SQL 学习复习资料(微软)
CHECK 约束
7.2.5 CHECK 约束
CHECK 约束限制在 INSERT 和 UPDATE 语句期间用 户可输入特定列中的数据值 每列可以定义多个CHECK约束 每列可以定义多个 约束 在同一个表格中可以引用列 不能包含子查询ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] WITH CHECK ADD CONSTRAINT [CK_EmployeeDepartmentHistory_EndDate] CHECK (([EndDate]>=[StartDate] OR [EndDate] IS NULL))
SQL 学习复习资料(微软)
使用Transact-SQL语句 语句 使用 创建DEFAULT约束 创建 约束
7.2.6 使用 使用Transact-SQL语句 语句 创建DEFAULT约束 创建 约束
修改[HumanResources].[EmployeeDepartmentHistory]表 表 修改 向表中添加名为 CK_EmployeeDepartmentHistory_EndDate的CHECK约束 的 约束 确保EndDate列的值大于等于 列的值大于等于StartDate列的值,或者 列的值, 确保 列的值大于等于 列的值 EndDate为NULL 为
ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] WITH CHECK ADD CONSTRAINT [CK_EmployeeDepartmentHistory_EndDate] CHECK (([EndDate]>=[StartDate] OR [EndDate] IS NULL))
SQL 学习复习资料(微软)
UNIQUE约束 约束
7.2.7 UNIQUE约束 约束
UNIQUE约束确保列中的每个值都是唯一的 约束确保列中的每个值都是唯一的 在约束列中允许一个NULL值 值 在约束列中允许一个 可以包含一列或者多列
CREATE TABLE [HumanResources].[Employee]( [EmployeeID] [int] IDENTITY(1,1) NOT NULL, [NationalIDNumber] [nvarchar](15) NOT NULL UNIQUE NONCLUSTERED, … )
SQL 学习复习资料(微软)
FOREIGN KEY 约束
7.2.8 FOREIGN KEY 约束
FOREIGN KEY 约束确保同一个表或者不同表之间 的引用完整性 必须引用一个PRIMARY KEY或者 必须引用一个 或者UNIQUE约束 约束 或者 用户必须在应用表上具有REFERENCES权限 权限 用户必须在应用表上具有
ALTER TABLE [Sales].[SalesOrderHeader]
WITH CHECK
ADD CONSTRAINT [FK_SalesOrderHeader_Customer_CustomerID] FOREIGN KEY([CustomerID]) REFERENCES [Sales].[Customer] ([CustomerID])
SQL 学习复习资料(微软)
级联引用完整性
7.2.9 级联引用完整性
FOREIGN KEY 约束包含一个 CASCADE 选项 Cascade 选 项 NO ACTION (Default) CASCADE SET NULL SET DEFAULT
UPDATE 行为
DELETE 行为
引发错误;回滚操作 在引用表中更新外键 在引用表中删除行
在引用表中设置外键为NULL 在引用表中设置外键为DEFAULT值
SQL 学习复习资料(微软)
约束检查的注意事项
7.2.10 约束检查的注意事项
为约束指定有
意义的名称 无需删除以及重新创建表,即可创建、 无需删除以及重新创建表,即可创建、更改或删除 约束 在你的应用程序和事务中执行错误检查 禁用 CHECK 和 FOREIGN KEY 约束 约束: 当运行大型批处理作业时提高性能 当向表中添加新的约束的时候避免检查已经存 在的数据
SQL 学习复习资料(微软)
课堂练习: 课堂练习:创建约束
本次课堂练习的目标是能够使用 Transact-SQL创建约束。 创建约束。 创建约束
SQL 学习复习资料(微软)
第7章:实现数据完整性 章数据完整性概述 实现约束 实现触发器 实验 习题
SQL 学习复习资料(微软)
触发器
7.3.1 触发器
当执行INSERT、UPDATE或者 、 或者DELETE语句修改一张 当执行 或者 语句修改一张 表格的时候指定存储过程 两类触发器: 两类触发器 AFTER 触发器在执行 INSERT、UPDATE 或 DELETE 语句的操作之后执行 INSTEAD OF触发器代替INSERT、 UPDATE或 DELETE 语句执行 触发器和初始化语句属于一个事务的一部分
SQL 学习复习资料(微软)
INSERT 触发器的 工作方式
7.3.2 INSERT 触发器 的工作方式
1 2 3
执行INSERT语句 语句 执行 记录INSERT语句 语句 记录 执行AFTER INSERT触发器语句 执行 触发器语句
CREATE TRIGGER [insrtWorkOrder] ON [Production].[WorkOrder] AFTER INSERT AS BEGIN SET NOCOUNT ON; INSERT INTO [Production].[TransactionHistory]( [ProductID],[ReferenceOrderID],[TransactionType] ,[TransactionDate],[Quantity],[ActualCost]) SELECT inserted.[ProductID],inserted.[WorkOrderID] ,'W',GETDATE(),inserted.[OrderQty],0 FROM inserted; End
SQL 学习复习资料(微软)
DELETE 触发器的 工作方式
7.3.3 DELETE 触发器 的工作方式
1 2 3
执行DELETE语句 执行 语句 记录DELETE 语句 记录 执行AFTER DELETE 触发器语句 执行
CREATE TRIGGER [delCustomer] ON [Sales].[Customer] AFTER DELETE AS BEGIN SET NOCOUNT ON; EXEC master..xp_sendmail @recipients=N'SalesManagers@', @message = N'Customers have been deleted!!'; END;
正在阅读:
7 实现数据完整性05-26
谈如何科学对待马克思主义02-25
优秀-说课稿模板06-12
希沃电子白板学习心得体会(汇编)04-26
C语言第三章作业11-02
牛津小学英语5A全册教案 - 图文07-03
不严不实问题清单及整改措施02-08
汉字的传统文化解读笔记(一~八)10-27
高中化学必修一单元测试题及答案05-06
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 完整性
- 实现
- 数据
- 制药厂GMP认证汇报电视解说词
- 苏教版八年级数学(下)第八章分式复习讲义
- 如何进行项目的商业论证
- 泉州市政府采购中心关于泉州市海洋与渔业环境监测站气
- 交接班标准化作业指导书(2010年5月修改稿)
- 项目融资相关知识
- 四人制足球赛规则说明(修改)
- 中国云计算产业链及应用趋势调查研究
- 北大复试辅导讲义
- 公司明年工作计划
- 电器 汽车电子控制系统
- 会计建账——新手入门
- RDA1846S初始化设置
- 湖南省长沙县路口镇麻林中学八年级历史下册《第7课“文化大革命”的十年》教案 新人教版
- 商业银行房地产贷款风险管理指引
- 卫星宽带业务流程及资费
- 经纪人必学的独家委托签约宝典
- 2014年常州市教育局直属学校公开招聘教师的实施意见
- 低电压穿越技术实现
- 《《财政学》题库