ORACLE-笔试题及答案

更新时间:2024-01-18 18:54:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ORACLE考题

姓名

一、选择题(每题1.5分)

1,如何删除sales表中产品类型为toys的profits列的列值?  (A) a) UPDATE sales SET profits = NULL WHERE product_type = 'TOYS'  b) DELETE profits FROM sales WHERE product_type = 'TOYS' c) DELETE FROM sales WHERE product_type = 'TOYS' d) DELETE FROM sales

2,在Oracle中,下面用于限制分组函数的返回值的字句是(B) a) WHRER b) HAVING

c) ORDER BY

d) 无法限定分组函数的返回

3,在Oracle PL/SQL中,执行动态SQL的语句是(D) a) NXECUTE b) START c) RUN

d) EXECUTE IMMEDIATE

4,下列表空间中__(D)__表空间是运行一个数据库必须的一个表空间。 A)ROLLBACK B)TOOLS

C)TEMP

D)SYSTEM

5, PL/SQL代码段中注释符号是___(C)___。 A) // B) \\\\ C) -- D) ,

6,在PL/SQL代码段的异常处理块中捕获所有异常的关键词是______。 (A) A、OTHERS B、ALL C、Exception D、ERRORS

7, SQL语句中修改表结构的命令是 (C) 。

A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE STRUCTURE

8,在oracle中获取前10条的关键字是(D)

A) top B)Limit C)first D) rownum

9,下面那个不是oracle程序设计中的循环语句( A)

A) for… end for B) loop…end loop C) while…end loop D、ALTER D) for…

end loop

10,以下哪个不是数据库的物理组件(A)。

A) 表空间 B) 数据文件 C) 日志文件 D) 控制文

11,请根据PRODUCT_NAME列从PRODUCT表查询中过滤返回的数据。下列哪个子句包含相应过滤条件的引用?(C)

A)select B)from C)where D)having

12,请从订单表中取得数据,其中包括三个列客户名、订单时间与订单费用。可以用下列哪个where子句查询ORDERS表,取得客户A超过2700的订单?(D) A)where 客户名= ‘A’;

B)where 客户名= ‘A’ and 订单费用 < 2700; C)where 客户名= ‘A’ or 订单费用 > 2700; D)where 客户名= ‘A’ and 订单费用 > 2700;

13,Oracle中要生成数据库表,下列哪个选项是无效表生成的语句?(D)

A)create table cats(c_name varchar2(10), c_weight number, c_owner varchar2(10)); B)create table my_cats as select * from cats where owner = ‘ME’;

C)create global temporary table temp_cats(c_name varchar2(10), c_weight number, c_owner varchar2(10));

D)create table 51cats as select c_name, c_weight from cats where c_weight > 5;

14,试图在Oracle生成表时遇到下列错误:ORA-00955-name is already used by existing object。下列哪个选项无法纠正这个错误?(C)

A)以不同的用户身份生成对象。 B)删除现有同名对象 C)改变生成对象中的列名。 D)更名现有同名对象。

15,删除Oracle数据库中父/子关系中的父表。在删除父表时下列哪个对象不会删除?(B) A)相关约束 B)子表 C)相关触发器 D)相关索引

16,下面哪一个SQL语句将删除DEPT表中的所有行?(D)

A)DROP TABLE dept; B)DELETE FROM dept; C)TRUNCATE TABLE dept; D)DELETE *.* FROM dept

17,下面哪一个SQL语句将USER表的名称更改为USERINFO? (C) A)ALTER TABLE USER RENAME AS USERINFO; B)RENAME TO USERINFO FROM USER; C)RENAME USER TO USERINFO; D)RENAME USER AS USERINFO;

18,假定USER表的PRIMARY KEY约束名为USER_ID_PK,下面哪一个语句将删除这个约束?(C) A)DROP CONSTRAINT USER_ID_PK;

B)ALTER TABLE USER DROP USER_ID_PK;

C)ALTER TABLE USER DROP CONSTRAINT USER_ID_PK; D)ALTER TABLE USER DROP PRIMARY KEY;

19,哪个函数能返回字符串的首字符。(B) A)LTRIM B)RTRIM C)MOD D)INSERT

20,哪个语句不会建立隐式事务?(D)

A)INSERT B)UPDATE C)DELETE D)SELECT

