教材例题 - 习题(6)

2025-09-13

(6)以强制方式启动数据库。

(7)利用OEM进行数据库的关闭与启动操作。 3.选择题

(1) The Database must be in this mode for the instance to be started: A. MOUNT B. OPEN C. NOMOUNT D. None

(2) When Oracle startups up, what happens if a datafile or redo log file not available or corrupted

due to OS Problems?

A. Oracle returns a warning message and opens the database.

B. Oracle returns a warning message and does not open the database. C. Oracle returns a warning message and starts the database recovery. D. Oracle ignores those files and functions normally.

(3) The RESTRICTED SESSION system privilege should be given to

A. Users, who need extra security while transfering the data between client and the server through SQL*NET or NET8.

B. DBA, who perform structural maintenance exports and imports the data.

第11章 模式对象

例题

1、模式的选择与切换 P159 (1)进入同名模式(默认) SQL>CONNECT SCOTT/TRIGER SQL>SHOW USER (2)进入SYS模式

SQL>CONNECT /AS SYSDBA SQL>SHOW USER

(3)进入PUBLIC模式

SQL>CONNECT SYS/TRIGER AS SYSOPEN (用户 sys,口令 tiger) SQL>SHOW USER 2、创建员工表 P160

CREATE TABLE employee(

empno NUMBER(5) PRIMARY KEY, ename VARCHAR2(15),

deptno NUMBER(3) NOT NULL CONSTRAINT fk_emp REFERENCES dept(deptno) )

TABLESPACE USERS

PCTFREE 10 PCTUSED 40

STORAGE(INITIAL 50K NEXT 50K MAXEXTENTS 10 PCTINCREASE 25); 3、创建临时表 P160

事务级别的临时表是在事务提交时系统自动删除表中所有记录。 CREATE GLOBAL TEMPORARY TABLE tran_temp( ID NUMBER(2) PRIMARY KEY, name VARCHAR2(20) )

ON COMMIT DELETE ROWS;

会话级别的临时表是在会话终止时系统自动删除表中所有记录 。 CREATE GLOBAL TEMPORARY TABLE sess_temp( ID NUMBER(2) PRIMARY KEY, name VARCHAR2(20) )

ON COMMIT PRESERVE ROWS;

4、创建一个标准表,保存工资高于3000的员工的员工号、员工名和部门号。 P163 CREATE TABLE

emp_select(emp_no,emp_name,dept_no) AS

SELECT empno,ename,deptno FROM employee WHERE sal>3000;

5、创建一个会话级临时表,保存部门号、部门人数和部门的平均工资。P163 CREATE GLOBAL TEMPORARY TABLE ept_temp ON COMMIT PRESERVE ROWS AS

SELECT deptno,count(*) num,avg(sal) avgsal FROM emp GROUP BY deptno;

6、创建一个student表。 P165 CREATE TABLE student(

sno NUMBER(6) CONSTRAINT S_PK PRIMARY KEY, sname VARCHAR2(10) NOT NULL, sex CHAR(2) CONSTRAINT S_CK1 CHECK(sex in('M', 'F')), sage NUMBER(6,2),

CONSTRAINT S_CK2 CHECK(sage between 18 and 60));

7、创建一个course表,同时为主键约束列上的唯一性索引设置存储位置和存储参数,语句为 P165

CREATE TABLE course(

cno NUMBER(6) PRIMARY KEY,

cname CHAR(20) UNIQUE USING INDEX TABLESPACE indx STORAGE( INITIAL 64K NEXT 64K) );

8、创建一个SC表,语句为 P165 CREATE TABLE SC(

sno NUMBER(6) REFERENCES student(sno), cno NUMBER(6) REFERENCES course(cno),

grade NUMBER(5,2),

CONSTRAINT SC_PK PRIMARY KEY(sno, cno) );

8、添加和删除约束 创建一个player表

CREATE TABLE player( ID NUMBER(6), sno NUMBER(6), sname VARCHAR2(10), sage NUMBER(6,2), resume VARCHAR2(1000) );

添加主键约束

ALTER TABLE player ADD CONSTRAINT P_PK PRIMARY KEY(ID); 添加惟一性约束

ALTER TABLE player ADD CONSTRAINT P_UK UNIQUE(sname); 添加检查约束

ALTER TABLE player ADD CONSTRAINT P_CK CHECK(sage BETWEEN 20 AND 30); 添加外键约束

ALTER TABLE player

ADD CONSTRAINT P_FK FOREIGN KEY(sno)REFERENCES student(sno) ON DELETE CASCADE;

添加空/非空约束

为表列添加空/非空约束时必须使用MODIFY子句代替ADD子句 ALTER TABLE player MODIFY resume NOT NULL; ALTER TABLE player MODIFY resume NULL; 9、删除约束 P166

使用ALTER TABLE?DROP语句删除已经定义的约束。

可以通过直接指定约束的名称来删除约束,或指定约束的内容来删除约束。 删除指定内容的约束

ALTER TABLE player DROP UNIQUE(sname); 删除指定名称的约束

ALTER TABLE player DROP CONSTRAINT P_CK; 删除主键约束、唯一性约束的同时将删除唯一性索引,如果要在删除约束时保留唯一性索引,则必须在ALTER TABLE?DORP 语句中指定KEEP INDEX 子句。 ALTER TABLE player DROP CONSTRAINT P_UK KEEP INDEX;

如果要在删除约束的同时,删除引用该约束的其他约束,则需要在ALTER TABLE?DORP语句中指定CASCADE关键字。

ALTER TABLE player DROP CONSTRAINT P_PK CASCADE; 10、设置约束状态 P167 (1)创建表时禁用约束

CREATE TABLE S (SNO CHAR(11) PRIMARY KEY DISALBE,?); 利用ALTER TABLE?DISABLE禁用约束

ALTER TABLE STUDENT DISABLE CONSTRAINT S_CK1;

ALTER TABLE STUDENT DISABLE UNIQUE (sname);

禁用主键约束、惟一性约束时,会删除其对应的惟一性索引,而在重新激活时,Oracle为它们重建惟一性索引。若在禁用约束时,保留对应的惟一性索引,可使用ALTER TABLE?DISABLE?KEEP INDEX语句。

ALTER TABLE STUDENT DISABLE UNIQUE (sname) KEEP INDEX; ALTER TABLE STUDENT DISABLE PRIMARY KEY KEEP INDEX;

若当前约束(主键约束、惟一性约束)列被引用,则需要使用ALTER TABLE?DISABLE?CASCADE语句同时禁用引用该约束的约束。

ALTER TABLE STUDENT DISABLE PRIMARY KEY KEEP INDEX CASCADE; 激活约束

创建或添加约束时,默认为激活状态。

利用ALTER TABLE?ENABLE?语句激活约束

ALTER TABLE STUDENT ENABLE UNIQUE (sname);

禁用主键约束、惟一性约束时,会删除其对应的惟一性索引,而在重新激活时,Oracle为它们重建惟一性索引,可以为索引设置存储位置和存储参数(索引与表尽量分开存储)。 ALTER TABLE STUDENT ENABLE PRIMARY KEY

USING INDEX TABLESPACE indx STORAGE(INITIAL 32K NEXT 16K); 通过ALTER TABLE ? MODIFY ? DISABLE| ENABLE 语句改变约束状态 ALTER TABLE STUDENT MODIFY CONSTRAINT S_CK2 DISABLE; 11、创建两个表,其约束都是可延迟的。P168 CREATE TABLE new_dept(

deptno NUMBER PRIMARY KEY DEFERRABLE INITIALLY IMMEDIATE, dname CHAR(11) UNIQUE );

CREATE TABLE new_emp(

empno NUMBER PRIMARY KEY, ename CHAR(11),

deptno NUMBER CONSTRAINT NE_FK REFERENCES new_dept(deptno) ON DELETE CASCADE DEFERRABLE );

12、将new_emp表的外键约束检查延迟。 P168

ALTER TABLE new_emp MODIFY CONSTRAINT NE_FK INITIALLY DEFERRED;

14、将new_emp表外键约束延迟到事务结束后进行检查,因此可以先向new_emp中插入数据,而后向new_dept中插入数据。 P168 INSERT INTO new_emp VALUES(1,'ZHANG',11); INSERT INTO new_dept VALUES(11,'COMPUTER'); COMMIT;

15、操作完后,应将new_emp外键约束检查恢复原来状态。 P169

ALTER TABLE new_emp MODIFY CONSTRAINT NE_FK INITIALLY IMMEDIATE; 注意

在修改约束的检查延迟性时,如果无法确定约束的名称或需要设置多个约束的延迟性,可以一次性将所有可延迟的约束延迟或恢复。 SET CONSTRAINT ALL DEFERRED;

SET CONSTRAINT ALL IMMEDIATE; 17、查看student表中的所有约束。 P169 SELECT CONSTRAINT_NAME,

CONSTRAINT_TYPE,DEFERRED,STATUS FROM USER_CONSTRAINTS

WHERE TABLE_NAME='STUDENT';

18、查看student表中各个约束所作用的列。 P169 SELECT CONSTRAINT_NAME, COLUMN_NAME

FROM USER_CONS_COLUMNS WHERE TABLE_NAME='STUDENT'; 18、列的添加、删除、修改 P170 (1)添加列:ALTER TABLE employee

ADD(phone VARCHAR2(11),hiredate DATE DEFAULT SYSDATE NOT NULL); (2)修改列的类型

ALTER TABLE employee MODIFY ename CHAR(20); ALTER TABLE employee MODIFY phone NUMBER; (3)修改列名

ALTER TABLE employee RENAME COLUMN ename TO employee_name; (4)删除列

ALTER TABLE sc DROP COLUMN sno CASCADE CONSTRAINTS; ALTER TABLE employee DROP (phone,hiredate); (5)将列标记为UNUSED,然后进行删除。

ALTER TABLE player SET UNUSED COLUMN sage; ALTER TABLE player SET UNUSED (sname,resume); ALTER TABLE player DROP UNUSED COLUMNS; 19、表的参数修改 P171

例如:修改表employee的存储参数 ALTER TABLE employee

PCTFREE 30 PCTUSED 60 STORAGE(NEXT 512K PCTINCREASE 11); 20、表的重命名 P172

例如,为employee 表重命名

SQL>RENAME EMPLOYEE TO NEW_EMPLOYEE;

Sql>ALTER TABLE NEW_EMPLOYEE RENAME TO EMPLOYEE; 21、删除表 P172

SQL>drop table tablename; 22、创建非惟一性索引 P177

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); 创建反序索引


教材例题 - 习题(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:OpenGL中的光照模型

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

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