1 / 22
文档名称:

10.约束.pptx

格式:pptx   大小:280KB   页数:22页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

10.约束.pptx

上传人:ranfand 2018/2/4 文件大小:280 KB

下载得到文件列表

10.约束.pptx

相关文档

文档介绍

文档介绍:约束
Oracle SQL和PL/SQL编程
目标
解释表中约束的用途
区分PRIMARY KEY,FOREIGN KEY,UNIQUE,CHECK,和NOT NULL约束并理解各个约束的适当用法
区分在列级别上创建表和表级别上创建表
为单个列和复合主键创建PRIMARY KEY约束
创建FORENGIN KEY约束
创建UNIQUE约束
创建CHECK约束
使用ALTER TABLE…MODIFY命令创建NOT NULL 约束
在创建表的过程中包括约束
使用DISABLE和ENABLE命令
使用DROP命令
创建约束
约束是用来强制业务规则、惯例和策略并确保数据准确性和完整性的规则,约束能够在数据违反了某些规则时禁止将其添加到表中
约束
说明
PRIMARY KEY
确定哪些列唯一的标识了各个记录。主键不能是NULL,并且根据值,必须是唯一的
FOREIGN KEY
在一种一对多的关系中,将约束添加到多个表。约束确保了如果将一个值输入一个指定的列,那么它必须已经存在于“一”表中,或者还没有添加到这个列
UNIQUE
确保存储在一个指定列中的所有数据都是唯一的,它与主键约束的不同之处它允许NULL值
CHECK
确保在向表中添加数据值前满足一个指定的条件,一个订单的发货日期不能早于订购日期
NOT NULL
确保一个指定的列不能包含一个NULL值。只能使用创建表的列一级方法来创建 NOT NULL约束
约束缩写
约束
缩写
PRIMARY KEY
_pk
FOREIGN KEY
_fk
UNIQUE
_uk
CHECK
_ck
NOT NULL
_nn
在列一级上创建约束
可以在列一级上创建任何类型的约束
示例
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));
在表一级上创建约束
在表一级上创建约束是,约束定义与列定义是分开的,如果在创建表的同时创建约束,那么将在定义了所有列之后列出它
[CONSTRAINT constraintname] constraintype
(colunmnname,…)
使用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);
使用PRIMARY KEY约束
注意:对于每一个表,只能创建一个PRIMARY KEY约束,如果主键中包含多个列,也就是复合主键,则只能在表一级上创建
例如:orderitems表唯一确定一个订单是order#和item#
CREATE TABLE ORDERITEMS
(ORDER# NUMBER(4) NOT NULL,
ITEM# NUMBER(2) NOT NULL,
ISBN VARCHAR2(10),
QUANTITY NUMBER(3)
);
ALTER TABLE orderitems
ADD CONSTRAINT orderitens_pk PRIMARY KEY(order#, item#);
使用PRIMARY KEY约束
创建表时创建复合约束
CREATE TABLE ORDERITEMS
(ORDER# NUMBER(4) NOT NULL,
ITEM# NUMBER(2) NOT NULL,
ISBN VARCHAR2(10),
QUANTITY NUMBER(3),
constraint pk_orderitems PRIMARY KEY (order#, item#));
使用PRIMARY KEY约束
通过user_constraints视图查看已经创建或拥有了的约束
SELECT constraint_name
FROM user_constraints;
SYS_C 开头的是由系统命名的约束