oracle试题及答案
oracle试题答案解释版
要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A)数据库B)模式C)表空间D)实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D )表空间分配给用户作为默认表空间。
A) USER B) SYS C)DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B)Union C)Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott。
deptB) create sequence dept_seque increment by 1C)alter sequence dept_seque increment by 2D)drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行.A) 主键B) 唯一索引C)rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句(A)A)for… end for B) loop…end loopC)while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock——blockB) tablespace-—segment——extent——blockC)tablespace-—extent——segment--blockD) tablespace-—extent-—block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:(C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD)对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC)STRATUP NOMOUNT D)STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC)GRANT UPDATE(SAL) ON SCOTT。
oracle试题答案解释版
要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B )A) 数据库B) 模式C) 表空间D) 实例2、在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE 关键字,则Oracle 就将(D)表空间分配给用户作为默认表空间。
A) USER B) SYS C) DEFAULT D) SYSTEM3、在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum解释:top 是sql server数据库的关键字,limit 是mysql数据库的关键字,first是informix 数据库的关键字4、在Oracle中,( B)操作符返回并集操作并不包括重复行A) Intersect B) Union C) Union all D) Minus解释:Intersect返回交集,union返回并集,不包括重复行,union all 返回并集,包括重复行,minus返回差集5、下面那个语句是错误的(D)A) create synonym dept_synon for scott.deptB) create sequence dept_seque increment by 1C) alter sequence dept_seque increment by 2D) drop dept_synon6、oracle数据库中,通过( C)可以以最快的方式访问表中的一行。
A) 主键B) 唯一索引C) rowid D) 全表扫描7、下面那个不是oracle程序设计中的循环语句( A)A) for… end for B) loop…end loopC) while…end loop D) for… end loop8、oracle存储结构正确的是(B)A) tablespace--segment--osblock--blockB) tablespace--segment--extent--blockC) tablespace--extent--segment--blockD) tablespace--extent--block –segment9、若tnsnames.ora文件中部分配置如下:xfhtdb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = scce)))则表明:( C)A) Oracle服务器所在的主机名为DEDICATEDB) Oracle服务器所在的主机名为scceC) 对应数据库的SID为scceD) 对应数据库的SID为xfhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A) STRATUP NORMAL B) STRATUP FORCEC) STRATUP NOMOUNT D) STARTUP MOUNT11、授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是:( C )A) GRANT CHANGE ON SCOTT.EMP TO SAB) GRANT UPDATE ON SCOTT.EMP(SAL) TO SAC) GRANT UPDATE(SAL) ON SCOTT.EMP TO SAD)GRANT MODIFY ON SCOTT.EMP TO SA12、一个表有百万以上数据,其中一个列经常被作为查询条件并且只有25个不同数据,适合使用(C)索引提高查询速度。
oracle数据库期末考试试题及答案(一)
一、选择一、选择1) CBO与RULE的区别,RBO根据规则选择最佳执行路径来运行查询,CBO根据表统计找到最低成本的访问数据的方法确定执行计划。
使用CBO需要注意:注意:a) 需要使用提示(Hint) b) 优化SQL的写法的写法c) 选择最有效率的表名顺序选择最有效率的表名顺序YZE命令进行分析统计ANALYZEd) 需要经常对表进行ANAL命令进行分析统计d) 需要稳定执行计划需要稳定执行计划2) 在Oracle中,一个用户拥有的所有数据库对象统称为()。
中,一个用户拥有的所有数据库a) 数据库数据库b) 模式模式c) 表空间表空间d) 实例实例3) 在Oracle中,可用于提取日期时间类型特定部分(如年、月、日、时、分、秒)的函数有()。
TEP ART DATEPa) DAb) EXTRACT c) TO_CHAR d) TRUNC 4) 在Oracle中,有一个教师表teacher的结构如下:的结构如下:ID NUMBER(5) NAME V ARCHAR2(25) EMAIL V ARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。
a) SELECT name FROM teacher WHERE email = NULL; b) SELECT name FROM teacher WHERE email <> NULL; c) SELECT name FROM teacher WHERE email IS NULL; d) SELECT name FROM teacher WHERE email IS NOT NULL; 5) 在Oracle数据库的逻辑结构中有以下组件:数据库的逻辑结构中有以下组件:A 表空间数据块 C 区D 段表空间 B 数据块这些组件从大到小依次是()。
a) A→B→C→D b) A→D→C→B c) A→C→B→D d) D→A→C→B 6) 在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求。
Oracle面试题及答案整理
Oracle⾯试题及答案整理1、表:table1(FId,Fclass,Fscore),⽤最⾼效最简单的SQL列出各班成绩最⾼的列表,显⽰班级,成绩两个字段。
select fclass,max(fscore) from table1 group by fclass,fid2、有⼀个表table1有两个字段FID,Fno,字都⾮空,写⼀个SQL语句列出该表中⼀个FID对应多个不同的Fno的纪录。
类如:101a1001101a1001102a1002102a1003103a1004104a1005104a1006105a1007105a1007105a1007结果:102a1002102a1003104a1005104a1006select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno;3、有员⼯表empinfo(Fempno varchar2(10) not null pk,Fempname varchar2(20) not null,Fage number not null,Fsalary number not null);假如数据量很⼤约1000万条;写⼀个你认为最⾼效的SQL,⽤⼀个SQL计算以下四种⼈:fsalary>9999 and fage > 35fsalary>9999 and fage < 35fsalary <9999 and fage > 35fsalary <9999 and fage < 35每种员⼯的数量;select sum(case when fsalary > 9999 and fage > 35then 1else 0end) as "fsalary>9999_fage>35",sum(case when fsalary > 9999 and fage < 35then 1else 0end) as "fsalary>9999_fage<35",sum(case when fsalary < 9999 and fage > 35then 1else 0end) as "fsalary<9999_fage>35",sum(case when fsalary < 9999 and fage < 35then 1else 0end) as "fsalary<9999_fage<35"from empinfo;4、表A字段如下month person income⽉份⼈员收⼊要求⽤⼀个SQL语句(注意是⼀个)的处所有⼈(不区分⼈员)每个⽉及上⽉和下⽉的总收⼊要求列表输出为⽉份当⽉收⼊上⽉收⼊下⽉收⼊MONTHS PERSON INCOME---------- ---------- ----------200807 mantisXF 5000200806 mantisXF2 3500200806 mantisXF3 3000200805 mantisXF1 2000200805 mantisXF6 2200200804 mantisXF7 1800200803 8mantisXF 4000200802 9mantisXF 4200200802 10mantisXF 3300200801 11mantisXF 4600200809 11mantisXF 680011 rows selectedselect months, max(incomes), max(prev_months), max(next_months)from (select months,incomes,decode(lag(months) over(order by months),to_char(add_months(to_date(months, 'yyyymm'), -1), 'yyyymm'), lag(incomes) over(order by months), 0) as prev_months,decode(lead(months) over(order by months), to_char(add_months(to_date(months, 'yyyymm'), 1), 'yyyymm'), lead(incomes) over(order by months), 0) as next_months from (select months, sum(income) as incomes from a group by months) aa) aaagroup by months;MONTHS MAX(INCOMES) MAX(PREV_MONTHS) MAX(NEXT_MONTHS)---------- ------------ ---------------- ----------------200801 4600 0 7500200802 7500 4600 4000200803 4000 7500 1800200804 1800 4000 4200200805 4200 1800 6500200806 6500 4200 5000200807 5000 6500 0200809 6800 0 05,表BC1 c22005-01-01 12005-01-01 32005-01-02 5要求的处数据2005-01-01 42005-01-02 5合计 9试⽤⼀个Sql语句完成。
Oracle测试题+答案
1) PL/SQL块中可以使用下列()命令。
(选择两项)a) TRUNCATEb) DELETEc) SA VEPOINTd) ALTER TABLE2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是(B)〔选择一项〕a) GRANT CHANGE ON SCOTT.EMP TO SAb) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SAc) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SAd) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是(C)〔选择一项〕a) Aptechb) 无输出c) 14行Aptechd) 编译出错4) PL/SQL块中哪几部分是可选的()〔选择二项〕a) Declareb) Beginc) Exceptiond) Constant5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。
(选择一项)a) Cycleb) Nocyclec) Cached) Nocache6) 同义词有以下()用途。
(选择三项)a) 简化SQL 语句b) 隐藏对象的名称和所有者c) 提供对对象的公共访问d) 显示对象的名称和所有者7) Oracle中用来释放锁的语句有()〔选择二项〕a) commitb) Drop lockc) rollbackd) unlock8) 关于类型定义Number(9,2)说法正确的有()〔选择一项〕a) 整数部分9位,小数部分2位,共11位b) 整数部分7位,小数部分2位,共9位c) 整数部分6位,小数点一位,小数部分2位,共9位d) 以上说法均不正确9) 下列哪种Lob类型用来存储数据库以外的操作系统文件()〔选择一项〕a) CLOBb) BLOBc) CFILEd) BFILE10) Oracle中的三种系统文件分别是()〔选择三项〕a) 数据文件b) 归档文件c) 日志文件d) 控制文件11) 下列哪项不是Oracle中常用的分区方法?()〔选择一项〕a) 范围分区b) 散列分区c) 列表分区d) 条件分区12) 查看Test中名称为P1的分区中的记录的查询语句为()〔选择一项〕a) Select * from Test Where PartitionName=’p1’b) Select * from Test(p1)c) Select * from Test Partition(p1);d) 以上均正确13) 创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕a) 从MinValue重新开始循环b) 重复使用MaxValue 值c) 执行出错d) 使用随机值14) 下列哪项是创建索引组织表所必需的()〔选一项〕a) Primary Keyb) Order Byc) Group Byd) 以上均不是15) 若表的某字段值存在大量的重复,则基于该字段适合创建哪种索引?()〔选一项〕a) 标准索引b) 唯一索引c) 位图索引d) 分区索引16) 在PL/SQL块中定义一个名为PI值为3.14的Real型常量的语法是()〔选一项〕a) A.Pi Const Real=3.14;b) B.Pi Real Const =3.14;c) C.Constant Pi Real:=3.14d) D.Pi Constant Real:=3.1417) 22.当Select语句没有返回行时,将引发下列哪个异常?()[选择一项]a) A.No_rows_foundb) B.No_data_foundc) C.No_Data_rows_foundd) D.Invalid_Number18) Oracle中提供的两种游标是()〔选择二项〕a) A.隐式游标b) B.静态游标c) C.REF游标d) D.显式游标19) 若Emp表中有14条记录,则用户执行了以下操作,结果是:()〔选择一项〕Cursor mycur is Select * From emp;。
oracle考试试题及答案
试题一一、填空题(每小题4分,共20分)1、数据库管理技术经历了三个阶段2、数据库三级数据结构是__________________________________________________3、Oracle数据库中,SGA由___________________________________________组成4、在Oracle数据库中,完正性约束类型有___________________________________5、PL/SQL中游标操作包括________________________________________________二、正误判断题(每小题2分,共20分)1、数据库中存储的基本对象是数据()2、数据库系统的核心是DBMS()3、关系操作的特点是集合操作()4、关系代数中五种基本运算是并、差、选择、投影、连接()5、Oracle进程就是服务器进程()6、oraclet系统中SGA所有用户进程和服务器进程所共享()7、oracle数据库系统中数据块的大小与操作系统有关()8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例()9、PL/SQL中游标的数据是可以改变的()10、数据库概念模型主要用于数据库概念结构设计()三、简答题(每小题7分,共35分)1、何谓数据与程序的逻辑独立性和物理独立性?2、试述关系代数中等值连接与自然连接的区别与了解?3、何谓数据库,数据库设计一般分为哪些阶段?4、简述Oracle逻辑数据库的组成?5、试任举一例说明游标的使用方法?五、设有雇员表emp(empno,ename,age,sal,tel,deptno),其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话 deptno-----部门号。
请按下列要求分别晨SQL*PLUS下编程。
(每小题3分,共15分)1、查询家有电话的职工信息。
Oracle期末考试试题及答案
10.如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会启动如下哪一个进程( )
A.CKPTB. DBWRC.LGWRD. SMON
11.下列哪一个锁模式不属于Oracle( )。
A.死锁B.排他锁C.行级共享锁D.共享锁
ALTER TABLE Class
________________________;
10.假设用户Lisa用Lisa以普通用户身份登录到系统,现需创建一个UPDATE语句来修改本用户下ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是________________________ ;
四、编程题(本大题共2小题,每题10分,共20分)
1.(5空,每空2分,共10分)
(1)SELECTempno,sal
FROM employee
WHEREempno BETWEEN 7300 AND 7600;
(2) OPEN cursor_sal
(3) INTO v_empno,v_sal
(4)COMMIT;
END;
(2)假设用户已登录SQL Plus系统,处于“SQL>_”命令提示符下,现需执行存储
过程Rise_sal,请写出命令:_______⑤___________
2.创建一个函数get_sal,用于实现对表Emp(如下图)给定一个员工号(Empno),
通过函数获取该雇员的工资值,请完成以下程序。
1.__________是具有名称的一组相关权限的组合。
2.一个表空间物理上对应一个或多个__________文件。
3.标准的SQL语言语句类型可以分为:__________、数据操纵语句(DML)和__________。
Oracle测试题(卷)+答案解析
Oracle测试题(卷)+答案解析1) PL/SQL块中可以使用下列()命令。
(选择两项)a) TRUNCATEb) DELETEc) SA VEPOINTd) ALTER TABLE2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是(B)〔选择一项〕a) GRANT CHANGE ON SCOTT.EMP TO SAb) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SAc) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SAd) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是(C)〔选择一项〕a) Aptechb) 无输出c) 14行Aptechd) 编译出错4) PL/SQL块中哪几部分是可选的()〔选择二项〕a) Declareb) Beginc) Exceptiond) Constant5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。
(选择一项)a) Cycleb) Nocyclec) Cached) Nocache6) 同义词有以下()用途。
(选择三项)a) 简化SQL 语句b) 隐藏对象的名称和所有者c) 提供对对象的公共访问d) 显示对象的名称和所有者7) Oracle中用来释放锁的语句有()〔选择二项〕a) commitb) Drop lockc) rollbackd) unlock8) 关于类型定义Number(9,2)说确的有()〔选择一项〕a) 整数部分9位,小数部分2位,共11位b) 整数部分7位,小数部分2位,共9位c) 整数部分6位,小数点一位,小数部分2位,共9位d) 以上说法均不正确9) 下列哪种Lob类型用来存储数据库以外的操作系统文件()〔选择一项〕a) CLOBb) BLOBc) CFILEd) BFILE10) Oracle中的三种系统文件分别是()〔选择三项〕a) 数据文件b) 归档文件c) 日志文件d) 控制文件11) 下列哪项不是Oracle中常用的分区方法?()〔选择一项〕a) 围分区b) 散列分区c) 列表分区d) 条件分区12) 查看Test中名称为P1的分区中的记录的查询语句为()〔选择一项〕a) Select * from Test Where PartitionName=’p1’b) Select * from Test(p1)c) Select * from Test Partition(p1);d) 以上均正确13) 创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕a) 从MinValue重新开始循环b) 重复使用MaxValue 值c) 执行出错d) 使用随机值14) 下列哪项是创建索引组织表所必需的()〔选一项〕a) Primary Keyb) Order Byc) Group Byd) 以上均不是15) 若表的某字段值存在大量的重复,则基于该字段适合创建哪种索引?()〔选一项〕a) 标准索引b) 唯一索引c) 位图索引d) 分区索引16) 在PL/SQL块中定义一个名为PI值为3.14的Real型常量的语法是()〔选一项〕a) A.Pi Const Real=3.14;b) B.Pi Real Const =3.14;c) C.Constant Pi Real:=3.14d) D.Pi Constant Real:=3.1417) 22.当Select语句没有返回行时,将引发下列哪个异常?()[选择一项]a) A.No_rows_foundb) B.No_data_foundc) C.No_Data_rows_foundd) D.Invalid_Number18) Oracle中提供的两种游标是()〔选择二项〕a) A.隐式游标b) B.静态游标c) C.REF游标d) D.显式游标19) 若Emp表中有14条记录,则用户执行了以下操作,结果是:()〔选择一项〕Cursor mycur is Select * From emp;。
Oracle数据库试题及答案
Oracle数据库试题一、选择题1、段是表空间中一种逻辑存储结构,以下( D )不是ORACLE数据库使用的段类型。
(A)索引段(B)临时段(C)回滚段(D)代码段2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是( A )。
(A)系统文件(B)日志文件(C)数据文件(D)控制文件3、数据库中有两个用户scott和muuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( C )(A)select*from scott.wz where wunit is null and rownum<5;(B)select*from myuser.wz where wunit = null and rownum<5;(C) select*from myuser.wz where wunit is null and rownum<6;(D)select*form scott.wz where wunit is null and rownum<6;4、若当前日期为’25-5月-06’,以下( D )表达式能计算出5个月后那一天所在月份的最后一天的日期。
(A)NEXT_DAY(ADD_MONTHS(28-5月-06,5))(B)NEXT_DAY(MONTHS_BETWEEN(28-5月-06,5))(C)NEXT_DAY(MONTHS_BETWEEN(’28-5月-06’,5))(D)NEXT_DAY(ADD_MONTHS(’28-5月-06’,5))5、下列叙述中正确的是_C_。
A、数据库是一个独立的系统,不需要操作系统的支持B、数据库设计是指设计数据库管理系统C、数据库技术的根本目标是要解决数据共享的问题D、数据库系统中,数据的物理结构必须与逻辑结构一致6、SQL语句中修改表结构的命令是 C 。
Oracle面试题及答案
Oracle⾯试题及答案模块⼀ SQL(DQL)l 基本SQL 查询l 运算符与函数l ⼦查询l 连接查询建表语句emp.sqlPart I(第⼀天)01. 查询员⼯表所有数据, 并说明使⽤*的缺点答:select * from emp;使⽤*的缺点有a) 查询出了不必要的列b) 效率上不如直接指定列名02. 查询职位(JOB)为'PRESIDENT'的员⼯的⼯资答:select * from emp where job = 'PRESIDENT';03. 查询佣⾦(COMM)为0 或为NULL 的员⼯信息答:重点是理解0 与null 的区别select * from emp where comm = 0 or comm is null;04. 查询⼊职⽇期在1981-5-1 到1981-12-31 之间的所有员⼯信息答:通过此题掌握常⽤⽇期函数select * from emp where hiredatebetween to_date('1981-5-1','yyyy-mm-dd') and to_date('1981-12-31','yyyy-mm-dd');05. 查询所有名字长度为4 的员⼯的员⼯编号,姓名答:select * from emp where length(ename) = 4;06. 显⽰10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息答:select * from emp where deptno = 10 and job = 'MANAGER' or deptno = 20 and job ='CLERK';07. 显⽰姓名中没有'L'字的员⼯的详细信息或含有'SM'字的员⼯信息答:考察知识点模糊查询select * from emp where ename not like '%L%' or ename like '%SM%';08. 显⽰各个部门经理('MANAGER')的⼯资答:select sal from emp where job = 'MANAGER';09. 显⽰佣⾦(COMM)收⼊⽐⼯资(SAL)⾼的员⼯的详细信息答:select * from emp where comm > sal;10. 把hiredate 列看做是员⼯的⽣⽇,求本⽉过⽣⽇的员⼯(考察知识点:单⾏函数)答:select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm');11. 把hiredate 列看做是员⼯的⽣⽇,求下⽉过⽣⽇的员⼯(考察知识点:单⾏函数)答:select * from emp where to_char(hiredate, 'mm') = to_char(add_months(sysdate,1) , 'mm'); 12. 求1982 年⼊职的员⼯(考察知识点:单⾏函数)答:select * from emp where to_char(hiredate,'yyyy') = '1982';13. 求1981 年下半年⼊职的员⼯(考察知识点:单⾏函数)答:select * from emp where hiredatebetween to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1;14. 求1981 年各个⽉⼊职的的员⼯个数(考察知识点:组函数)答:select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm')from emp where to_char(hiredate,'yyyy')='1981'group by trunc(hiredate,'month')order by trunc(hiredate,'month');Part II(第⼆天)01. 查询各个部门的平均⼯资答:考察知识点:分组select deptno,avg(sal) from emp group by deptno;02. 显⽰各种职位的最低⼯资答:考察知识点:分组select job,min(sal) from emp group by job;03. 按照⼊职⽇期由新到旧排列员⼯信息答:考察知识点:排序select * from emp order by hiredate desc;04. 查询员⼯的基本信息,附加其上级的姓名答:考察知识点:⾃连接select e.*, e2.ename from emp e, emp e2 where e.mgr = e2.empno;05. 显⽰⼯资⽐'ALLEN'⾼的所有员⼯的姓名和⼯资答:考察知识点:⼦查询select * from emp where sal > (select sal from emp where ename='ALLEN');分析:当查询结果是⼀⾏⼀列时,可以将此结果看做⼀个值,参与条件⽐较。
OraclePLSQL测试题与答案(绝对经典)
Oracle PL/SQL测试题姓名:___ _________ 一、选择题1、Oracle数据库中为新创建的表分配的初始空间通常为多大(B)A、一个块、一个块B、一个区、一个区C、一个段、一个段D、c一个表空间一个表空间2、关于存储过程参数,正确的说法是(B)A、存储过程的输出参数可以是标量类型,也可以是表类型、存储过程的输出参数可以是标量类型,也可以是表类型B、存储过程输入参数可以不输入信息而调用过程、存储过程输入参数可以不输入信息而调用过程C、可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2))D、以上说法都不对、以上说法都不对3、下列说法,正确的说法是(B)A、只要在存储过程中有增删改语句,一定加自治事务、只要在存储过程中有增删改语句,一定加自治事务B、在函数内可以修改表数据、在函数内可以修改表数据C、函数不能递归调用、函数不能递归调用D、以上说法都不对、以上说法都不对4、有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是(D)A、select * from 产品表产品表 where价格>1000 产品表B、select sum(价格所属分类 having max(价格价格)>1000 产品表 group by 所属分类价格) from 产品表C、select所属分类,sum(价格) from 产品表所属分类产品表 where 价格>1000 group by 所属分类D、select所属分类,sum(价格) from 产品表所属分类产品表 where max(价格)>1000 group by 所属分类5、关于触发器,下列说法正确的是(B)A、可以在表上创建INSTEAD OF 触发器触发器B、语句级触发器不能使用“:old”和“:new”C、行级触发器不能用于审计功能、行级触发器不能用于审计功能D、触发器可以显式调用、触发器可以显式调用6、下列那些是Oracle的伪列(ACD)A、ROWID B、ROW_NUMBER() C、LEVEL D、ROWNUM E、COLUMN 7、当表的重复行数据很多时,应该创建的索引类型应该是(、当表的重复行数据很多时,应该创建的索引类型应该是( C )A、B树B 、reverse C 、bitmap D 、函数索引、函数索引8、在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?(C )A 、primary key B 、unique C 、check D 、not null 9、利用游标来修改数据时,所用的。
oracle数据库期末考试试题及答案
oracle数据库期末考试试题及答案一、选择题(每题2分,共20分)1. 在Oracle数据库中,用于创建数据库表的命令是:A. CREATE DATABASEB. CREATE TABLEC. DROP TABLED. ALTER TABLE答案:B2. 下列哪个选项不是Oracle数据库的系统表?A. USER_TABLESB. DBA_TABLESC. ALL_TABLESD. EMPLOYEE答案:D3. 在Oracle数据库中,用于删除数据库表的命令是:A. DROP TABLEB. DELETE TABLEC. REMOVE TABLED. ERASE TABLE答案:A4. Oracle数据库中,哪个命令用于查询数据库中所有用户?A. SELECT * FROM USER_USERS;B. SELECT * FROM ALL_USERS;C. SELECT * FROM DBA_USERS;D. SELECT * FROM USER;答案:B5. 在Oracle数据库中,用于添加新列的命令是:A. ADD COLUMNB. INSERT COLUMNC. CREATE COLUMND. ALTER TABLE答案:D6. 下列哪个选项不是Oracle数据库的存储引擎?A. InnoDBB. Oracle RDBMSC. BDBD. Oracle ASM答案:A7. Oracle数据库中,用于更新表中数据的命令是:A. UPDATEB. CHANGEC. MODIFYD. ALTER答案:A8. Oracle数据库中,用于删除表中数据的命令是:A. DELETEB. REMOVEC. DROPD. ERASE答案:A9. 在Oracle数据库中,用于查询表中数据的命令是:A. SELECTB. QUERYC. FETCHD. GET答案:A10. Oracle数据库中,用于创建索引的命令是:A. CREATE INDEXB. CREATE KEYC. INDEXD. KEY答案:A二、填空题(每题2分,共20分)1. Oracle数据库的默认端口号是______。
oracle数据库试题及答案
oracle数据库试题及答案一、单选题1. Oracle数据库的特点是()A. 高安全性B. 高性能C. 可扩展性D. 全面支持ACID特性答案:D2. 在Oracle数据库中,数据存储在()中。
A. 数据块B. 数据段C. 数据文件D. 表空间答案:D3. 下面哪个是Oracle数据库的管理工具?A. SQL DeveloperB. ToadC. PL/SQL DeveloperD. SQL*Plus答案:A4. Oracle数据库中,用于创建和修改数据库对象的语言是()。
A. DMLB. DDLC. DCLD. TCL答案:B5. 在Oracle数据库中,用于查询和操作数据库对象的语言是()。
A. DMLB. DDLC. DCLD. TCL答案:A二、多选题1. 下列哪些是Oracle数据库的特点?()A. 支持事务处理B. 支持分布式数据库C. 支持并发控制D. 支持网络编程答案:A、B、C2. Oracle数据库的体系结构包含以下几个部分:()A. 数据块B. 数据文件C. 表空间D. 实例答案:A、B、C、D3. 下列哪些是Oracle数据库的安全机制?()A. 用户权限管理B. 数据加密C. 访问控制D. 数据备份答案:A、B、C4. Oracle数据库的存储结构包括以下几个层次:()A. 数据库B. 表空间C. 数据文件D. 段E. 数据块答案:A、B、C、D、E5. Oracle数据库的备份与恢复策略包括以下几种:()A. 完全备份B. 增量备份C. 差异备份D. 恢复点备份E. 日志备份答案:A、B、C、E三、判断题1. Oracle数据库是面向对象的数据库。
答案:错误2. Oracle数据库可以跨平台使用。
答案:正确3. Oracle数据库的事务具有原子性、一致性、隔离性和持久性。
答案:正确4. Oracle数据库可以使用PL/SQL语言进行存储过程和触发器的编写。
答案:正确5. Oracle数据库的数据存储采用以行为单位的方式。
oracle试题及答案
Oracle 阶段测试题一选择题(2*10=20)1.下列不属于ORACLE的逻辑结构的是(C )A区B段C 数据文件D表空间2. 下面哪个用户不是ORACLE缺省安装后就存在的用户(A)A . SYSDBAB. SYSTEMC. SCOTTD. SYS3 .下面哪个操作会导致用户连接到ORACLE数据库,但不能创建表(A)A授予了CONNECT的角色,但没有授予RESOURCE的角色B没有授予用户系统管理员的角色C数据库实例没有启动D数据库监听没有启动4. 在Oracle中,下面关于函数描述正确的是(AD)。
A SYSDATE函数返回Oracle服务器的日期和时间B ROUND数字函数按四舍五入原则返回指定十进制数最靠近的整数C ADD_MONTHS日期函数返回指定两个月份天数的和D SUBSTR函数从字符串指定的位置返回指定长度的子串5. 在Oracle中,表EMP包含以下列:……NAME VARCHAR2(20)ADDR VARCHAR2(60)……要以NAME’s address is ADDR格式返回数据,以下SQL语句正确的是(B)。
+ 的两边做T o_number()A SELECT NAME + ’’’s address is ‘ + ADDR FROM EMP;B SELECT NAME || ’’’s address is ‘ || ADDR FROM EMP;C SELECT NAME + ’\’s address is ‘ + ADDR FROM EMP;D SELECT NAME || ’\’s address is ‘ || ADDR FROM EMP;6:在Oracle中,执行下面的语句:SELECT ceil(-97.342),floor(-97.342), -123.01 -124round(-97.342),trunc(-97.342)FROM dual;哪个函数的返回值不等于-97(B)。
Oracle测试题及答案
Oracle试题(数据库技术及应用)学号姓名分数(一) 按照题意写出SQL语句(45分每题3分)本题用到下面三个关系表:借书卡card(cno卡号,name姓名,class班级)图书books(bno书号,bname书名,author作者,price 单价,quantity库存册数) 借书记录borrow (cno借书卡号,bno书号,rdate还书日期)注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
1.写出建立borrow表的SQL语句,要求定义主码完整性约束和引用完整性约束。
create table card(cno char(6) primary key,name varchar2(10),class varchar2(12));create table books(bno char(8) primary key,bname varchar2(50),author varchar2(10),price number(5,3),quantity number(4));create table borrow(cno char(6) references card(cno) on delete cascade,bno char(8) references books(bno) on delete cascade,rdate date,primary key(cno,bno));2.找出借书超过5本的读者,输出借书卡号及所借图书册数。
select cno,count(*) 册数from borrowgroup by cnohaving count(*)>5;3.查询借阅了“水浒”一书的读者,输出姓名及班级。
select name,classfrom cardwhere cno in (select cnofrom borrowwhere bno=(select bnofrom bookswhere bname='水浒'));4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
oracle面试题及答案
oracle面试题及答案oracle面试题及答案(一)1、关系数据库系统与文件数据库系统的区别在那里?关系数据库系统一般适用那些方面? 答案:关系数据库系统文件系统的区别在于:首先,关系性数据库的整体数据是结构化的,采用关系数据模型来描述,这是它与文件系统的根本区别。
(数据模型包括:数据结构,数据操作以及完整性约束条件)其次,关系数据库系统的共享性高,冗余低可以面向整个系统,而文件系统则具有应用范围的局限性,不易扩展。
第三,关系数据库系统采用两级映射机制保证了数据的高独立性,从而使得程序的编写和数据都存在很高的独立性。
这方面是文件系统无法达到的,它只能针对于某一个具体的应用。
(两级映射:保证逻辑独立性的外模式/模式映射和保证物理独立性的内模式/模式映射。
外模式:用户模式,是数据库用户的局部数据的逻辑结构特征的描述。
模式:数据库全体数据的逻辑结构特征的描述。
内模式:也就是数据最终的物理存储结构的描述。
)第四,就是关系性数据库系统由统一的DBMS进行管理,从而为数据提供了如安全性保护,并发控制,完整性检查和数据库恢复服务。
2、触发器的概念,存储过程的概念.答案:触发器:是存储在数据库中的过程,当表被修改(增、删、改)时它隐式地被激发。
存储过程:是数据库语言SQL的集合,同样也存储在数据库中,但是他是由其他应用程序来启动运行或者也可以直接运行。
3、基本SQL语句有哪些.答案:select、insert、update、delete、create、drop、truncate4、使用存储过程访问数据库比直接用SQL语句访问有哪些优点?答案:存储过程是预编译过的,执行时勿须编译,执行速度更快;存储过程封装了一批SQL语句,便于维护数据的完整性与一致性;可以实现代码的复用。
oracle面试题及答案(二)1.解释冷备份和热备份的不同点以及各自的优点解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。
ORACLE试题01
ORACLE试题一、单项选择题(每题2分,共20分)1、假如不知道该变量的基础数据库列的数据类型,在PL/SQL块中如何定义一个变量?(表名是DBTABLE,列名是COLUMNX)A、V_X NUMBER;B、V_X V ARCHAR2C、V_X DBTABLE.COLUMNX%TYPE;D、V_X COLUMNX.DBTABLE%TYPE;2、下列代码中哪一行有错?A、SELECT DNAME,ENAMEB、FROM EMP E , DEPT DC、WHERE EMP.DEPTNO=DEPT.DEPTNOD、ORDER BY 1,23、查询那一个数据字典视图,只能列出用户所拥有的表?A、ALL_TABLESB、DBA_TABLESC、USER_TABLESD、USR_TABLES4、在CREATE VIEW命令中哪个子句将阻止通过视图对基表进行更新?A、WITH CHECK OPTIONB、WITH READ ONL YC、WITH NO UPDATED、没有这样的选项;假如用户对基表有权限,用户可以更新视图5、表中的一列具有这样的特性,其值的重复度很高,我们可以使用何种索引?A、唯一索引B、组合索引C、反向建索引D、位图索引6、在出错处理部分中需要包含什么子句,以便处理前面没有指定的错误?A、ELSEB、WHEN ANYTHING ELSEC、WHEN ANY OTHERD、WHEN OTHERS THEN7、在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。
A、CycleB、NocycleC、CacheD、Nocache8、在PL/SQL中,在执行任何DML语句前,SQL%NOTFOUND的值为()。
A、NOTFOUNDB、TRUEC、NULLD、FALSE9、在Oracle中,PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) ISSELECT sal, comm FROM emp WHERE deptno = dnum;那么正确打开此游标的语句是()A、OPEN emp_cursor(20);B、OPEN emp_cursor FOR 20;C、OPEN emp_cursor USING 20;D、FOR emp_rec IN emp_cursor LOOP … END LOOP;10、当两位用户中的每一位都对一个单独的对象进行了锁定,而他们又要获取对方对象的锁时,将会发生()。
oracle数据库的试题及答案
oracle数据库的试题及答案### Oracle数据库试题及答案#### 一、选择题1. 在Oracle数据库中,哪个命令用于创建数据库表?- A. CREATE TABLE- B. DROP TABLE- C. ALTER TABLE- D. TRUNCATE TABLE答案:A2. 以下哪个选项不是Oracle数据库的SQL语句?- A. SELECT- B. UPDATE- C. DELETE- D. PRINT答案:D3. Oracle数据库中,用于删除表中所有数据的命令是什么? - A. DELETE FROM table_name- B. TRUNCATE TABLE table_name- C. DROP TABLE table_name- D. CLEAR table_name答案:B4. 在Oracle数据库中,哪个命令用于查看表的结构?- A. DESCRIBE table_name- B. EXPLAIN table_name- C. DESC table_name- D. SHOW table_name答案:C5. Oracle数据库中,哪个命令用于插入数据?- A. INSERT INTO- B. ADD INTO- C. PUT INTO- D. SET INTO答案:A#### 二、简答题1. 简述Oracle数据库的体系结构。
- Oracle数据库的体系结构主要包括内存结构和存储结构。
内存结构包括系统全局区(SGA)和程序全局区(PGA)。
存储结构包括数据文件、控制文件和重做日志文件。
SGA是所有数据库进程共享的内存区域,包含了数据库缓冲区、重做日志缓冲区等。
PGA是每个服务器进程或后台进程的私有内存区域。
2. 什么是PL/SQL?它在Oracle数据库中的作用是什么?- PL/SQL是Oracle数据库的过程式扩展,它允许用户定义存储过程、函数、触发器等。
PL/SQL结合了SQL语句和过程式编程的特性,使得数据库编程更加灵活和强大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.用sqlplus连接数据库时,为什么会出Oracle not available错误?Oracle server(即通常所说的数据库)是否启动,ORACLE_SID是否正确设置。
2.找出员工的姓中(last_name)第三个字母是a的员工名字select last_name from s_emp where last_name like '_ _a%';3.找出员工名字中含有a和e的select first_name from s_emp where first_name like '%a%' and first_name like '%e%';比较:select first_name from s_emp where first_name like '%a%e%';此种方式查询出来的数据,只是先出现“a”然后出现“e”的数据表记录。
总的记录条数可能少于第一种方式的。
4.找出所有有提成的员工,列出名字、工资、提出,显示结果按工资从小到大,提成从小到大.select first_name,salary,commission_pct from s_emp where commission_pct is not null order by salary desc,commission_pct;5.42部门有哪些职位select distinct title from s_emp where dept_id=42;6.哪些部门不是Sales部select id,name,region_id from s_dept where name <> 'Sales';注意大小写!7.显示工资不在1000到1550之间的员工信息:名字、工资,按工资从大到小排序。
select first_name,salary from s_emp where salary not between 1000 and 1550 order by salary desc;需要使用到not between and 函数,不能使用salary > 1550 and salary <10008.显示职位为Stock Clerk和Sales Representative,年薪在14400和17400之间的员工的信息:名字、职位、年薪。
select first_name,title,salary*12 ann_sal from s_emp where title in ('Stock Clerk','Sales Representative') and salary between 1200 and 1450;注意把年薪的范围换算成了每月的工资salary,而不是salary*12。
以提高查询效率。
9.解释select id,commission_pct from s_emp where commission_pct is null和select id,commission_pct from s_emp where commission_pct = null的输出结果。
is null判断是否为空,= null判断某个值是否等于null,null=null和null<>null 都为null。
第一条语句有输出结果,就是没有提成的ID号。
第二条语句没有输出。
10.select语句的输出结果为select * from s_dept;select * from s_emp;select * from s_region;select * from s_customer;……当前用户有多少张表,结果集有多少条记录。
select 'select * from '||table_name||';' from user_tables;11.判断select first_name,dept_id from s_emp where salary > '1450'是否抱错,为什么?隐式数据类型转换✧(CORE-E-002)综合练习▪定义CORE-F-006——CORE-F-008的综合练习:1.改变NLS_LANG的值,让select to_char(salary*12,’L99,999.99’) from s_emp输出结果的货币单位是¥和$setenv NLS_LANG 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'setenv NLS_LANG 'AMERICAN_7ASCII'L99,999.99和L00,000.00的区别:99,999.99只显示有效位数;00,000.00的方式默认显示位数大于有效位数,以0填充。
2.列出每个员工的名字,工资、涨薪后工资(涨幅为8%),元为单位进行四舍五入select first_name,salary,round(salary*1.08) from s_emp;3.找出谁是最高领导,将名字按大写形式显示select upper(first_name) from s_emp where manager_id is null;4.Ben的领导是谁(Ben向谁报告)。
select e1.first_name from s_emp e1,s_emp e2 where e2.manager_id = e1.id and e2.first_name = 'Ben';用子查询也可以实现,如下:select first_name from s_emp e1,s_emp e2 where id = (select manager_id from s_emp where first_name = 'Ben');5.Ben领导谁。
(谁向Ben报告)。
select e1.first_name from s_emp e1,s_emp e2 where e1.manager_id = e2.id and e2.first_name = 'Ben';6.哪些员工的工资高于他直接上司的工资,列出员工的名字和工资,上司的名字和工资7.哪些员工和Biri(last_name)同部门8.哪些员工跟Smith(last_name)做一样职位9.哪些员工跟Biri(last_name)不在同一个部门10.哪些员工跟Smith(last_name)做不一样的职位11.显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称12.显示Operations部门有哪些职位13.整个公司中,最高工资和最低工资相差多少14.提成大于0的人数15.显示整个公司的最高工资、最低工资、工资总和、平均工资,保留到整数位。
16.整个公司有多少个领导17.列出在同一部门入职日期晚但工资高于其他同事的员工:名字、工资、入职日期(CORE-E-003)综合练习定义CORE-F-009——CORE-F-011的综合练习:1.各个部门平均、最大、最小工资、人数,按照部门号升序排列2.各个部门中工资大于1500的员工人数3.各个部门平均工资和人数,按照部门名字升序排列4.列出每个部门中有同样工资的员工的统计信息,列出他们的部门号,工资,人数5.该部门中工资高于1000的员工数量超过2人,列出符合条件的部门:显示部门名字、地区名称6.哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)7.哪些员工的工资,介于32和33部门(33高些)平均工资之间8.所在部门平均工资高于1500的员工名字9.列出各个部门中工资最高的员工的信息:名字、部门号、工资10.最高的部门平均工资值的是多少11.哪个部门的平均工资是最高的,列出部门号、平均工资。
12.哪些部门的人数比32号部门的人数多13.Ben的领导是谁(非关联子查询)14.Ben领导谁(非关联子查询)15.Ben的领导是谁(关联子查询)16.Ben领导谁(关联子查询)17.列出在同一部门共事,入职日期晚但工资高于其他同事的员工:名字、工资、入职日期(关联子查询)18.哪些员工跟Biri(last_name)不在同一个部门(非关联子查询)19.哪些员工跟Biri(last_name)不在同一个部门(关联子查询)20.Operations部门有哪些职位(非关联子查询)21.Operations部门有哪些职位(关联子查询)(CORE-E-004)综合练习定义CORE-F-012——CORE-F-017的综合练习:1.工资在1500至3000之间的员工,各自工作的年限(四舍五入,降序)。
2.公司规定,每个员工在工作25年的第一个周五,可以申请退休,查询每个员工的这天显示格式:2010-01-013.显示员工的名字、入职日期、周几入职(用英文全拼),显示顺序从周一至周日。
4.写一个sql脚本,实现多对多关系(暂时不实现约束):学生表、课程表、学生选课表,学生表包含如下信息:学号、姓名、性别、出生日期、政治面貌,课程表包含如下信息:课程号、课程名称、学分、学时、学期,学生选课表包含如下信息:学号、课程号、成绩并插入数据。
Create table student(Id char(10),Name varchar2(20),Gender char(2),Birth date,Party varchar(10));Create table course(Id char(10),Name varchar2(20),Credit number(2,1),Period number(3),Term number(1));Create table st_c(Sid char(10),Cid char(10),Grade number(3,1));Insert into student values('2006015001','Mary','F','15-MAY-1988','A');Insert into student values('2006015002','John','M','15-JAN-1988','A');Insert into student values('2006015003','Kitty','F','23-MAY-1987','B');Insert into student values('2006015004','Tony','M','18-MAY-1989','A');Insert into student values('2006015005','Elice','F','15-MAY-1989','B');Insert into course values('MUST200901','Data structure',4,72,2);Insert into course values('MUST200902','Operating Systems',2,54,1);Insert into course values('MUST200903','Design Pattern',4,72,2);Insert into course values('MUST200904','Core Java',5,108,1);Insert into st_c values('2006015001','MUST200901',85);Insert into st_c values('2006015001','MUST200902',90);Insert into st_c values('2006015001','MUST200903',85);Insert into st_c values('2006015002','MUST200902',92);Insert into st_c values('2006015002','MUST200903',78);Insert into st_c values('2006015004','MUST200901',96);Insert into st_c values('2006015004','MUST200902',86);Insert into st_c values('2006015004','MUST200903',98);Insert into st_c values('2006015004','MUST200904',70);Insert into st_c values('2006015003','MUST200904',67);5.在建好表的基础上完成查询:某个学生选了哪些课程。