Oralce数据库笔试题一套

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 142 收藏 0 点赞 0 评论 0

Oralce数据库

一、选择题

1、在SQL的查询语句中,用于分组查询的语句是(  C  )。

A)ORDER BY    B)WHERE     C)GROUP BY   D)HAVING

2、在“学生情况.DBF”表中,查询计算机专业、助学金大于40元的学生的姓名,正确的语句是(  C  )。

A)SELECT 姓名 FROM 学生情况 WHERE 计算机 .AND.助学金<40

B)SELECT 姓名 FROM 学生情况 WHERE 专业=“计算机”.OR.助学金>40

C)SELECT 姓名 FROM 学生情况 WHERE 专业=“计算机”.AND.助学金>40

D)SELECT 姓名 FROM 学生情况 WHERE 专业=“计算机”.AND.助学金<40

3、下列SQL语句中,修改表结构的是(  A  )。

A)ALTER    B)CREATE    C)DESC         D)RENAME

4、已知职工表EMP有工号E_NO和工资E_SAL两个字段。从职工关系中检索所有工资值,要求在输出结果中没有重复的工资值,则SQL的命令语句能实现上述功能的是( B  )。

A)SELECT  ALL  E_SAL  FROM  EMP

B)SELECT  DISTINCT   E_SAL  FROM  EMP

C)SELECT  E_SAL  FROM  EMP

D)SELECT  E_SAL  WHERE  EMP

5、请选出属于DML的选项(  C )

A) TRUNCATE   B)CREAT   C)DELETE   D)DROP

6、视图存放在哪里(B)

A.数据库的表中                     B.数据字典的select语句中

C.from列表的第一个表格的select语句中  D.列表的第二个表格的select语句中

7、当fetch执行失败时,哪种游标的属性值为true(C)

A.%isopen         B.%found       C.%notfound        D.%rowcount

8、下列那些说法是正确的(B )

A)   一个事务中的某条SQL命令提交时,其它SQL命令可以不提交。

B)    在一个关系表中,主键可唯一标识一行记录。

C)    一个关系表中的外键必定是另一表中的主键。

D)   回滚可以在事务失败时,回到操作事务前的数据状态。

9、假如一个变量的值为nuLL,有一条if语句,

    if变量=NULL

分支1

else

分支2

请问最终执行的结果是(B)

  A) 分支1   B)分支2  C)系统错误提示   D)都没有执行

10、关于主键(primary key)和唯一索引(unique index)的说法哪些是错误的?(A)

A、唯一索引的列允许为NULL值

B、   主键的列不允许为NULL值

C、   一个表只能有一个唯一索引

11、教师信息表teacher包含以下字段:

LAST_NAME   VARCHAR2(25)

FIRST_NAME   VARCHAR2(25)

EMAIL          VARCHAR2(25)

下面哪个语句可以显示无EMAIL地址的教师的姓名( C )

SELECT last_name,fist_name from teacher where email=null

SELECT last_name,first_name from teacher where email<>null

SELECT last_name,first_name from teacher where email IS null

SELECT last_name,first_name from teacher where email IS NOT NULL

12、在执行一个查询时哪个是正确的顺序?(C)

    A、解析、执行         B、执行、解析、获取

C、解析、执行、获取   D、解析、获取

13、如下语句

if V_num>5 then

v_example:=1:

elSif V_num>10 then

v_example:=2:

elSif v_hum<20 then

v_example:=3:

elsif v_num<39 then

v_example:=4:

else v_example:=5:

如果v num=37,则v—example的值是多少()

A、1 B、2 C、3 D、4   E、5

二、判断对错

1、一个表空间可以含有多个数据文件,一个数据文件也可以跨多个表空间。一个表不可以跨表空间( 错误 )

2、一个表test 有字段 id,name,age,address,email,salary删除age 大于平均年龄的记录

这样写可以吗? delete from test where  age > avg(age);  ( 错误 )

3、BETWEEN AND运算符是否既可以用于数值表达式,又可以用于字符表达式? (  正确  )

二、简答题:

1、用SQL语句写出以下操作

a、           建一张数据表EMP(职工信息表),包含工号、姓名、性别、部门、年龄、工资等字段。

Create table EMP

(

ID NUMBER,

NAME VARCHAR2(20),

SEX CHAR(4),

DEPARTMENT VARCHAR2(20),

AGE NUMBER,

SALARY NUMBER(6,2)

);

b、          往该数据表中添加一条记录。

INSERT INTO EMP VALUES(1,’XIAOZHANG’,’男’,’销售部’,23,1200.0);

c、          假设该表中存在3000条员工的相关信息,要求显示所有年龄在20到30岁之间的人员记录

SELECT * FROM EMP WHERE AGE BETWEEN 20 AND 30;

d、          假设有一个销售部,请给出销售部门所有女职员的工资总数

SELECT SUM(SALARY) FROM EMP WHERE DEPARTMENT=’销售部’ AND SEX=’女’;

e、          为了提高操作该表的性能,给表按年龄分区,20以下分为 youth,20到30为mid1, 30到40 为mid2,40到60 为old

2、    什么是DDL、什么是DML,请分别列举一些。

DDL是数据定义语言,建立、删除和修改数据对象。

例如:CREATE,DROP,ALTER.

DML是数据操纵语言,完成数据操作的命令,包括查询。

例如:SELECT,INSERT,UPDATE,DELETE

3、    视图占空间吗?修改视图是否改变基表,为什么?

定义:视图是查看数据表中的一种方法。(当一些用户需要经常访问和查询数据表中的某些字段构成的数据,但管理员从安全角度考虑又不希望他们直接接触数据表时,可以利用Oracle数据库提供的视图这一数据对象)。(视图不是数据表,它仅是一些SQL查询语句的集合,作用是按照不同的要求从数据表中提取不同的数据。

4、    游标是什么,作用是什么,使用游标的步骤是什么写一个使用游标的例子

定义:游标是为处理SQL的select语句而分配的一大块内存。

作用:

步骤:

(1)       声明游标

(2)       打开游标

(3)       提取数据

(4)       关闭游标

例子:

declare

cursor student_id is

select student_id from studentinfo order by studentno;

studenta studentinfo.student_id%type

for each row

begin

open student_list;

loop

fetch student_list into studenta;

dbms_output.put_line(‘student_id’||studenta);

exit when student_list%notfound;

dbms_output.put_line(‘已经到文件尾!’);

end loop;

close student_list;

end;

5、    存储过程是什么,为什么比一般语句更快,写一个简单的存储过程。

定义:过程(procedure)是一个PL/SQL语句块,它存储在数据字典中并可被应用程序调用,可以使用过程存储数据库中频繁使用的应用逻辑。(使用存储过程的一个好处是能够实施数据的安全性)

原因:因为存储过程是预编译的,所以比一般的语句更快。

例子1:

create or replace procedure print_current_time as

curtime varchar2(20);

begin

select to_char(sysdate,’yyyy/mm/dd hh24:mi:ss’)

into curtime

from dual;

dbms_output.put_line(‘当前时间是:’||chr(9)||curtime);

end print_current_time;

例子2:

create or replace procedure print_parameter

(

p_Parameter in varchar2 default null

)

as

begin

if(p_Parameter is null) then

dbms_output.put_line(‘你没有输入参数’);

else

dbms_output.put_line(‘你输入的参数是:’||chr(9)||p_Parameter);

end if;

end print_parameter;

 

评论列表
文章目录