21,在Oracle中,下面哪条语句当COMM字段为空时显示0,不为空时显示COMM的值(A)。 A)select ename, nvl(comm.,0) from emp; B)select ename, null(comm.,0) from emp; C)SELECT ename,NULLIF(comm,0)FROM emp; D)SELECT ename,DECODE(comm.,NULL,0)FROM emp;

22,在Oracle 中,下列不属于字符数据类型的是(D) A)VARCHAR2 B)LONG C)LONG RAW D)CLOB

23,检查下列SQL的输出

SQL> select a.deptno,a.job,b.loc,sum(a.sal) 2 from dmp a,dept b

3 where a.deptno = b.depton 4 group by a.deptno,a.job,b.loc

5 order by sum(a.sal);

这个查询按哪个列的顺序返回输出?( D )

A)A.DEPTON B)A.JOB C)B.LOC D)SUM(A.SAL)

24,Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是(C)

A)select seq.ROWNUM from dual; B)select seq.ROWID from dual; C)select seq.CURRVAL from dual; D) select seq.NEXTVAL from dual;

25,在Oracle中,当控制一个显式游标时,以下哪种命令包含INTO子句( C ) A)OPEN B)CLOSE C)FETCH D)CURSOR

26,在表table中有列的col1,其数据类型为INTERGER,在PL/SQL的DECLARE部分声明了一个变量var1,语句为: Var1 tabl.col1%TYPE; 不久后,执行了语句:

ALTER TABLE tabl MODIFY (col1 (NUMBER (5,2))); 则var1 的数据类型为 ( B ) A)整数型 B)数值型 C)字符型 D)以上皆非

27,在Oracle中,( C )操作符返回两个查询所选定的所有不重复的行 A)Intersect B)Minus C)Union D)Or

28,在Oracle中。关于程序包的描述错误的是(B)

A)程序包是一中数据对象,它是对相关PL/SQL类型,子程序,游标,异常,变量和常量的封装

B)程序包中私有对象是通过PRIVATE关键字表示的

C)PL/SQL允许两个或多个打包的子程序具有同一名字,只需要子程序接受的参数数据类型不同

D)程序包具有模块化,信息影藏,新加功能及性能更佳等优点

29,在 Oracle中,下列(C)语句定义了一个游标。

A)CURSOR cur For SELECT * FROM cd WHERE category=’ROCK’ B)CREATE CURSOR cur FOR SELECT * FROM cd WHERE category=’ROCK’: C)CURSOR cur IS SELECT * FROM cd WHERE category=’ROCK’;

D)CREATE CURSOR cur IS SELECT * FROM cd WHERE category=’ROCK’;

30,下面对序列venseq修改的语句,错误的是( A ). A)ALTER SEQUENCE venseq START WITH 1 B)ALTER SEQUENCE venseq MAXVALUE 90 C)ALTER SEQUENCE venseq NOMINVALUE D)ALTER SEQUENCE venseq NOCACHE

31,TEST表包含两个列,TESTCOL定义为数据类型NUMBER(10),TESTCOL_2定义为数据类型VARCHAR2(10)。在Oracle中发出下列语句:insert into test(testcol, testcol_2) values (null, ‘FRANCIS’),然后对表进行下列查询:select nvl(testcol, ‘EMPTY’) as testcol from test where testcol_2 = ‘FRANCIS’。下列选项哪个是得到的结果?(D) A)Oracle返回结果0 B)Oracle返回结果EMPTY C)Oracle返回结果NULL D)Oracle返回错误结果

32,要从ORDERS表中取得数据,其中包括三个列CUSTOMER、ORDER_DATE与ORDER_AMT。可以用下列哪个where子句查询ORDERS表,取得客户LESLIE超过2700的订单?(D) A)where customer = ‘LESLIE’;

B)where customer = ‘LESLIE’ and order_amt < 2700; C)where customer = ‘LESLIE’ or order_amt > 2700; D)where customer = ‘LESLIE’ and order_amt > 2700;

33,用下列代码块回答问题:(A)

SQL> select ______(-45) as output from dual;

OUTPUT ------ -45

下列哪个单行函数无法产生这个输出?

A)abs() B)ceil() C)floor() D)round()

34,对表中的某一行,VARCHAR2列包含数值SMITHY,应用程序在右侧填充七个空格。length()函数处理这个列值时,返回什么值?(B)

