- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数据完整性与约束
知识点回顾
SQL的结构及运行原理
建表时常用的数据类型
表的设计及创建
掌握数据定义语言的使用
CREARE TABLE
ALTER TABLE
DROP TABLE
TRUNCATE TABLE
2
目标
掌握数据完整性概念
掌握实现数据完整性的方法
掌握oracle中常用约束
primary key
foreign key
not null
unique
check
default
3
数据完整性 2-1
数据完整性
4
数据完整性 2-2
数据存放在表中
“数据完整性的问题大多是由于设计引起的”
创建表的时候,就应当保证以后数据输入是正确的
——错误的数据、不符合要求的数据不允许输入
创建表:保证数据的完整性 = 实施完整性约束
5
完整性包括…2-1
输入的类型是否正确?
——年龄必须是数字
输入的格式是否正确?
——身份证号码必须是18位
是否在允许的范围内?
——性别只能是”男”或者”女”
是否存在重复输入?
——学员信息输入了两次
是否符合其他特定要求?
——信誉值大于5的用户才能够加入会员列表
……
6
完整性包括…2-2
7
实体完整性
×
约束方法:唯一约束、主键约束
8
域完整性
×
约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束
9
引用完整性
科目
学号
分数
…
数学
0010012
88
数学
0010013
74
语文
0010012
67
语文
0010013
81
数学
0010016
98
×
约束方法:外键约束
10
自定义完整性
帐号
姓名
信用
….
00192
孙悟空
7
00288
猪悟能
6
12333
段誉
8
90111
虚竹
40
93000
岳不群
-10
约束方法:规则、存储过程、触发器
11
创建约束
约束是用来强制业务规则、惯例和策略并确保数据准确性和完整性的规则,约束能够在数据违反了某些规则时禁止将其添加到表中
约束
说明
PRIMARY KEY
确定哪些列唯一的标识了各个记录。主键不能是NULL,并且根据值,必须是唯一的
FOREIGN KEY
在一种一对多的关系中,将约束添加到多个表。约束确保了如果将一个值输入一个指定的列,那么它必须已经存在于“一”表中,或者还没有添加到这个列
UNIQUE
确保存储在一个指定列中的所有数据都是唯一的,它与主键约束的不同之处它允许NULL值
CHECK
确保在向表中添加数据值前满足一个指定的条件,一个订单的发货日期不能早于订购日期
NOT NULL
确保一个指定的列不能包含一个NULL值。只能使用创建表的列一级方法来创建 NOT NULL约束
12
约束缩写
约束
缩写
PRIMARY KEY
_pk
FOREIGN KEY
_fk
UNIQUE
_uk
CHECK
_ck
NOT NULL
_nn
13
主键约束
可以在列一级上创建任何类型的约束
示例
columnname [CONSTRAINT constraintname] constraintype
Create Table Orders
(Order NUMBER(4) PRIMARY KEY,
Customer NUMBER(4),
OrderDate DATE,
ShipDate DATE,
ShipStreet VARCHAR2(18),
ShipCity VARCHAR2(15),
ShipState VARCHAR2(2),
ShipZip VARCHAR2(5));
14
在表一级上创建约束
在表一级上创建约束是,约束定义与列定义是分开的,如果在创建表的同时创建约束,那么将在定义了所有列之后列出它
[CONSTRAINT constraintname] constraintype
(colunmnname,…)
15
使用PRIMARY KEY约束
向一个现有表添加PRIMARY KEY约束的ALTER TABLE命令
示例:向promotion表中添加一个主键约束
ALTER TABLE tablename
ADD [CONSTRAINT constraintname] PRIMARY KEY (columnname);
ALTER TABLE promotion
ADD CONSTRAINT promotion_gift_pk PRIMARY KEY(gift);
16
使用PRIMARY KEY约束
注意:对于每一个表,只能创建一个PRIMARY KEY约束,如果主键中包含多个列,也就是复合主键,则只能在表一级上创建
例如:orderitems表唯一确定一个订单是order#和item#
CREATE TABLE ORDERITEMS
(ORDER# NUMBER(4) NOT NULL,
ITEM
文档评论(0)