《Oracle数据库应用》练习题_第1页
《Oracle数据库应用》练习题_第2页
《Oracle数据库应用》练习题_第3页
《Oracle数据库应用》练习题_第4页
《Oracle数据库应用》练习题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库应用一、 选择题(20分)1. 有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是()A、select * from 产品表 where价格1000B、select sum(价格) from 产品表 group by 所属分类 having max(价格)1000 C、select所属分类,sum(价格) from 产品表 where 价格1000 group by 所属分类D、select所属分类,sum(价格) from 产品表 where max(价格)1000 group by 所属分类2.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?( )A、primary keyB、uniqueC、checkD、not null3.你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用?()A、表 B、序列 C、索引 D、视图4.SQL *Plus中发出的下列语句:select ceil(256.342), floor(256.342), round(256.342), trunc(256.342) from dual; 下列哪个函数不返回结果256?() A、ceil() B、floor() C、round() D、trunc()5.在Oracle数据库的逻辑结构中有以下组件:A 表空间 B 数据块 C 区 D 段,这些组件从大到小依次是()。A、表空间数据块区段B、表空间段区数据块C、 表空间区数据块段D、 段表空间区数据块6. 有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( )A、 10 10 B、 4 4 C、 10 4 D、 4 107SQL语句中修改表结构的命令是 ( )。A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE8. DELETE FROM S WHERE 年龄60语句的功能是_。A、从S表中删除年龄大于60岁的记录 B、删除S表中所有数据C、删除S表 D、删除S表的年龄列9. 在SQL中,删除视图用_。A、DROP SCHEMA命令 B、CREATE TABLE命令 C、DROP VIEW命令 D、DROP INDEX命令10.下列哪个命令是用于ORACLE中数据导出的 ( )A、exp B、imp C、input D、output11.ORACLE数据库物理结构包括以下三种文件,以下不属于的是( )A、系统文件B、日志文件C、数据文件D、控制文件12.假定有一张表用户表users,其中一身份证字段ID_card。为了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束()A、primary keyB、check C、defaultD、not null13.下面四个语句中哪一个是正确的?( )A、SELECT * , ENAME FROM EMP;B、 DELETE * FROM EMP;C、 SELECT DISTINCT EMPNO ,HIREDATE FROM EMP;D、SELECT ENAME|SAL AS “name” FROM EMP ;14当给一个有主键的表中插入重复行时,将引发下列哪个异常?( )A、NO_DATA_FOUND B、TOO_MANY_ROWS C、DUP_VAL_ON_INDEX D、ZERO_DIVIDE15下面哪个命令不属于数据操纵语言(DML)( )A、ALTER B、INSERTC、UPDATED、GRANT16删除emp表中所有数据,且可以rollback,以下语句哪个命令可以实现()A、truncate table empB、drop table empC、delete * from empD、delete from emp17更改oracle用户HR,使其变为不可用(锁定)状态()A、UPDATE USER HR ACCOUNT DISABLE ;B、UPDATE USER HR ACCOUNT LOCK ;C、ALTER USER HR ACCOUNT LOCK ;D、ALTER USER HR ACCOUNT DISABLE ;18 INSERT INTO TEST VALUES(&ID, &NAME); 语句在执行时将( )A、编译错:提示变量未定义B、运行错:提示不能识别符号C、将值&ID和&NAME插入到表中D、提示用户输入输入ID和NAME的值,再将输入值插入表中19在Oracle中,使用下列的语句: CREATE PUBLIC SYNONYM parts FOR Scott.inventory;完成的任务是()。A、需要给出schema被除去的对象名B、指定了新的对象权限C、指定了新的系统权限D、给Scott.inventory对象创建一个公用同义词parts20在PL/SQL块中,以零作除数时会引发下列( )异常。A、VALUE_ERRORB、ZERO_DIVIDEC、VALUE_DIVIDED、ZERO_ERROR二、 填空题(20分)1. 运行sql脚本命令是_ Start 脚本 或 脚本 _2. 显示当前用户名的命令_ Show user _3. 显示表emp的结构命令_ Descemp_4. 权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括_系统权限 和 对象权限_两种。5. pl/sql块为变量赋值不同于其它的编程语言,需要在等号前面加_冒号_6. 定义变量v_name,该变量的数据类型与emp表的ename字段数据类型一致,定义变量的语句是_ V_name emp.ename%type _7. 数据控制语句DCL包含授权语句grant和_ Revoke _8. oracle中的注释符号有-和_/* */_9. 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将_ system _表空间分配给用户作为默认表空间。10. 写出数据库默认的两个用户的名称_ system 和 sys _11. oracle数据库中的数据文件的扩展名是什么?_.dbf _ 12. 控制文件的扩展名是什么?_.ctl _ 13. 写出PL/SQL程序的三个组成部分_声明部分_、_执行部分_和_异常处理部分_14. 写出数据字典的三种前缀,三种前缀:_ DBA _ _ALL_和 _USER_15. Oracle数据库的存储结构分为物理结构和_逻辑结构_。三、 判断题(10分)1. 索引的主要目标是提高访问的速度。(Y)2. 包头没有包体是可以独立存在的。(Y)3. OUT不是PL/SQL过程和函数的参数模式。(N)4. 存储过程与触发器的主要区别就是,存储过程是由用户或应用程序显示调用,而触发器是被事件自动触发。(Y)5. 提供对对象的公共访问不是同义词具有的用途(N)6. Trancate table 学生,该语句表示删除学生表。(N)7. 创建视图的参数with read only,规定视图中不能执行插入、修改、删除和查询操作。(N)8. 创建对象类型使用create type语句(Y)9. PL/SQL程序块最终由关键字end结束。(Y)10. For循环中,每循环一次,循环变量自动增加一个步长的值。(Y)四、 简答题(15分)1. 列出oracle中索引的类型(5分)列出oracle中索引的类型(5分)答:按照数据存储方式,可以分为B*树、反向索引、位图索引;按照索引列的个数分类,可以分为单列索引、复合索引;按照索引列值的唯一性,可以分为唯一索引和非唯一索引。此外还有函数索引,全局索引,分区索引.2. 简单列出几种当前流行的关系数据库系统?(5分) 答:Oracle,MySql,MsSql,DB2,Sybase.3. 简单介绍表空间,并写出一种建立表空间的方法。(5分)答:表空间是Oracle逻辑存储结构的最高层,一个数据库就是若干个表空间组成的。每个表空间对应操作系统中的一个或多个数据文件,但每个数据文件只能属于一个表空间。Create tablespace表空间名datafile数据文件名;五、 程序题(35分)Scott用户下有表emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL,COMM ,DEPTNO)和表dept(DEPTNO ,DNAME,LOC),其中emp表为雇员表,各字段的中文含义为:雇员表(雇员号,雇员名,职位,上级编号,入职时间,月工资,奖金,部门号);dept表为部门表,各字段的中文含义为:部门表(部门编号,部门名,部门所在地点)。1. 创建表空间mysp1,文件大小5M,文件名可以复用,数据文件放在c:mysp1.dbf。 创建表空间mysp1,文件大小5M,文件名可以复用,数据文件放在c:mysp1.dbf。createtablespace mysp1 datafile c:mysp1.dbf size 5m reuse uniform size 128k;2. 在mysp1表空间创建表 myemp,字段名及类型内容同scott用户下的emp。 在mysp1表空间创建表 myemp,字段名及类型内容同scott用户下的emp。Create table myemp as select * from scott.emp default tablespace mysp13. 修改myemp表将所有销售人员(即职位job为销售salesman)的奖金comm加100 修改myemp表将所有销售人员(即职位(job)为销售salesman)的奖金(comm)加100Update myemp set comm=comm +100 where job=salesman4. 创建用户fox,密码f123,授予fox连接数据库,完全访问emp表和dept表的权限。 创建用户fox,密码f123,授予fox连接数据库,完全访问emp表和dept表的权限。create user fox2 identified by f123;grant create session to fox;grant select on scott.emp to fox;5. 使用emp表查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J? 使用emp表查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?select * from scott.emp where (sal500 or job=MANAGER) and ename like J%;6. 使用emp表显示每个部门的每种岗位的员工的平均工资和最低工资?使用emp表显示每个部门的每种岗位的员工的平均工资和最低工资?select deptno,job ,avg(sal) as 平均工资,min(sal) as 最低工资 from emp group by deptno,job;7. 编写PL/SQL程序块,实现查询某个雇员的岗位,用中文显示岗位名称。CLERK 普员工,SALESMAN 销售,MANAGER 经理,ANALYST 分析师,PRESIDENT 总裁(使用case语句) 编写PL/SQL程序块,实现查询某个雇员的岗位,用中文显示岗位名称。CLERK 普员工,SALESMAN 销售,MANAGER 经理,ANALYST 分析师,PRESIDENT 总裁(使用case语句)setserverout ondeclarev_jobscott.emp.job%type;v_shuchu varchar2(30);V_empno varchar2(20);beginV_empno:=&empno;select job into v_job from scott.emp where empno=v_empno;casev_job when CLERK then v_shuchu:=得职位是:普通员工; when SALESMAN then v_shuchu:=得职位是:销售员; when MANAGER then v_shuchu:=得职位是:经理; when ANALYST then v_shuchu:=得职位是:分析师;else v_shuchu:=总裁;end case;dbms_output.put_line(v_empno | v_shuchu);exceptionwhenno_data_found thendbms_output.put_line(您输入的员工不存在!);end;8. 编写程序块,用PL/sql实现输出7369号员工的姓名。 编写程序块,用PL/sql实现输出7369号员工的姓名。DeclareV_name emp.ename%type;BeginSelect ename into v_name from emp where empno=7369;Dbms_output.put_line(v_name)End;9. 编写函数annual_incomec,实现输入雇员的姓名,返回该雇员的年薪 编写函数annual_incomec,实现输入雇员的姓名,返回该雇员的年薪 create function annual_incomec(name varchar2) return number is annual_salazy number(7,2); begin-执行部分 selectsal*12+nvl(comm, 0) into annual_salazy from emp where ename=name; returnannual_salazy; end; / 10. 编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。create or replace procedure sp_pro6(spName varchar2) is -定义 v_salemp.sal%type; begin -执行 selectsal into v_sal from emp where ename=spName; -判断 ifv_sal500 or job=MANAGER) and ename like J%;6.使用emp表显示每个部门的每种岗位的员工的平均工资和最低工资?select deptno,job ,avg(sal) as 平均工资,min(sal) as 最低工资 from emp group by deptno,job;7.编写PL/SQL程序块,实现查询某个雇员的岗位,用中文显示岗位名称。CLERK 普员工,SALESMAN 销售,MANAGER 经理,ANALYST 分析师,PRESIDENT 总裁(使用case语句)setserverout ondeclarev_jobscott.emp.job%type;v_shuchu varchar2(30);V_empno varchar2(20);beginV_empno:=&empno;select job into v_job from scott.emp where empno=v_empno;casev_job when CLERK then v_shuchu:=得职位是:普通员工; when SALESMAN then v_shuchu:=得职位是:销售员; when MANAGER then v_shuchu:=得职位是:经理; when ANALYST then v_shuchu:=得职位是:分析师;else v_shuchu:=总裁;end case;dbms_output.put_line(v_empno | v_shuchu);exceptionwhenno_data_found thendbms_output.put_line(您输入的员工不存在!);end;8.编写程序块,用PL/sql实现输出7369号员工的姓名。DeclareV_name emp.ename%type;BeginSelect ename into v_name from emp where empno=7369;Dbms_output.put_line(v_name)End;9.编写函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论