SUBPARTITION BY HASH(sage)
(PARTITION p1 VALUES LESS THAN(TO_DATE('1980-1-1', 'YYYY-MM-DD')) (SUBPARTITION p1_sub1 TABLESPACE ORCLTBS1, SUBPARTITION p1_sub2 TABLESPACE ORCLTBS2), PARTITION p2 VALUES LESS THAN(TO_DATE(\ (SUBPARTITION p2_sub1 TABLESPACE ORCLTBS3, SUBPARTITION p2_sub2 TABLESPACE ORCLTBS4), PARTITION p3 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS5 );
30、将分区表student_range的p1分区和p2分区合并到p2分区中。 P189 ALTER TABLE student_range MERGE PARTITIONS p1,p2 INTO PARTITION p2; 31、例如,删除分区表student_list中的student_male分区。P189 ALTER TABLE student_list DROP PARTITION student_male;
32、例如,将分区表student_range的p2分区移动到ORCLTBS5表空间中。P189 ALTER TABLE student_range MOVE PARTITION p2 TABLESPACE ORCLTBS5; 33、将分区表student_range的p2分区重命名为second_part。P189 ALTER TABLE student_range RENAME PARTITION p2 TO second_part;
34、例如,将分区表student_range的second_part分区中的所有数据删除。P189 ALTER TABLE student_range TRUNCATE PARTITION second_part;
35、例如,在student_range分区表的sname列上创建本地分区索引。P190 CREATE INDEX student_range_local ON student_range(sname) LOCAL;
36、例如,为分区表student_list的sage列建立基于范围的全局分区索引。P190 CREATE INDEX student_range_global ON student_range(sage)
GLOBAL PARTITION BY RANGE(sage)
(PARTITION p1 VALUES LESS THAN (80) TABLESPACE ORCLTBS1,
PARTITION p2 VALUES LESS THAN (MAXVALUE) TABLESPACE ORCLTBS2 );
37、例如,为分区表student_list_index创建全局非分区索引。P190 CREATE INDEX student_list_index ON student_list(sname); 25、为簇student_class创建一个聚簇索引。P198 CREATE INDEX student_class_index ON CLUSTER student_class TABLESPACE USERS
STORAGE (INITIAL 10K NEXT 10K MINEXTENTS 2 MAXEXTENTS 10) PCTFREE 10;
26、例如,为簇student_class创建一个聚簇索引。 P199 CREATE INDEX student_class_index ON CLUSTER student_class TABLESPACE USERS
STORAGE (INITIAL 10K NEXT 10K MINEXTENTS 2 MAXEXTENTS 10) PCTFREE 10;
27、如果聚簇表中包含其他表外键参考的主键约束列或唯一性约束列,则需要使用CASCADE CONSTRAINTS子句删除约束,同时删除簇。P199
DROP CLUSTER student_class INCLUDING TABLES CASCADE CONSTRAINTS;
28、创建一个包含员工号、员工名、工资和部门号的员工基本信息视图. P200 CREATE OR REPLACE VIEW emp_base_info_view AS
SELECT empno,ename,sal,deptno FROM emp;
29、创建一个包含各个部门的部门号、部门平均工资和部门人数的视图. P200 CREATE VIEW emp_info_view(deptno,avgsal,empcount) AS
SELECT deptno,avg(sal),count(*) FROM emp GROUP BY deptno;
30、创建一个包含工资大于2000的员工信息的视图 。 P200 CREATE VIEW emp_sal_view AS
SELECT empno,ename,sal*12 salary FROM emp WHERE sal>2000 WITH CHECK OPTION;
31、创建一个视图,包含各个员工的员工号、员工名及其部门名称。 P201 CREATE VIEW emp_dept_view AS
SELECT empno,ename,dname
FROM emp,dept WHERE emp.deptno=dept.deptno;
31、查询各个部门的部门名、部门的最高工资和最低工资。 P201 SELECT dname,maxsal,minsal FROM dept,
(SELECT deptno,max(sal) maxsal,min(sal) minsal FROM emp GROUP BY deptno) deptsal WHERE dept.deptno=deptsal.deptno;
32、查询工资排序前四名的员工号及其工资。 P201 SELECT ROWNUM ,empno,sal
FROM (SELECT * FROM emp ORDER BY sal DESC) WHERE ROWNUM <= 4;
33、修改视图CREATE VIEW emp_dept_view,添加员工工资信息 P202 CREATE OR REPLACE VIEW emp_dept_view AS
SELECT empno,ename,sal,dname
FROM emp,dept WHERE emp.deptno=dept.deptno; 34、删除视图emp_dept_view P202 DROP VIEW emp_dept_view;
35、示例创建一个初始值为100,最大值为1000,步长为1的序列 P203 CREATE SEQUENCE stud_sequence INCREMENT BY 1 START WITH 100 MAXVALUE 1000;
36、示例利用序列stud_sequence 向表students中插入数据 P203
INSERT INTO students(sno,sname)
VALUES(stud_sequence.nextval,'JOAN'); SELECT stud_sequence.currval FROM dual;
37、例如,修改序列stud_sequence的设置。 P203 ALTER SEQUENCE stud_sequence INCREMENT BY 10
MAXVALUE 10000 CYCLE CACHE 20; 38、例如,删除序列stud_sequence。 P203 DROP SEQUENCE stud_sequence;
39、示例为SCOTT用户的emp表创建一个共有同义词 P204 CREATE PUBLIC SYNONYM scottemp FOR scott.emp; 40、利用同义词可以实现对数据库对象的操作 P204 UPDATE scottemp SET ename='SFD' WHERE empno=7884; 41、示例删除同义词 P204
DROP PUBLIC SYNONYM scottemp;
42、backup_database,建立一个到远程数据库的连接。P204 CREATE DATABASE LINK example_backup
CONNECT TO scott IDENTIFIED BY tiger USING 'backup_database' ;
43、可以利用数据库链接更新远程数据库上的emp表。例如,修改远程数据库中员工工资, P204
UPDATE emp@example_backup SET sal=sal+110;
复习题11
1.简答题
(1)说明数据库模式与用户之间的区别。
(2)数据库中有哪些类型的表,各有什么特征?(3)表的约束有哪几种,分别起什么作用? (4)说明索引的作用,以及Oracle数据库中索引的类型。
(5)说明索引化表的特点,以及如何设置索引化表的溢出功能。
(6)简述Oracle数据库中分区的概念,对表和索引进行分区管理有何优点?(7)说明分区表的特点及其应用。
(8)对表进行分区的方法有哪些?如何实现?
(9)说明簇、视图、序列、同义词和数据库链接的概念及作用。(10)说明数据库中使用索引的优点和缺点,索引是如何工作的?(11)说明数据库中临时表的种类,创建表的方法有哪些? 2.实训题
(1)按下列表结构利用SQL语句创建class, student两个表。 class 列名 CNO CNAME NUM
数据类型 NUMBER (2) VAR(』IARZ (20) NUMBER (3) 约束 主键 各注 班号 班名 人数 列名 SNO SNAME SAGE SEX 《'NO 数据类型 NUMBER (4) VARCHAR2(10) NUMBER CHAR (2) NUMBER (2) 约束 主键 唯一 各注 学号 姓名 年龄 性别 班级号
(2)为student表添加一个可以延迟的外键约束,其CNO列参照class表的CN(3)为student表的SAGE列添加一个检查约束,保证该列取值在0-100之间。(4)为st 为“M’,。
(5)在class表的CNAME列上创建一个唯一性索引。(6)利用
(7)创建一个索引化表,其表结构与student表相同。
(8)创建一个student range表(列、类型与student表的列、类型相同),按学生年龄分
为3个区,低于20岁的学生信息放入partl区,存储在EXAMPLE表空间中;20~30岁的学
生信息放在part2区,存放在ORCLTBSI表空间中:其他数据放在part3区,存放在ORCLTBS2
表空间中。
(9)创建一个student list表(列、类型与student表的列、类型相同),按学生性别分为
两个区。
(10)将一个保存学生信息的.xls文件转换为.txt文件,然后根据.txt文件中数据的结构创
建一个外部表,实现对.txt文件的读取操作。 (11)创建一个class number簇,聚簇字段名为CNO,类型为NUMBER(2) o然后利用该
簇,创建student和class两个聚簇表。
(12)创建一个起始值为10000的序列,步长为2,最大值为100000,不可循环。 (13)为SCOTT模式下的emp表创建一个公共同义词,名称为employee. (14)创建一个视图,包含员工号、员工名和该员工领导的员工号、员工名。 3.选择题
(1) Which command is used to drop a constraint?
A. ALTER TABLE MODIFY CONSTRAINT B. DROP CONSTRAINT
C. ALTER TABLE DROP CONSTRAINT D. ALTER CONSTRAINT DROP (2) Which component is not part of the ROWID?
A. TABLESPACE B. Data file number C. Object ID D. Block ID
(3) What is the difference between a unique constraint and a primary key constraint? A. A unique key constraint requires a unique index to enforce the constraint,whereas a
primary key constraint can enforce uniqueness using a unique key or nonunique index.
B. A primary key column can be NULL,but a unique key column cannot be NULL. C. A primary key constraint can use an existing index ,but a unique constraint always creates an index.
D. A unique constraint column can be NULL,but primary key columns cannot be NULL. (4) What is a Schema?
A. Physical Organization of Objects in the Database B. A Logical Organization of Objects in the Database C. A Scheme Of Indexing D. None of the above
(5) Choose two answers that are true When a table is created with the NOLOGGING option: A. Direct-path loads using the SQL*Loader utility are not recorded in the redo log file. B. Direct-load inserts are not recorded in the redo log file.
C. Inserts and updates to the table are not recorded in the redo log file.
D. Conventional-path loads using the SQL*Loader utility are not recorded in the redo log file.
(6) Bitmap indexes are best suited for columns with:
第12章 安全管理
例题
1、创建一个用户user3,口令为user3,默认表空间为USERS,在该表空间的配额为10 MB,初始状态为锁定。P212
CREATE USER user3 IDENTIFIED BY user3
DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK; 2、创建一个用户user4,口令为user4,默认表空间为USERS,在该表空间的配额为10 MB。口令设置为过期状态,即首次连接数据库时需要修改口令。概要文件为example_profile(假设该概要文件已经创建)。P212
CREATE USER user4 IDENTIFIED BY user4 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS PROFILE example_profile PASSWORD EXPIRE;
3、将用户user3的口令修改为newuser3,同时将该用户解锁。P213 ALTER USER user3
IDENTIFIED BY newuser3 ACCOUNT UNLOCK; 4、查看数据库所有用户名及其默认表空间。P213 SELECT SERNAME,DEFAULT_TABLESPACE FROM DBA_USERS;
5、查看数据库中各用户的登录时间、会话号。P214 SELECT