姓名
一、选择题(每题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
d) 无法限定分组函数的返回
3,在Oracle PL/SQL中,执行动态SQL的语句是(D)
d) EXECUTE IMMEDIATE
4,下列表空间中 __(D)__表空间是运行一个数据库必须的一个表空间。
B)TOOLS
D)SYSTEM
5, PL/SQL代码段中注释符号是___(C)___。
A) // B) \\\\ C) -- D) ,
6,在PL/SQL代码段的异常处理块中 捕获所有异常的关键词是______。 (A)
A、O、A、E、ERRORS
7, SQL语句中修改表结构的命令是 (C) 。
A、M、MODIFY STRUCTURE C、A、ALTER STRUCTURE
8,在oracle中获取前10条的关键字是(D)
A) top B)L)first D) rownum
9,下面那个不是oracle程序设计中的循环语句( A)
… …e…e… 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)以不同的用户身份生成对象。 删除现有同名对象
C)改变生成对象中的列名。 更名现有同名对象。
15,删除Oracle数据库中父/子关系中的父表。在删除父表时下列哪个对象不会删除?(B)
A)相关约束 子表 相关触发器 相关索引
16,下面哪一个SQL语句将删除DEPT表中的所有行?(D)
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 ;下载本文