Oracle数据库编程.doc

上传人:聆听****声音 文档编号:515712 上传时间:2023-04-29 格式:DOC 页数:19 大小:107.50KB
下载 相关 举报
Oracle数据库编程.doc_第1页
第1页 / 共19页
Oracle数据库编程.doc_第2页
第2页 / 共19页
Oracle数据库编程.doc_第3页
第3页 / 共19页
Oracle数据库编程.doc_第4页
第4页 / 共19页
Oracle数据库编程.doc_第5页
第5页 / 共19页
Oracle数据库编程.doc_第6页
第6页 / 共19页
Oracle数据库编程.doc_第7页
第7页 / 共19页
Oracle数据库编程.doc_第8页
第8页 / 共19页
Oracle数据库编程.doc_第9页
第9页 / 共19页
Oracle数据库编程.doc_第10页
第10页 / 共19页
Oracle数据库编程.doc_第11页
第11页 / 共19页
Oracle数据库编程.doc_第12页
第12页 / 共19页
Oracle数据库编程.doc_第13页
第13页 / 共19页
Oracle数据库编程.doc_第14页
第14页 / 共19页
Oracle数据库编程.doc_第15页
第15页 / 共19页
Oracle数据库编程.doc_第16页
第16页 / 共19页
Oracle数据库编程.doc_第17页
第17页 / 共19页
Oracle数据库编程.doc_第18页
第18页 / 共19页
Oracle数据库编程.doc_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Oracle数据库编程.doc

《Oracle数据库编程.doc》由会员分享,可在线阅读,更多相关《Oracle数据库编程.doc(19页珍藏版)》请在冰点文库上搜索。

Oracle数据库编程.doc

《Oracle数据库编程》练习

一、选择题(未标明多选的均为单选题)

1.关于Oracle中的实例描述,下列说法正确的是(多选):

(cd)

A.实例是保存在硬盘上的文件,它不会随着数据库的启动/关闭而存在或消失。

B.实例是内存中的结构,是一种访问数据库的方式。

C.可以用语句Selectinstance_nameFROMv$instance获得实例名。

D.一个实例可以访问多个数据库。

2.关于数据类型Char和Varchar2的描述,下列说法正确的是(多选):

(bd)

A.Char和varchar2都是字符型数据,Char是变长字符型,Varchar2是定长字符型。

B.某个字段类型为Char(200),那么对于这个字段的任何记录来说,所占的实际长度都为200个字符。

C.某个字段类型为Varchar2(200),那么对于这个字段的任何记录来说,所占的实际长度都为200个字符。

D.对于相同长度的Char和Varchar2类型数据,char的性能通常要比varchar2高。

3.关于对空值的描述,下列说法正确的是:

(a)

A.包含空值的任何算术表达式结果都等于空。

B.包含空值的连接字符串||等于与空字符串连接,结果还是空值。

(实践过,不是空值)

C.空值做为判断条件是写法是:

判断字段=null。

(isnull/isnotnull)

D.表Emp中有5条记录,empID分别为1,2,3,4,5,那么查询语句Select*fromEmpwhereempIDnotin(2,3,4,null)的执行后结果是2条记录。

(实践过,为0条记录)

4.已知05年7月25日是星期一,那么函数

TO_CHAR(NEXT_DAY(TO_DATE(’25-JUL-05’,’DD-MON-RR’),’MONDAY’),’DD-Month-YYYY’)结果是:

(B)

A.25-JULY-2005B.01-August-2005

C.25-JULY-2005D.26-JULY-2005

验证:

selectTO_CHAR(NEXT_DAY(TO_DATE('25-7月-05','DD-MON-RR'),'星期一'),'DD-Month-YYYY')fromdual;(验证的时候注意数据库的字符集问题)

5.如果EMPID所选的值是60494,下列函数执行后,结果是哪一项:

(b)

SELECTDECODE(empid,38475,'Terminated',60494,'LOA','ACTIVE')FROMEMP;

