- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*;*;*;数据类型;NUMBER[(p[, s])];TIMESTAMP[(n)] WITH TIME ZONE;BLOB;*;参数说明:
schema指示表所属的模式名(缺省:当前用户的帐号);
table_name指定要创建的表的名称。表名在当前模式中必须唯一,长度不能超过30字节,以字母开头,可以包含字母、数字下划线、美元符号和“#”;
column_name指定表中列的名称(字段名),可以定义多个列,多个列之间用逗号(,)间隔;
datatype列的数据类型,Oracle 11g中提供的数据类型如下:
DEFAULT指定当前列的默认值;
CONSTRAINT为约束命名。定义列级约束时,如果不使用该子句,Oracle系统会自动为约束命名。定义表级约束,必须使用该子句为约束命名;
constraint_def指定约束类型。如UNIQUE、NOT NULL等;
TABLESPACE指定存储的表空间;
;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;也可以对已创建的表添加CHECK约束。
ALTER TABLE table_name ADD [ CONSTRAINT constraint_name ] CHECK (CHECK_CONDITION);
???例5.15】为表person中的sex添加CHECK约束,只允许传递“男”或“女”
ALTER TABLE person ADD CHECK(sex IN(‘男’,’女’));
;*;*;【例5.17】创建图书信息表和图书类别表,并使用外键关联这两个表,如下:
CREATE TABLE type(
tid NUMBER(4) PRIMARY KEY,
tname VARCHAR2(10) NOT NULL
);
CREATE TABLE book(
bid NUMBER(4) PRIMARY KEY,
bname VARCHAR2(20) ,
tid NUMBER(4),
CONSTRAINT book_type FOREIGN KEY (tid) REFERENCES type (tid)
);
;2.指定级联操作类型
在添加FOREIGN KEY约束时,还可以指定级联操作的类型,主要用于确定当删除(ON DELETE)父表中的一条记录时,如何处理子表中的外键字段。有如下3种引用类型。
CASCADE:此关键字用于表示当删除主表中被引用列的数据时,级联删除子表中相应的数据行。
SET NULL:此关键字用于表示当删除主表中被引用列的数据时,将子表中相应引用列的值设置为NULL值。这种情况要求子表中的引用列支持NULL值。
NO ACTION:此关键字用于表示当删除主表中被引用列的数据时,如果子表的引用列中包含该值,则禁止该操作执行。默认为此选项。
【例5.18】在book表的外键中使用SET UNLL关键字
CREATE TABLE book(
bid NUMBER(4) PRIMARY KEY,
bname VARCHAR2(20) ,
tid NUMBER(4),
CONSTRAINT book_type FOREIGN KEY (tid) REFERENCES type (tid)
ON DELETE SET UNLL
);
;*;*;*;*;*;*;*;*;*;*;*;*;5.删除索引
通常在如下情况下需要删除某个索引:
该索引不需要再使用。
该索引很少被使用。索引的使用情况可以通过监视来查看。
该索引中包含较多的存储碎片,需要重建该索引。
删除索引主要分为如下两种情况。
(1) 删除基于约束条件的索引
索引在定义约束条件时由Oracle自动创建的,必须禁用或删除该约束本身。
(2) 删除使用CREATE INDEX语句创建的索引
如果索引是使用创建语句显示创建的,则可以使用DROP INDEX语句删除
DROP INDEX index_name;
;*;*;*;*;*;*;*;*;*;*;语法说明:
START WITH后面的数值为序列起始值;
INCREMENT BY后面的数值为每次递增数,若指定为负数则表示递减;
MINVALUE 后面的数值为序列最小值,若没有最小值则用NOMINVALUE来表示;
MAXVALUE后面的数值为序列最大值,若没有最大值则用NOMAXVALUE来表示;
CYCLE表示达到最大值或最小值是否循环,若用 NOCYCLE则表示不循环。
CACHE表示是否一次将若干个序列号放入高速缓冲区,因为序列的当前号码值是要保存在数据字典中的,指定高速缓冲区则可减少I/O操作,若不想指定高速缓存则用 NOCACHE 。
ORDER保证序列值唯一且有序, NOORDER只保证唯一,不保证有序。
文档评论(0)