ORACLE11g试题答案(陈冬亮)(5)

2018-12-03 19:37

库中的地位就犹如英语在世界上的地位一样,它是数据库系统的通用语言,,用户可以利用它几乎同样的语句在不同的数据库系统上执行同样的操作。比如“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

11.在创建序列的过程中,下列( A )选项指定序列在达到最大值或最小值后,将继续从头开始生成值。

A. Cycle B. Nocycle C. Cache D. Nocache 二、填空题

1. 序列 是一种可被多个用户使用的用于产生一系列唯一数字的数据库对象。尤其适合多用户环境中,可以生成唯一的序列号而没有磁盘I/O或事务处理锁定开销。 2.序列包含的两个伪列是 Currval 和 Nextval 。

3.使用 序列 可以生成一列整数值,这些整数值可以用作主键约束。

4.数据操作语言允许用户对数据库中的数据进行查询、插入、更新和删除等操作,相应的命令是 SELECT 、 INSERT 、 UPDATE 和 DELETE 等。

5.一般情况下,merge语句包括了两个数据操纵命令,如果合并条件成立则执行 UPDATE 命令,如果合并条件不成立则执行 INSERT 命令。

6.如果确定要删除一个大表的全部记录,可以执行 TRUNCATE 命令,它可以释放占有的数据块表空间。

7. 要设置SQL*PLUS显示数字时的格式可以使用 NumFormat 命令,而要设置某个数字列的显示格式要使用 Column 命令。

8.使用 SAVE 命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用 START 命令运行该文件。

9.当设置多个列的显示属性后,如果清除设置的显示属性,可以使用命令 CLEAR , 当要清除某列具体的显示属性时,需要使用命令 OFF 。

10.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用 SELECT 语句。 11.用SELECT进行模糊查询时,可以使用_ 通配符 _或__百分号_匹配符,模糊查询只能针对字段类型是_字符__的查询。

12.下面语句创建一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000后,序列值重新返回到2,在空白处填写适当的代码,完成上述要求。 create sequence seg_test _start with 2_________ _ increment by 2______ _ maxvalue 1000______ cycle_ _。

三、问答题

1.简述DELETE语句与TRUNCATE语句的差异。 解:

如果想要删除表的所有数据,truncate语句要比 delete 语句快。因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。这也是为什么当向一个使用 delete 清空的表插入数据时,数据库会记住前面产生的AUTOINCREMENT序列,并且继续利用它对AUTOINCREMENT字段编号。而truncate删除表后,表是从1开始为autoincrement字段编号。

25


ORACLE11g试题答案(陈冬亮)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015年湖北省技能高考全省第一次联考文化综合试题及答案

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

马上注册会员

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