A.60494B.LOA

C.TerminatedD.ACTIVE

6.查询语句SELECTSUBSTR(‘HelloWorld’,4,5)FROMDUAL;返回结果,正确的是:

(a)

A.loWorB.World

C.lloWoD.loWo

7.查询语句SELECTROUND(13.57),ROUND(13.57,1),ROUND(13.57,-1),TRUNC(13.57,-2)FROMDUAL返回结果,正确的是:

(c)

A.13.57,13.6,10,13

B.13,13.5,14,0

C.14,13.6,10,0

D.13.6,13.5,11,13

8.语句WHERESALBETWEEN1000AND4000与下列哪个子句等价:

(a)

A.WHERESAL>=1000ANDSAL<=4000

B.WHERESAL>1000ANDSAL<4000

C.WHERESAL>=1000ORSAL<=4000

D.WHERESAL>=1000ANDSAL<4000

9.关于对UNION和UNIONALL的描述,下列描述正确的是(多选):

(ac)

A.UNION操作符返回两个查询结果集的并集,并去掉重复行。

B.UNIONALL操作符返回两个查询结果集的并集,并去掉重复行。

C.UNION操作符返回两个查询结果集的并集,并缺省按照第一列升序排序。

D.UNIONALL操作符返回两个查询结果集的并集,并缺省按照第一列升序排序。

10.数据库中有两张表,employees(雇员表),departments(部门表),如下图所示,如果想要获得全部雇员的信息,不管这个雇员是否被分配了部门,以下答案正确的是:

(d)

A.SELECTlast_name,department_nameFROMemployeesJOINdepartments(+)

B.SELECTlast_name,department_nameFROMemployees(+)JOINdepartments

C.SELECTlast_name,department_nameFROMemployeeseRIGHTJOINdepartmentsdON(e.department_id=d.department_id)

D.SELECTlast_name,department_nameFROMemployeeseLEFTJOINdepartmentsdON(e.department_id=d.department_id)

11.SQL语句SELECTdepartment_id,job_id,avg(salary)FROMemployeesWHEREdepartment_id=100GROUPBYjob_idHavingavg(salary)>2000中有错误的是哪一个子句:

(a)

A.SELECT子句B.WHERE子句

C.GROUPBY子句D.Having子句

12.关于子查询的描述,下列说法正确的是(多选):

(abd)

A.子查询必须要写在括号内。

B.子查询可以写在FROM,WHERE,HAVING子句中。

C.

D.子查询可以用在UPDATE的SET子句中。

13.关于模糊查询中通配符“_”描述正确的是:

(b)

A.“_”代表多个字符B.“_”代表一个字符

C.“_”不能与“%”一同使用D.“_”代表代表零个或多个字符

14.下列哪个约束只能定义在列级定义上:

(b)

A.UNIQUEB.NOTNULL

C.CHECKD.PRIMARYKEY

E.FOREIGNKEY

15.关于约束PRIMARYKEY和UNIQUE描述正确的是:

(b)

A.PRIMARYKEY和UNIQUE都可以定义在一个或多个列上。

B.UNIQUE可以定义在多个列上,PRIMARYKEY不可以。

C.PRIMARYKEY和UNIQUE约束的列都可以为空值。

D.PRIMARYKEY和UNIQUE约束在一个表中都可以有任意个。

16.关于对索引的描述,下列正确的是:

(a)

A.在一个表上可以建立多个索引。

B.索引可以增加查询的速度,所以建立索引越多越好。

C.索引通常建立在欲查询的表的数据量很大,并且查询最终得到的结果集也很大的情况下。

D.索引删除之后,索引所基于的表中的数据也被删除了。

17.SQL语句的执行顺序是:

(c)

selectfromwheregroupbyhavingorderby

A.123456B.234561

C.234516D.124563

18.查看序列S1的当前值,应该使用下列的哪一项:

(b)

A.S1.NEXTVALB.S1.CURRVAL