A)6 B)13 C)30 D)60

35,SQL *Plus中发出的下列语句:

SQL> select ceil(-97.342),

floor(-97.342), round(-97.342), trunc(-97.342) from dual;

下列哪个函数不返回结果-97?(B)

A)ceil() B)floor() C)round() D)trunc()

36,SQL *Plus中发出的下列语句:

SQL> select ceil(256.342),

floor(256.342), round(256.342), trunc(256.342) from dual;

下列哪个函数不返回结果256?(A)

A)ceil() B)floor() C)round() D)trunc()

37,在Oracle中发出的下列查询:

SQL> select months_between(‘15-MAR-83’,’15-MAR-97’) form dual; Oracle返回什么?(D)

A)14 B)-14 C)168 D.-168

38,你要在Oracle中使用日期信息的格式掩码。下列哪种情形不适合这个格式掩码?(D)

A)to_date() B)to_char() C)alter session set nls_date_format

D)to_number()

39,数据库中有两表PRODUCT与STORAGE_BOX,PRODUCT表中列出各个产品的惟一ID号、产品名和特定产品所在的箱子。另一个表中列出各个存储箱(用数字标识)可以包含许多产品,但每个箱子只能在一个地方。下列哪个语句能正确显示这个数据库中所有产品ID、名称和箱子地址?(C)

A)select p.prod_id, p.prod_name, b.box_loc from product p, storage_box b where p.prod_id = b.prod_id and prod_name=’WIDGET’;

B)select p.prod_id, p.prod_name, b.box_loc from product p, storage_box b where prod_name=’WIDGET’;

C)select p.prod_id, p.prod_name, b.box_loc from product p, storage_box b where p.stor_box_num = b.stor_box_num and prod_name=’WIDGET’;

D)select prod_id, prod_name, box_loc from product , storage_box where stor_box_num = stor_box_num and prod_name=’WIDGET’;

40,开发报表时,要连接三个表的信息,这些表为EMP、DEPT与SALGRADE。只需要公司10级以上员工相应的员工、部门地址与工资范围的记录。这个查询需要多少比较运算?(B) A)2 B)3 C)4 D)5

二、简答题(每题3分)

1 . Truncate与 delete的区别?

答案: delete一般用于删除少量记录的操作,而且它是要使用回滚段并且要进行显示的提交事务。而truncate则使用于大量删除数据,而且隐式提交事务,其速度要比使用delete快的

2. DDL和DML分别代表什么?

答案: DDL表示数据定义语言,在ORACLE中主要包括CREATE,ALTER,DROP;

DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE.

3. 超键、主键、候选键的定义?

答案:超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键。

候选键(candidate key):不含有多余属性的超键称为候选键。(候选键可以有多个) 主键(primary key):用户选作元组标识的一个候选键称为主键。(主键是候选键中一个) 4. oracle中如何获取系统时间? 答案:select sysdate from dual;

5..表的约束有哪几种?分别起什么作用? 答案:

1. 主键约束:列值不能为空,不能重复 2. 唯一值约束:列值不能重复

3. 检查约束:列值要满足检查条件

4. 外键约束:列值要么是主表参照咧的值,要么是空值 5. 空/非空约束:列值为空或者非空。

三、模拟题(共25分)

1. 表:user;字段:姓名,年龄,性别,手机号(11位) 现在需要查出所有号码为186开头并且第6位是0,第9位是1的用户姓名。(5分) 答案:SELECT 姓名 FROM user WHERE 手机号 LIKE '186__0__1__'; 或者SELECT 姓名 FROM user WHERE 手机号 LIKE '186__0__1__%';

2. emp为部门员工表。(20分) 字段deptno为部门编码;ename为员工姓名;empno为员工编号;佣金为comm;薪金为sal;

1. 选择部门编码为30中的所有员工 select * from emp where deptno = 30; 2. 找出佣金高于薪金的员工 select * from emp where comm > sal; 3. 找出佣金高于薪金60%的员工 select * from emp where comm > (0.6)*sal;

4.找出不收取佣金或收取的佣金低于100的员工

select * from emp where comm isnull or comm < 100; 5. 显示员工的详细资料,按姓名排序 select * from emp order by ename ;

本文来源:https://www.bwwdw.com/article/kr5o.html

Top