ORACLE11g试题答案(陈冬亮) 下载本文

内容发布更新时间 : 2024/12/23 8:16:00星期一 下面是文章的全部内容请认真阅读。

库中的地位就犹如英语在世界上的地位一样,它是数据库系统的通用语言,,用户可以利用它几乎同样的语句在不同的数据库系统上执行同样的操作。比如“select * from 数据表名”代表要从某个数据表中取出全部数据,在Oracle、SQL Server、Foxpro等关系型数据库中都可以使用这条语句。SQL已经被ANSI(美国国家标准化组织)确定为数据库系统的工业标准。

关系型数据库的主要功能都是通过SQL语言来实现的。一般来说,SQL语言按照功能可以分为4大类: 数据查询语言(DQL)、数据定义语言(DLL)、数据操作语言(DML)和数据控制语言(DCL)。数据查询语言DQL主要用来查询数据,数据定义语言DDL主要用来建立、删除和修改数据对象,数据操纵语言DML主要完成数据操作的命令如插入删除修改数据等操作,数据控制语言DCL主要用来控制对数据库的访问,服务器的关闭、启动等。

SQL语言集DQL、DLL、DML、DCL于一体,可以实现数据库生命同期的全部活动。数据库中的数据可以用SQL语言来进行读取、更新、增加和删除记录。SQL结构比较简单,其命令总数不超过30个,其中常用命令包括:CREATE TABLE、ALTER TABLE、DROP TABLE、INSERT、UPDATE、SELECT、DELETE。SQL语句对大小写不敏感,但其关键词常用大写来表示。

SQL语言简单易学、风格统一,利用简单的几个英语单词的组合就可以完成所有的功能,几乎可以不加修改地嵌入到如VB、PB这样的前端开发平台上,利用前端工具的计算能力和SQL的数据库操纵能力,可以快速建立数据库应用程序。

在SQL语言中访问数据表是通过“用户名.数据表”的形式来进行的。比如在Oracle数据库服务器安装过程中,默认建立有scott用户,该用户对dept数据表和emp数据表有数据查询的权限,因此访问数据表的语句为select * from scott.emp。当然,如果用户是用scott用户本身登录的,则访问数据表的语句可以简化为select * from emp,实质上是一样的。

2. 简要介绍数据库表之间的连接类型及其特点。 解:

连接类型可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

3.设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号、姓名、工资和所在部门号,以及关系DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号、部门名称、部门经理的职工号。 试用SQL语句完成以下查询:

(1)列出各部门中工资不低于600元的职工的平均工资。 (2)写出“查询001号职工所在部门名称”的查询语句。

21

(3)请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调10%。 解:

(1) SELECT AVG(SALARY) FROM EMP WHERE SALARY>=600

(2)SELECT B. DNAME FROM EMP A, DEPT B WHERE A. DNO=B. DNO AND A. ENO=?001?

(3)UPDATE A SET A. SALARY=A. SALARY*1.1

FROM EMP A, DEPT B WHERE A. DNO=B. DNO AND B. DNAME =? 销售部? AND A. SALARY<600

4.已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和所在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。 (1)分析以下SQL语句:

SELECT SNO FROM SC WHERE SCORE= (SELECT MAX(SCORE)FROM SC WHERE CNO=’002’) 请问上述语句完成了什么查询操作? (2)试用SQL语句完成如下查询: 按系号列出各系学生的平均成绩。 (3)试用SQL语句完成如下查询:

列出同时选修了001号和002号课程的学生的学号 解:

(1) 读取学生选课关系中成绩为课程号为002的最高成绩的学号。 (2)SELECT DNO,AVG(SCORE) FROM S A,SC B WHERE A.SNO=B.SNO GROUP BY DNO

(3)SELECT SNO FROM S WHERE S.NO IN(SELECT A.SNO FROM SC A,SC B

WHERE A.CNO=001 AND B.CNO=002 AND A.SNO=B.SNO)

5.已知3个表:工程技术人员表emp(sno,sname,sgrade),含义分别为技术人员代号、姓名和技术等级;项目表project(prjno,prjname,sgrade),含义分别为项目代号,项目名称,项目所需的技术等级;项目日报酬表pay(sno,prjno,daypay),含义分别为技术人员代号,项目代号,项目日报酬。要求技术人员只能参加低于其技术等级的项目。

(1)请查询出技术等级大于2的项目代号和项目名称,同时按项目等级降序排序。 (2)请查询出工程技术人员姓名为“张三”,项目代号为“A001”的项目日报酬。 (3)请查询出可以参加编号为“A001”的项目的工程技术人员代号和姓名。

(4)请查询出姓名为“张三”的工程技术人员可以参加的项目代号和项目名称。 解:

(1)SELECT prjno,prjname FROM project WHERE sgrade>2 ORDER BY prjname DESC

22

(2)SELECT daypay FROM emp A, pay B WHERE A. sno=B. sno AND sname=? 张三? AND prjno=? A001?

(3)SELECT sno,sname FROM emp A, pay B WHERE A. sno=B. sno AND prjno=? A001?

(4)SELECT C.prjno,prjname FROM emp A, pay B, project C WHERE A. sno=B. sno AND B. prjno=C. prjno AND sname=? 张三?

第七章 ORACLE 数据的基本操作

一、单项选择题

1. 下列中哪个不是DML命令?( B )

A.Insert B.Create C.Update D.Delete

2.假设on delete cascade选项没有被定义约束,什么是潜在的外部键约束影响在delete声明?( B )

A.外部键约束能防止删除行如果删除行违反外部键中定义的关系的话 B.外部键约束确保在删除行之前对数据表有正确的权限 C.如果只有一行的被删除,该外部键约束将被忽略 D.外部键对删除表述没有影响

3.用来插入数据记录的工具是( D )。

A.SQLPLUS B.DBCA C.SYSCONFIG D.DBMS

4.有如下两个关系,其中雇员信息表关系EMP的主键是雇员号,部门信息表关系DEPT的主键是部门号。

23

EMP

雇员号 001 010 056 101 DEPT

部门号 01 02 03 04 部门名 业务部 销售部 服务部 财务部 地址 1号楼 2号楼 3号楼 4号楼 雇员名 张山 王宏达 马林生 赵敏 部门号 02 01 02 04 工资 2000 1200 1000 1500 若执行下面列出的操作,哪个操作不能成功执行( C )。 A. 从DEPT中删除部门号=‘03’的行 B. 在DEPT中插入行(‘06’,‘计划部’,‘6号楼’) C. 将DEPT中部门号=‘02’的部门号改为‘10’ D. 将DEPT中部门号=‘01’的地址改为‘5号楼’

5.SQL语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATE实现哪类功能( B )。

A.数据查询 B.数据操纵 C.数据定义 D.数据控制 6.若用如下的SQL语句创建了一个表S: CREATE TABLE S(S# CHAR(6) NOT NULL, SNAME CHAR(8) NOT NULL,SEX CHAR(2),AGE INTEGER) 今向S表插入如下行时,( B )可以被插入。 A. (‘991001’,‘李明芳’,女,‘23’)` B. (‘990746’,‘张为’,NULL,NULL) C. (,‘陈道一’,‘男’,32) D. (‘992345’,NULL,‘女’,25)

7.用于删除表中所有数据行的命令是( B )

A. DELETE TABLE B. TRUNCATE TABLE C. DROP TABLE D. ALTER TABLE 8.假设ABC中的所有列均为字符数据类型,A列的默认值为“VA”,同时还有B列和C列,则执行以下SQL语句:INSERT ABC(A,C)VALUES(‘V’,‘NULL’)后,下列的说法哪一项正确( A )。

A.插入B列的值为字符‘NULL’ B.插入A列的值为字符VA C.插入B列的值空值 D.插入C列的值空值

9.如果要设置SQL*PLUS每页打印的数值,则可以使用如下哪个命令( C ) A.SET PAGE B.PAGESIZE C.SET PAGESIZE D.SIZE 10.用来插入数据的命令是( ),用于更新的命令是( )。( A ) A.INSERT,UPDATE B.UPDATE,INSERT

C.DELETE,UPDATE D.CREATE,INSERT INTO

24