oracle数据库试题(2)

2019-01-05 13:30

32.ORACLE中,执行语句:SELECT

address1||’,'||address2||’,'||address2 ”Address” FROM employ;将会

返回( B )列。 A 0 B 1 C 2 D 3

33.在Oracle中,INSTEAD OF触发器主要用于( D )。 A 表 B 表和视图 C 基于单个表的视图 D 基于多个表的视图 34. Oracle数据库中,通过( B )访问能够以最快的方式访问表中的一行。

A 主键 B Rowid C 唯一索引 D 整表扫描 35.Oracle数据库中,以下( C )命令可以删除整个表中的数据,并且无法回滚。A drop B delete C truncate D cascade 36. Oralce数据库中,以下( A )函数可以针对任意数据类型进行操作。

A TO_CHAR B LOWER C MAX D CEIL 37.在Oracle中,以下是STUDENTS表的结构:

SID NUMBER NOT NULL,Primary Key SNAME VARCHAR2(30) COURSE_ID VARCHAR2(10) NOT NULL MARKS NUMBER 你需要查询参加了课程ID为C10的考试,并且分数排在前10名的学生,以下( D )语句能够实现此功能。 A. SELECT SID,marks,ROWNUM “Rank”FORM students WHERE ROWNUM<=10 AND course_id=’C10′ORDER BY marks DESC; B.SELECT SID,marks,ROWNUM”Rank”FORM students HERE ROWNUM<=10 AND course_id=’C10′ORDER BY marks; C.SELECT SID,marks,ROWNUM”Rank” FORM (SELECT SID ,marks FORM students WHERE ROWNUM<=10 AND course_id=’C10′ORDER BY marks DESC;

D.SELECT SID,marks,ROWNUM”Rank”FORM (SELECT SID ,marks FORM students WHERE course_id=’C10′ ORDER BY marks DESC) WHERE ROWNUM<=10;

38. 在Oracle中,用于PL/SQL程序输出调试信息的内置程序包是(D ) A DBMS_STANDARD B DBMS_ALERT C DBMS_LOB D DBMS_OUTPUT

39. 在Oracle中,下列( B)语句不能用于控制游标。

A Open B Create C Fetch D Close 40.在Oracle中有表”cd”,它包含属性”cdcode”,”category”和”cdname”,要查询category取值为”CLASSIC”或”ROCK”的行,应采用语

句( AD)。* A SELECT * FROM cd WHERE category IN (‘CLASEIC’,'ROCK’); B SELECT * FROM cd WHERE category BETWEEN ‘CLASSIC’ AND ‘ROCK’;

C SELECT * FROM cd WHERE category=’CLASSIC’ AND category=’ROCK’; D SELECT * FROM cd WHERE category=’CLASSIC’ OR category=’ROCK’; 41. 在Oracle中,在执行SQL语句时,你不小心使用Update命令将所有的ID

值设置成了11111,那么使用( C)命令可以取消这一操作。 A EXIT B COMMIT C ROLLBACK D UNDO

42.在Oracle 中,使用了如下的语句创建用户TOM,则对于该用户而言,以下说

法错误的是( D )。 CREATE USER TOM IDENTIFIED BY TOMSYS; A 该用户的口令为TOMSYS B TOM默认为表空间为SYSTEM C TOM 的临时表空间为TEMP D 使ORANT UPDATE 命令可以修改TOM的口令 43.游标变量的类型是( B ) A 隐式游标 B 显示游标 C REF游标 D 循环游标 44. 使用(B )命令可查看在创建触发器时发生的编译错误

A View errors B Show errors C Display errors D Check errors 45. (A )触发器允许触发操作的语句访问行的列值 A 行级 :old :new B 语句级 C 模式 D 数据库级

46. Oracle内置程序包由( A )用户所有

A sys B system C scott D Pub lic

47、数据完整性实质,存储在数据库中的数据正确无误并且相关数据具有一致性,根据完整性机制所作用的数据库对象和范围不同,可以分为: ( B ),( A ),

( C ),( D ),其中外键可以实现( C ) 。主键可以实现( A )。 A 实体完整性 B 域完整性 C参照完整性 D自定义完整性

48. 在数据库的表中,( A )是指表中的某一列(或某些列),该列的值唯一标

识 一行。 A 主键 B 外键 C 唯一键 D 次键

49. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是

( D );若要创建一个表,应该使用的语句是( B )。 A alter database B create table C create database D alter table 50. 在以下( B )情况下使用主键约束而不使用唯一约束:

A 列的值允许为空值 B 列有外键引用 C 列的值不允许为空值 D 以上都不对

二、编写SQL语句(总分12分,每题3分)6

1.创建一张学生表,包含以下信息:学号,姓名,年龄,性别,学历,联系电话。

CREATE TABLE STUDENT(

STUNO VARCHAR2(10) PRIMARY KEY, NAME VARCHAR2(20) NOT NULL, AGE NUMBER NOT NULL, SEX CHAR(10) ,

EDU VARCHAR2(20) NOT NULL, IPHONE NUMBER(11) NOT NULL );

2.向学生表添加如下信息:

1 A 22 男 123456 小学 2 B 21 男 119 中学

3 C 23 男 110 高中 4 D 18 女 114 大学 INSERT INTO STUDENT VLAUSE(1,‘A’,22,’男’,123456,’小学’); INSERT INTO STUDENT VLAUSE(2,‘B’,21,’男’,119,’中学’); INSERT INYO STUDENT VLAUSE(3,‘C’,23,’男’,110,’高中’); INSERT INTO STUDENT VLAUSE(4,‘D’,18,’女’,114,’大学’);

3. 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” Update stu set degree = ‘大专’where phone like ‘11%’ 4. 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 Delete from stu where name like ‘C%’ and sex = ‘男’

三、编写SQL语句(总分30分,每题5分)20

有一个“学生-课程”数据库,数据库中包括三个表:

(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年

龄(Sage)、 所在系(Sdept)五个属性组成。 可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。 (2) “课程”表Course由课程号(Cno)、课程名(Cname)、选修课号(Cpno)、学分 (Ccredit)四个属性组成。 可记为: Course(Cno,Cname,Cpno,Ccredit) Cno 为关键字。 (3)“学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成。 可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。 完成下列操作: 1. 在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别

select student.Sno,Sname,Ssex from student, course, sc where (student.Sno=sc.Sno) and (course.Cno=sc.Cno) and (course.Ccredit=5) and (sc.Grade>60)

答案:select s.sno,s.sname,s.ssex from student s,course c,sc sc

where s.sno=sc.sno and c.cno=sc.cno and c.ccredit=5 and sc.grade>60

2 查询出“C语言”课程成绩前5名的学生的学号、姓名和所在系(含并列情况)。 Select top5 Sno,Sname,Ssex,Grade from student join SC C语言 on Cno =Sno order by Grade desc

答案select a.sno,a.sname,a.sdept,a.grade,rownum as 排名

from (select s.sno as sno,s.sname as sname,s.sdept as

dept,sc.grade as grade from student s,course c,sc sc where s.sno=sc.sno and c.cno=sc.cno and c.cname='C语言' order by sc. grade desc) a where a.rownum < 6

3 查询出各系学生人数。

Select Grade,count(*) as 人数 from student

答案select sdept as 系别,count(*) as 人数from student group by sdept

4 查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。

Select (select grade from sc where sname=’张三’and cname=’计算机应用基础’ jsj) student.Sno,Sname from SC where sc.grade>jsj;

答案select sc.grade from student s,course c,sc sc where s.sno=sc.sno

and c.cno=sc.cno and c.cname='计算机应用基础' and

sc.grade > (select sc.grade as a from student s,course c,sc sc where s.sno=sc.sno and c.cno=sc.cno and c.cname='计算机应用基础' and s.sname='张三')

5、查询学过编号为\但是没有学过编号为\的课程的同学的信息 Sleclt student from where found cno=1 and cno<>2;

答案select distinct sno from sc where cno='01' and sno not in

(select distinct sno from sc where cno='02')

6、按每位学生的总分划分成绩类别,90以上为A,80-90为B,70-80为C,60-70为D,其它为E。

答案

select s.sno,s.sname,sum(sc.grade) as 总分,

case when sum(sc.grade)>90 then 'A' when sum(sc.grade) between 80 and 89 then 'B' when sum(sc.grade) between 70 and 79 then 'C' when sum(sc.grade) between 60 and 69 then 'D' else 'E' end from student s,course c,sc sc

where s.sno=sc.sno and c.cno=sc.cno group by s.sno,s.sname

四、 建立存储过程(8分)

输入参数为课程号SN,返回本门课程的学号,姓名,课程号,分数结果集。

输入参数为课程号SN,返回本门课程的学号,姓名,课程号,分数

结果集。 答案参考课件

一、 建包

Create package 包名 as Type 游标名 is ref cursor; End; 二、 建存储过程

Create 过程名(游标参数名 out包名. 游标名) as

Begin Open游标参数名 for select * from xxxx; end;

三、通过块调用存储过程

Declare 四个变量声明

游标参数名 out包名. 游标名; Begin

过程名; Loop Fetch游标参数名 into 四个变量; Exit when游标参数名%notfound; 输出记录; End loop; end


oracle数据库试题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013高考政治最后冲刺考点盘点及精练精析 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: