Oracle强化试题 -答案 下载本文

山东财经大学 2013 -- 2014学年第 二 学期期末试题 Oracle数据库及其应用(06301054)试卷 (B)

一、

选择题(每小题2 分,共36 分)

1、C 2、B 3、D 4、A 5、B 6、A 7 、C 8 、C 9 、B 10、A 11、C 12、D 13 、C 14、A 15、 C 16 、D 17 、B 18、C 二、

判断题(正确的打∨,错误的打× 本题共 5 小题,满分 10 分)

1. (×) 2. (∨) 3. (×) 4. (∨)。 5. (∨) 三、

填空题(每空1 分,共 10 分)

1. DML、TCL、DCL。

2. Last_day(sysdate)、length 3. to_date('20140624','YYYY/MM/DD') 4. 12351235、CDEFG。 5. DESC、DISTINCT或UNIQUE 四、

简答题(共13 分)

1. 外连接有哪三种?简述三种外连接的用法有什么不同。(5 分)

1)、左外连接(LEFT [OUTER] JOIN)首先,执行一次INNER JOIN;然后,如果左边表里有一行对任何 右边表的行都不满足联接条件,那么返回一个联接行,该行的 左边表里的字段为空(null)。

2)、右外连接(RIGHT [OUTER] JOIN)首先,执行一次INNER JOIN;然后,如果右边表里有一行对任何左边表的行都不满足联接条件,那么返回一个联接行,该行的右边表里的字段为空(null)。

完整外连接(FULL [OUTER] JOIN),首先,执行一次INNER JOIN;然后,如果左边表里有一行对任何右边表里的行都不满足联接条件,那么返回一个联接行,该行的 右边表里的字段为空(null);再然后,如果右边表里有一行对任何 左边表里的行都不满足联接条件,那么

第 1 页 共 4 页

返回一个联接行,该行的左边表的字段为空(null)。 2. 简述 oracle 中常用约束,并说明作用。 (5 分)

非空(NOT NULL)约束:顾名思义,所约束的列不能为NULL值。否则就会报错 唯一(UNIQUE)约束:在表中每一行中所定义的这列或这些列的值都不能相同。必须保证唯一性。否则就会违法约束条件。

主键(PRIMARY KEY)约束:唯一的标识表中的每一行,不能重复,不能为空。 外键(FOREIGN KEY)约束:用来维护从表(Child Table)和主表(Parent Table)之间的引用完整性.

条件(CHECK)约束:表中每行都要满足该约束条件。条件约束既可以在表一级定义也可以在列一级定义。在一列上可以定义任意多个条件约束。 3. 简述oracle数据库中,CLOB、BLOB、BFILE的区别?。(3 分) 1) CLOB 即 Character LOB(字符 LOB),它能够存储大量字符数据

2) BCLOB 即 Character LOB(字符 LOB),它能够存储大量字符数据, Binary LOB(二

进制 LOB),可以存储较大的二进制对象,如图形、视频剪辑和声音文件

3) BFILE 即 Binary File(二进制文件),它用于将二进制数据存储在数据库外部的操作

系统文件中 五、

程序题(每小题4 分,共32 分)略

CREATE TABLE students (

sno CHAR (10) PRIMARY KEY, sname CHAR (8) NOT NULL,

ssex CHAR (1) NOT NULL CHECK (ssex = 'F' OR ssex = 'M'), sage INT NULL,

sdept CHAR (20 ) DEFAULT 'Computer' );

CREATE TABLE courses (

cno CHAR (6) PRIMARY KEY, cname CHAR (20) NOT NULL, precno CHAR (6) ,

第 2 页 共 4 页

credits INT );

CREATE TABLE enrollment (

sno CHAR(10) NOT NULL, cno CHAR(6) NOT NULL, grade INT,

CONSTRAINT EPK PRIMARY KEY (sno, cno),

CONSTRAINT ESlink FOREIGN KEY (sno) REFERENCES students (sno), CONSTRAINT EClink FOREIGN KEY (cno) REFERENCES courses (cno) );

1. 查询全体学生的学号、姓名、性别、年龄、所在系。 select sno,sname ,ssex,sage ,sdept from students 或

select * from students

2. 显示所有选课学生的学号,并去掉重复行。

select distinct Sno from enrollment where Cno in('c1','c2','c3'); 或

select UNIQUE Sno from enrollment where Cno in('c1','c2','c3'); 或

select UNIQUE Sno from enrollment 或

select distinct Sno from enrollment

3. 查询学生选课成绩在80~90 分之间的学生学号、课程号、成绩。

select Sno,Cno,Grade from enrollment where Grade>=80 and Grade <=90; 4. 查询选修了所有课的学生名。

select sname from student where not exists (select *

第 3 页 共 4 页