C.S1.MAXVALD.S1.MINVAL

19.关于ROWNUM的描述,下列正确的是:

(d)

A.ROWNUM是每个表中实际存在的列。

B.ROWNUM是每条查询语句执行完成之后,给每行数据填充的行号,行号从0开始。

(从1开始)

C.ROWNUM做为条件表达式时,可以使用任何算术运算符。

D.ROWNUM经常用来做为分页查询。

20.关于TRUNCATE和DELETE命令,下列描述正确的是:

(c)

A.两者都属于DML语句。

B.两者都不属于DML语句。

C.执行TRUNCATE命令之后,该会话中先前未提交的事务自动提交。

D.执行TRUNCATE命令之后,该会话中先前未提交的事务自动回滚。

21.关于使用AlTERTABLE进行修改表的定义,下列描述正确的是(多选):

(bcd)

A.使用该命令可以修改表的名称B.使用该命令可以修改列的名称

C.使用该命令可以修改列的数据类型D.使用该命令可以修改列的精度

22.关于Oracle中对锁的描述正确的是:

(d)

A.修改某个表中的某行数据,Oracle会自动锁住整个表。

(验证过,只是锁住一行)

B.执行查询语句,Oracle会自动对要查询的结果加上锁。

(没有锁上)

C.锁在被相关操作申请并持有后,该操作执行结束后,会马上释放。

(事务结束后才释放)

D.会话A在时间T1修改资源X,未提交;会话B在时间T2修改资源Y,未提交;会话A在时间T3修改资源Y,未提交;会话B在时间T4修改资源X;会产生死锁。

23.关于事务的描述,下列说法正确的是:

(b)

A.执行一个DDL或DCL语句后,事务自动开始。

B.执行一个DDL或DCL语句后,事务自动提交。

C.执行一个DDL或DCL语句后,事务自动回滚。

D.执行一个DDL或DCL语句后,对当前事务没有影响。

24.关于Oracle中用户的描述,下列选项正确的是(多选):

(cd)

A.Oracle中的所有用户都可以执行CreateUser命令。

(错)

B.使用CreateUser命令新建一个用户之后,该用户自动拥有了登录权限。

(错)

C.使用“DropUser用户名cascade”命令执行删除用户之后,该用户下的所有对象也自动被删除。

D.用户的授权可以通过直接授权,也可以通过角色来间接授权。

25.对于权限的授予,下列说法正确的是:

(d)

A.WITHGRANTOPTION选项可以实现系统权限的传递。

(对象权限)

B.WITHADMINOPTION选项可以实现对象权限的传递。

(系统权限)

C.以上两种说法都正确。

D.以上两种说法都不正确。

26.下面哪个SQL语句可以查询出名字当中有’A_B’这样的员工?

(单选)(d)

A.select*fromempwhereenamelike'%A\_B%'escape'\\';

B.select*fromempwhereenamelike'%A_B%'escape;

C.select*fromempwhereenamelike'A_B%'escape'%';

D、select*fromempwhereenamelike'%A\_B%'escape'\';

27.在SQLPlus当中,在命令提示行可以输入哪些命令(多选)?

(abcd)

A.pl/sql程序块

B.SQL*Plus命令

C.安全命令

D.SQL命令

28.在A、B两张表当中使用外连接A?

?

?

OUTERJOINB,如果期望返回记录中包含B表当中所有的记录,那么你在问号出需要写:

(单选)d

A.任何一种外连接

B.左外连接

C.交叉连接

D.右外连接

E.内连接

29.下列语句当中对于日期型数据使用trunc语句正确的是(单选)c

A.SELECTTRUNC(TO_DATE(12-Feb-99,DD-MON-YY,'YEAR'))"Date"FROMDUAL;

B.TRUNC=TO_DATE('12-Feb-99','DD-MON-YY'),'YEAR',"Date"FROMDUAL;

C.SELECTTRUNC(TO_DATE('12-Feb-99','DD-MON-YY'),'YEAR')"Date"FROMDUAL;

D.date=TRUNC(TO_DATE('12-Feb-99','DD-MON-YY'),'YEAR')"Date"FROMDUAL;

30.预使用grant语句授予权限,你必须(多选):

bd

A.被授予GRANTROLEPRIVILEGE系统权限

B.被授予带有ADMINOPTION的系统权限

C.被授予GRANTANYPRIVILEGE的系统权限

D.被授予带有GRANTOPTION的系统权限

31.下列SQL是什么含义?

(单选)b

SELECTemployee_idFROMemployeesWHEREcommission_pct=.5ORsalary>23000;

A.返回那些工资的50%大于23000的员工信息

B.返回那些佣金比率为50%或者工资大于23000的员工信息

C.运行时错误

D.语法错误

32.下列哪个语句能够返回-33的绝对值并且显示别名为Absolute(单选)c

A.SELECTABS("-33")AbsoluteFROMDUAL;

B.SELECTABS('-33')"Absolute"FROMDUAL;

C.SELECTABS(-33)"Absolute"FROMDUAL;

D.SELECTABS(-33),AbsoluteFROMDUAL;

33.学生表结构如下

STD_IDNUMBER(4)

COURSE_IDVARCHAR2(10)

START_DATEDATE

END_DATEDATE

下列子句中哪些是正确的?

ce

A.SUM(start_date)(number类型)

B.AVG(start_date)(number类型)

C.COUNT(start_date)

D.AVG(start_date,end_date)(参数无效)

E.MIN(start_date)

F.MAXIMUM(start_date)(没有这个函数)

34.视图emp_dept_vu结构如下,哪些语句是错误的?

(单选)e

ColumnNameTypeRemarks

FromtheEMPLOYEEStable:

EMP_NAMEVARCHAR2(30)

JOB_IDVARCHAR2(20)

SALARYNUMBER

DEPARTMENT_IDNUMBER

FromtheDEPARTMENTStable:

DEPT_NAMEVARCHAR2(30)

A.SELECT*FROMemp_dept_vu;

B.SELECTdepartment_id,SUM(salary)FROMemp_dept_vuGROUPBYdepartment_id;

C.SELECTdepartment_id,job_id,AVG(salary)FROMemp_dept_vuGROUPBYdepartment_id,job_id;

D.SELECTjob_id,SUM(salary)FROMemp_dept_vuWHEREdepartment_idIN(10,20)GROUPBYjob_idHAVINGSUM(salary)>20000;

E.全对,没有错误。

35.下面哪些语句是DML(bcd)

A.COMMIT

B.MERGE

C.UPDATE

D.DELETE

E.CREATE

F.DROP

36.有一张employees表,结构如下

EMPLOYEE_IDNUMBERPrimaryKey

FIRST_NAMEVARCHAR2(25)

LAST_NAMEVARCHAR2(25)

HIRE_DATEDATE

当执行deleteemployees之后,将发生什么事情?

(单选)c

A.因为违反主键约束,所以你将得到一个错误。

B.表当中的数据和表的结构都将被删除。

C.只有表当中的数据被删除,结构还是存在嘀。

D.因为这个语句是存在语法错误的,根本不会被执行。

37.当你把所有圆括号从下面这个语句拿走之后,将发生什么事情?

(单选)C

SELECTe.employee_id,(.15*e.salary)+(.5*mission_pct)+(s.sales_amount*(.35*e.bonus))ASCALC_VALUEFROMemployeese,salesWHEREe.employee_id=s.emp_id;

A.在CALC_VALUE列显示的数据都将变低。

B.在CALC_VALUE列显示的数据都将变大。

C.在CALC_VALUE列显示的数据没有变化。

D.有语法错误,不会执行。

38.下面哪个(些)语句是SQL*Plus命令D

A.INSERT

B.UPDATE

C.SELECT

D.DESCRIBE

E.DELETE

F.RENAME

39.按照如下格式显示系统当前时间Monday,01June,2001(单选)C

A.SELECTTO_DATE(SYSDATE,'FMDAY,DDMonth,YYYY')FROMdual;

B.SELECTTO_CHAR(SYSDATE,'FMDD,DYMonth,YYYY')FROMdual;

C.SELECTTO_CHAR(SYSDATE,'FMDay,DDMonth,YYYY')FROMdual;

D.SELECTTO_CHAR(SYSDATE,'FMDY,DDDMonth,YYYY')FROMdual;

E.SELECTTO_DATE(SYSDATE,'FMDY,DDDMonth,YYYY')FROMdual;

40.下面哪些是Oracle的约束?

A.CASCADE

B.UNIQUE

C.NONUNIQUE

D.CHECK

E.PRIMARYKEY

F.CONSTANT

G.NOTNULL

41.当你想从当前模式下删除视图EMP_DEPT_VU,你将用哪个语句?

(单选)D

A.DROPemp_dept_vu;

B.DELETEemp_dept_vu;

C.REMOVEemp_dept_vu;

D.DROPVIEWemp_dept_vu;

E.DELETEVIEWemp_dept_vu;

F.REMOVEVIEWemp_dept_vu;

二、程序设计题(本大题共9小题,共50分)

某公司程序员张某设计了一套学生选课系统,其中涉及到的主要表结构如下:

a.学生信息表:

表名STU,主要用来保存学生的基本信息,字段信息表述如下:

{

Sno:

流水号数值型主键

SID:

学生编号,字符唯一

SName:

学生姓名,长度为20的变长字符串,非空;

Sex:

性别,长度为2的定长字符串,值只能为"男"或"女";

Indate:

入班日期,日期型

ClassID:

所在班级编号,数值型,外键,

}

b.班级信息表:

表名CLA,主要用来保存班级的基本信息,字段信息表述如下:

{

clano:

流水号数值型主键

ClaID,班级编号,字符唯一

ClaName,班级名称,长度为20的变长字符串,唯一约束

}

c.课程信息表:

表名SUBJECT,主要用来保存课程的基本信息,字段信息表述如下:

{

subno:

流水号数值型主键

SubID,课程编号字符唯一

SubName,课程名称,长度为20的变长字符串,唯一约束

}

d.学生选课信息表:

表名SELECT_SUBJECT,主要用来保存学生所选课程的基本信息,字段信息表述如下:

{

ID:

流水号数值主键

StuID,学生编号外键

SubID,课程编号,外键

Grade,成绩数值型

}

请您根据以上张某的设计,完成以下问题:

1、请写出以上四张表的创建表语句,要求在建表的同时建立相应的约束。

--学生信息表

createtableSTU(

Snonumberprimarykeynotnull,

SIDcharunique,

SNamevarchar2(20)notnull,

Sexchar(3)constraintstu_sex_ckcheck(Sexin('男','女')),

Indatedate,

ClassIDchar,

constraintstu_ClassID_fkforeignkey(ClassID)referencesCLA(ClaID)

--班级信息表

createtableCLA(

clanonumberprimarykeynotnull,

ClaIDcharunique,

ClaNamevarchar2(20)unique

--课程信息表

createtableSUBJECT(

subnonumberprimarykeynotnull,

SubIDcharunique,

SubNamevarchar2(20)unique

--学生选课信息表

createtableSELECT_SUBJECT(

ID numberprimarykeynotnull,

StuIDchar,

SubIDchar,

Gradenumber,

constraintsss_StuID_fkforeignkey(StuID)referencesSTU(SID),

constraintsss_SubID_fkforeignkey(SubID)referencesSUBJECT(SubID)

2、创建一个序列。

--创建一个序列

createsequencemysequence

startwith1

incrementby1

minvalue1;

3、使用序列,分别向班级表插入3条数据,每个班级5名学生,3门课程数据,以及每个学生的选课数据。

--向班级表插入3条

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2