实验指导书——大型数据库应用(2)

2019-05-24 17:42

在Oracle10g数据库中,默认表空间为USERS表空间。 设置数据库的默认表空间:

ALTER DATABASE DEFAULT TABLESPACE 例:将默认表空间设为ORCLTBS1

ALTER DATABASE DEFAULT TABLESPACE ORCLTBS1;

(3)删除表空间 语法:

DROP TABLESPACE tablespace_name

如果表空间非空,应带有子句INCLUDING CONTENTS

若要删除操作系统下的数据文件,应带有子句AND DATAFILES 删除参照完整性约束,应带有子句CASCADE CONSTRAINTS

【实验内容】

用sys/manager登录到orcl数据库实例,完成以下内容:

1. 为Users表空间添加一个数据文件,文件名为users03.dbf,大小为50M。 2. 修改上述数据文件为自动扩展方式,每次扩展5MB,文件最长100M。 3. 修改上述数据文件为自动扩展方式,每次扩展5MB,文件最长无限制。 4. 创建一个本地管理方式下自动分区管理的表空间USERTBS1,其对应的数据文件名称为

USERTBS1_1.DBF,大小为20M。

5. 为上述表空间USERTBS1添加一个数据文件USERTBS1_2.DBF,大小为20M。 6. 修改表空间USERTBS1的数据文件USERTBS1_2.DBF大小为50M。

7. 创建一个本地管理方式下的表空间USERTBS2,要求每个分区大小为512KB。

8. 为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo04a.log和

redo04b.log,大小分别为5M。

9. 为新建的重做日志文件组添加一个成员文件,名称为redo04clog。

实验二 模式对象的管理

【开发语言及实现平台或实验环境】

Oracle10g

【实验目的】

(1)学习基本数据库表的创建,表结构的修改与删除等命令; (2)学习索引的管理命令; (3)学习索引化表的管理命令 (4)学习分区表的管理命令

(5)学习簇、视图、序列、同义词等的管理命令

【实验原理】 1.基本表的管理 (1) 表的创建: Create命令:

CREATE TABLE table_name( column_name type(size), column_name type(size), …); 或

CREATE TABLE table_name [(column_name,…)] AS SELECT statement; 表名命名规则

所用的表名必须满足下面的条件: a) 名字必须以A-Z 或a-z的字母开始; b) 名字可以包括字母、数字和特殊字母(_)。字符$和#也是合法的,但是这种用法不提倡; c) 名字大小写是一样的;例如EMP、emp和eMp是表示同一个表; d) 名字最长不超过30个字符; e) 表名不能和其它的对象重名; f) 表名不能是SQL保留字。

字段类型:

表5 字段类型 数据类型 VARCHAR2(w) CHAR(w) NUMBER NUMBER(w) NUMBER(w,s) DATE LONG RAW 和LONG RAW 描述 变长字符长度为w。最长为2000个字符。 定长字符长度为w。默认为1个字符;最长为255个字符 38位有效数字的浮点数 W位精确度的整数,范围从1至38 W是精度,或总的数字书,范围从1至38。S是比例,或是小数点右边的数字位。比例的范围从-84至127 日期值,范围从公元前14712年1月到公元314712年12月 变长字符串,其最大长度为2G(或231-1个字节) 面向字节数据,可存储字符串、浮点数,二进制数据等

完整性约束:

Oracle允许用户为表和列定义完整性约束来增强一定的规则。 可分为:表约束和字段约束 约束类型如下: 1)NOT NULL约束

NOT NULL约束保证字段值不能为NULL。没有NOT NULL约束的字段,值可以为NULL。

2)UNIQUE约束

指定一个字段或者字段的集合为唯一键。在表中没有两行具有相同的值。如果唯一键是基于单条记录的,NULL是允许的。

表约束命令格式:

,[CONSTRAINT constraint_name] UNIQUE (Column, Column, …) 字段约束命令格式:

[CONSTRAINT constraint_name] UNIQUE 例如:

CREATE TABLE DEPT

(DEPTNO NUMBER, DNAME VARCHAR2(9), LOC VARCHAR2(10),CONSTRAINT UNQ_DEPT_LOC UNIQUE(DNAME,LOC)); UNQ_DEPT_LOC是一个表约束。 3)主键约束(Primary Key Constraint)

主键约束强制字段和字段集合的唯一性,并且用一个唯一索引来管理它。每个表中只能用一个主键,这样可以通过主键来标识表中的每条记录。NULL值不允许在主键字段出现。

表约束命令格式:

,[CONSTRAINT constraint_name] PRIMARY KEY (Column, Column, …) 字段约束命令格式:

[CONSTRAINT constraint_name] PRIMARY KEY 例如:用字段约束定义DEPTNO为主键 CREATE TABLE DEPT

(DEPTNO NUMBER(2) CONSTRAINT DEPT_PRIM PRIMARY KEY, …); 4)外键约束

外键提供表内或表间的完整性规则。外键必须依赖于一个primary或unique key。 表约束命令格式:

,[CONSTRAINT constraint_name] FOREIGN KEY (Column, Column, …) REFERENCE table (column, column, …)

字段约束命令格式:

[CONSTRAINT constraint_name] FOREIGN KEY table (column) 例如:

CREATE TABLE EMP

(…CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCE DEPT(DEPTNO)); 5)Check约束

CHECK约束定义了每条记录必须满足的条件

语法:

[CONSTRAINT constraint_name] CHECK (condition)

(2)修改表

ALTER TABLE命令可用来修改数据表的定义。 命令格式:

ALTER TABLE tablename

[ADD或MODIFY或DROP options ](column_spec [column_constraint]) [ENABLE clause 或DISABLE clause]

ADD关键字可以用来给已存在的数据表增加一个字段或约束。 如:给EMP增加一个字段

ALTER TABLE EMP ADD (SPOUSES_NAME CHAR(10)); MODIFY关键字可以用来修改已存在的数据表定义。 如:把EMP中ENAME长度改为25个字符

ALTER TABLE EMP MODIFY (ENAM CHAR(25));

(3)删除表

用DROP TABLE命令删除Oracle数据表的定义。 命令格式:

DROP TABLE table_name [CASCADE CONSTRAINT] 例如:

DROP TABLE EMP;

CASCADE CONSTRAINT选项说明了也把完整性约束一起删除。 注意:

? DROP TABLE也把数据表中的数据删除。

? 数据表的VIEWS和SYNOMNYMS保留下来,但它们变成了不合法的。 ? 任何悬而未决的事务将被提交。

? 只有数据表的生成者或DBA才有权删除它。

2.索引的管理 (1)创建索引 语法

CREATE [UNIQUE]|[BITMAP] INDEX index_name ON table_name([column_name[ASC|DESC],…]| [expression]) [REVERSE]

[parameter_list];

创建非惟一性索引

CREATE INDEX employee_ename ON employee(ename)TABLESPACE users STORAGE (INITIAL 20K NEXT 20k PCTINCREASE 75); 创建惟一性索引

CREATE UNIQUE INDEX deptartment_index ON department(dname); 创建位图索引

CREATE BITMAP INDEX student_sex ON student(sex); 创建反序索引

CREATE INDEX player_sage ON player(sage) REVERSE; 创建函数索引

CREATE INDEX idx ON employee(UPPER(ename));

(2)删除索引 语法

DROP INDEX index_name;

3.索引化表的管理

在CREATE TABLE语句中指定ORGANIZATION INDEX关键字。 CREATE TABLE new_student(

sno NUMBER PRIMARY KEY , sname CHAR(11), sage NUMBER, sex CHAR(2))

ORGANIZATION INDEX TABLESPACE USERS ;

可以通过子查询创建索引化表 CREATE TABLE new_emp(

empno PRIMARY KEY,ename) ORGANIZATION INDEX

AS SELECT empno,ename FROM emp; 4. 分区表的管理 创建分区表 (1)范围分区

范围分区是按照分区列值的范围来对表进行分区的。

通过PARTITION BY RANGE子句说明根据范围进行分区,其后括号中列出分区列。 每个分区以PARTITION关键字开头,其后是分区名。VALUES LESS THAN子句用于设置分区中分区列值的范围。

示例:

创建一个分区表,将学生信息根据其出生日期进行分区,将1980年1月1日前出生的学生信息保存在ORCLTBS1表空间中,将1980年1月1日到1990年1月1日出生的学生信息保存在ORCLTBS2表空间中,将其他学生信息保存在ORCLTBS3表空间中。 CREATE TABLE student_range(

sno NUMBER(6) PRIMARY KEY, sname VARCHAR2(10), sage int, birthday DATE )

PARTITION BY RANGE(birthday) ( PARTITION p1 VALUES LESS THAN

(TO_DATE('1980-1-1', 'YYYY-MM-DD'))


实验指导书——大型数据库应用(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年华罗庚金杯少年数学邀请赛香港赛区决赛初中一年级组试题答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: