9.第九章
2017-01-02 15:44:33 0 举报
AI智能生成
第九章,夜幕降临,月光如水洒在安静的小镇上。街头巷尾,灯火阑珊,人们纷纷归家,享受着一天的宁静。在这个宁静的夜晚,一家小酒馆里,一群朋友围坐在一起,举杯畅饮,谈论着彼此的生活琐事。他们谈笑风生,欢声笑语回荡在整个酒馆。而在角落里,一位年轻的画家正专注地描绘着窗外的风景,试图捕捉到这个美好时刻的神韵。他的眼神充满了对生活的热爱和对未来的憧憬。这个夜晚,仿佛是一幅美丽的画卷,将温馨、欢乐和希望都融入了其中。
作者其他创作
大纲/内容
2.实体完整性
规则
主键值不能为空
主键值必须唯一
定义
PRIMARY KEY
检查
插入or更新时进行检查
检查主键值是否为空、是否唯一
方法
全表扫描
费时
建立主键索引
通常采用
违约处理
拒绝操作
3.参照完整性
规则
外键值或者为空,或者是被引用关系中元组的对应值
定义
Foreign Key <外键字段> References <目标表名>(<目标字段名>)
检查及违约性处理
参照关系
插入
受限插入
拒绝
递归插入
目标关系中插入,再在参照关系中插入
修改
先删除,再插入
修改外键值
拒绝
外键空值
外键是主键一部分,不允许为空
否则根据语义定义
目标关系
删除
级联删除
受限删除
置空值删除
修改主键值
拒绝/级联修改/设置为空值
4.用户定义的完整性
定义
属性上的约束条件
UNIQUE
NOT NULL
CHECK
元组上的约束条件
CHECK
完整性约束命名子句
CONSTRAINT <约束名> [primary key短语|foreign key短语|check短语|unique|not null]
修改
ALTER TABLE中
DROP CONSTRAINT <条件名>
ADD CONSTRAINT ...
检查
插入或修改
违约处理
拒绝
6.SQL Server中的实现
约束
CHECK
PRIMARY KEY
自动创建唯一索引
FOREIGN KEY
外键不会自动创建索引
一个表最多31个外键约束
必须具有目标关系的SELECT权限或REFERENCES权限
DEFAULT
UNIQUE
强制创建唯一性索引(非聚簇索引)
NOT NULL
触发器
用途
级联更改
实现比约束更复杂的数据完整性
定义用户定制的错误信息
维护非标准数据
定义
一般格式
事件
INSERT
inserted表
DELETE
deleted表
truncate table 语句(删除表中所有行)不触发该触发器
UPDATE
deleted表
inserted表
监测对特定列的更新
IF UPDATE (<列名>)
类型
FOR/AFTER
后触发型
ROLLBACK回滚
INSTEAD OF
前触发型
每个表上每个事件只能定义一个
WITH CHECK OPTION视图上不能定义
1.概述
数据库的完整性
正确性
数据的合法性
有效性
数据是否属于定义的有效范围
相容性
表示同一事实的数据应相同
完整性约束条件
列级约束
数据类型
数据格式
数据值域
空值
元组约束
元组中各个属性的约束关系
关系约束
实体完整性约束
参照完整性约束
函数依赖约束
统计约束
实现方法
完整性子系统
完整性约束控制
提供定义完整性约束条件的机制
提供完整性检查的方法
违约处理
控制策略
规则
默认值
约束
触发器
存储过程
分类
声明式数据完整性
过程式数据完整性
5.触发器
定义触发器
一般格式
创建者:表的拥有者
触发事件:INSERT/UPDATE/DELETE
触发时间
BEFORE
先执行触发动作
再执行触发事件
AFTER
先执行触发事件
再执行触发动作
触发器类型
行级触发器
FOR EACH ROW
语句级触发器
FOR EACH STATEMENT
触发动作体
AS BEGIN ... END
使用触发器
执行顺序
BEFORE触发器
SQL语句
AFTER触发器
删除触发器
DROP TRIGGER <触发器名> ON <表名>
对比
0 条评论
下一页
为你推荐
查看更多