ABCDE
12331
12362
45662
五、
1、SQL>SELECT*FROMempWHEREtelNOTNULL;
2、SQL>SELECT*FROMempWHEREBETWEEN500AND800;
3、SQL>SELECTempno,ename,age,salFROMempORDERBYageASC;
4、SQL>SELECTAVG(sal)FROMempWHEREdeptno='D_01';
5、SQL>SELECTenameFROMempWHEREdeptno='D_01'ANDage>40AND
Sal<400;
数据库基础(Oracle)试卷
一、选择题(共5小题,每小题3分,共计15分)
1、Dept表及一些行如下所示(department为主码),请选择正确的SQL语句。
DEPARTMENTNAMELOCATIONBUDGET
20SalesMiami1700000
10MarketingNewyork2000000
Ainsertintodeptvalues(10,‘research',‘newyork',1500000)
Binsertintodeptvalues(null,‘accounting',‘Atlanta',1200000)
Cinsertintodeptvalues(15,‘computing',‘Miami',1500000)
2.假设下表中属性emp_dept是employee表中的一个外码,其中department表是主表,ID为主码,employee表为从表。
请指出下面给出的各行中哪一行不能插入employee表
DEPARTMENT:
IDNAMELOCATION
10AccountingNewyork
40Salesmiami
EMPLOYEE:
EMP_IDEMP_NAMEEMP_MGRTITLEEMP_DEPT
1234GreenPresident40
4567Gilmore1234SeniorVP40
1045Rose4567Director10
9876Smith1045Accountant10
A9213jones1045clerk30
B8997grace1234secretary40
C5932allen4567clerknull
3.下面哪一个like命令会返回名字象HOTKA的行?
•whereenamelike‘_HOT%'
•whereenamelike‘H_T%'
•whereenamelike‘%TKA_'
•whereenamelike‘%TOK%'
4.关系模式SJP(S,J,P)中,S是学生,J是课程,P是名次。
每一个学生选修每门课程的成绩有一定的名次,每门课程中每一个名次只有一个学生(无并列)。
该关系模式属于:
•2NF
•3NF
•BCNF
•4NF
5.有一图书管理数据库,其关系模式是R0(L#,B#,BNAME,BPRICE,BPUB),其属性分别表示个人借书证号、书号、书价、出版社。
该关系模式A。
它的主要问题是数据冗余。
如把R0分解成两个关系模式R1B和R2C,则可以部分的解决这一问题。
R1和R2剩范化较差的范式D。
另外一种分解可以得到三个模式R3(L#,B#)、R4(B#,BNAME)、R5(BNAME,BPRICE,BPUB),则R3、R4、R5都E。
A、D、E:
①属于第一范式而不属于第二范式②属于第二范式而不属于第三范式
③属于第三范式④不是范式
B、C:
①(L#,B#,BPRICE)②(L#,B#)
③(B#,BNAME)④(B#,BNAME,BPRICE,BPUB)
二填空题(每空1分,共计10分)
1对于实体集A和B之间的二元联系集,映射基集必须是以下四种之一:
2.关系模型有,,三类完整性。
3.数据模型是对现实世界客观事物及其联系的描述,在数据库技术中使用模型的概念
描述数据库的结构与语义。
常用的三种数据模型是:
,,。
此外还有。
4.PL/SQL有两种类型的游标:
和。
三、判断题(正确为√,错误为×,共11小题,每小题1分,共计11分)
•数据块只能基于表或视图。
()
•数据库的逻辑结构分为外模式、概念模式和存储模式三级。
其中概念模式使用户看到的和
使用的数据的描述,是用户与数据库的接口,常称作用户对数据库的视图。
用户使用DML对数据库进行操作,实际上是对于模式记录进行操作。
外模式是数据库中全部数据的整体逻辑结构的描述。
存储模式是数据库的物理存储结构的描述。
()
•Orderby子句仅对检索数据的显示有影响,并不改变表中行的内部顺序。
()
•从一个表中删除元组时,delete和droptable命令可以起到同样的效果。
()
•%rowtype用来保证数据类型和变量的长度与数据库中的数据列相一致。
()
•隐式指针与显式指针的不同在于显式指针仅仅访问一行,隐式的可以访问多行。
()
•与主键不同,惟一键可以是null值。
()
•Delete可以有选择地删除记录,使用rollback语句可以取消这个命令的执行。
()
•Createtableasselect能够创建一个复制表对象。
()
•我们使用altertable命令的add选项向一个已存在的表中添加一个新的属性列时,新列的每一行最初的值均为null。
只有当一个表还没有行的时候,我们才可以对添加的列用notnull约束。
()
11.使用having子句是为了限制groupby子句返回的行的个数。
()
四、编程题(共计46分)
(一)设关系模式SCG(S#,C#,grade)中S#为学生号,C#为课程号,grade为某学生学某号课程的考试成绩。
今要查询平均分数超过80分的课程的平均成绩,且要求查询的结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。
写出SQL查询。
(6分)
(二)SportsintGoods是一家美国批发公司,接收来自世界范围内的运动产品零售商店的定单。
该公司的客户遍布国内外,每一个客户都有一个惟一的标志号。
此外,公司还必须保存有客户的商店名称和电话号码。
公司也可保存关于客户的其他信息,如地址、所在城市、州,国家、邮政编码、信誉等级以及对客户喜好的总体评论。
一般情况下,客户通过电话或传真订货。
公司需跟踪每一份定单的标志号、订货日期及付款方式。
定货运到客户手中的日期需保存在数据库中。
该公司有一些雇员或销售代表了解客户的需求。
对每一个雇员公司备有其姓名,惟一的标志号及计算机用户ID信息。
其他信息包括该雇员进入公司的时间、评语、职务、工资及佣金百分率。
以下三个表给出了SG公司数据库表的属性列及对这些列的约束。
S_customer表的属性:
列名描述/数据类型
id客户唯一的标识号,最长3个字符
name客户名,最长为20个字符
Phone客户的电话号码,最长为20个字符
Address客户的地址,最长为20个字符
City客户所在的城市,最长为20个字符
State客户居住地所在的州,最长为15个字符
Country客户居住的国家,最长为20个字符
Zip_code客户的邮政编码,最长为15个字符
Credit_rating客户的信誉等级,最长为9个字符
Sales_rep_id客户的销售代表,最长为3个字符
Comments客户爱好的产品,最长255个字符
S_dept表的属性
列名描述/数据类型
Id每个部门唯一的标识号,最长为3个字符
Name部门名称,最长为20个字符
S_emp表的属性
列名描述/数据类型
id每个雇员唯一的标识号,最长为3个字符
name雇员的名字,最长为20个字符
Userid雇员登陆id,最长为8个字符
Start_date雇员开始在公司工作的日期,属于日期数据类型
Comments雇员的有关信息,最长为25个字符
Manager_id雇员经理的id,最长为3个字符
Title雇员在公司里的职务,最长为25个字符
Dept_id雇员的部门id,最长为3个字符
Salary雇员的工资,共11位数,包括2位小数
Commission_pct雇员赢得的佣金百分率,共4位数,包括2位小数
S_ord表的属性
列名描述/数据类型
Id每个定单的唯一标识号,最长为3个字符
Customer_id客户的唯一标识号,最长为3个字符
Date_ordered定单的定货日期,日期数据类型
Date_shipped定单的发运日期,日期数据类型
Sales_rep_id负责定单的销售代表的唯一标志号,最长为3个字符
Total定单的总金额,最长11位数,包括2位小数
Payment_type支付方式,最长为6个字符
Order_filled指出定单是否已经填写,最长为1个字符
请阅读完以上资料后,完成下面的问题。
(每小题5分,共计40分)
•写出显示客户204发出的全部定单的查询。
给出定单id,每份定单的合计以及定单发出的时间。
请使用s_ord表。
•请写出为Scustomer,semp建表的SQL语句,在运动用品数据库中还有以下约束:
定义s_customer的sales_rep_id为FK,且该FK参照semp表的属性id。
定义semp的deptid为FK,且该FK参照s_dept表的属性id。
•显示s_emp表中所有雇员的姓名和工资。
结果按工资数的升序排列。
•写出一个SQL查询,列出s_customer表中具有excellent信誉等级或与sales_rep_id为12的销售代表相关的所有客户名,信誉等级及销售代表。
•给在部门10工作的所有雇员增加1000元工资,并对结果加以验证。
如果操作有误,用户如何取消这些变化?
•删除表s_customer的约束FK会出现什么情况?
为什么?
要删除该表该怎么做?
•显示所有销售代表及他们的客户的姓名。
•创建一个过程,为s_emp表中插入数据,用emp_sequence产生每个雇员唯一的标识号。
并在过程创建完毕后调用它。
五、程序分析题。
(每小题6分,共计18分)
1.请分别指出下段程序中正确和错误的fetch语句,并简要说明错误语句出错的原因。
DECLARE
v_Departmentclasses.department%TYPE;
v_Courseclasses.course%TYPE;
CURSORc_AllClassesIS
SELECT*
FROMclasses;--theselectlistofthequeryreturnsall7columnsintheclassestable
v_ClassesRecordc_AllClasses%ROWTYPE;
BEGIN
OPENc_AllClasses;
FETCHc_AllClassesINTOv_ClassesRecord;
FETCHc_AllClassesINTOv_Department,v_Course;
END;
(二).请简要回答下面的语句完成了一项什么工作。
2.
DECLARE
v_Majorstudents.major%TYPE;
v_CreditIncreaseNUMBER:
=3;
BEGIN
v_Major:
='History';
UPDATEstudents
SETcurrent_credits=current_credits+v_CreditIncrease
WHEREmajor=v_Major;
END;
/
3.
DECLARE
v_StudentIDstudents.id%TYPE;
BEGIN
SELECTstudent_sequence.NEXTVAL
INTOv_StudentID
FROMdual;
INSERTINTOstudents(id,first_name,last_name)
VALUES(v_StudentID,'Timothy','Taller');
INSERTINTOstudents(id,first_name,last_name)
VALUES(student_sequence.NEXTVAL,'Patrick','Poll');
END;
数据库原理用应用(oracle)参考答案
•ABC12423
二、略
三、××√×××√√√√√
四、
(一).SelectC#,AVG(grade)
FromSCG
GroupbyC#
HavingAVG(grade)>80
Orderby2,C#desc
(二)1.selectid,total,date_orderedfroms_ordwherecustomer_id='204';
2.createtables_customer
(idvarchar2(3)primarykey,
namevarchar2(20),
phonevarchar2(20),
addressvarchar2(20),
cityvarchar2(20),
statevarchar2(15),
countryvarchar2(20),
zip_codevarchar2(15),
credit_ratingvarchar2(9),
sales_rep_idvarchar2(3)referencess_emp(id),
region_idvarchar2(3),
commentsvarchar2(255));
createtables_emp
(idvarchar2(3)primarykey,
namevarchar2(20),
useridvarchar2(8),
start_datedate,
commentsvarchar2(255),
manager_idvarchar2(3),
titlevarchar2(25),
dept_idvarchar2(3)referencess_dept(id),
salarynumber(11,2),
commission_pctnumber(4,2));
3.selectname,salary
froms_emp
orderbysalary;
4.selectname,credit_rating,sales_rep_id
froms_customer
wherecredit_rating='excellent'
orsales_rep_id='12';
5.savepointbefore_update;
updates_emp
setsalary=salary+1000
wheredept_id='10';
selectname,salary
froms_emp
wheredept_id='10';
rollbacktosavepointbefore_update;
6.该约束不能删除,因为列ID被数据库中其他表的外码所参照。
要删除该表,用户需使用命令
droptables_customercascadeconstraints.
7.selectE.nameC.namefroms_empE,s_customerCwhereC.sales_rep_id=E.id;
8CREATEORREPLACEPROCEDUREAddNewemployee(
p_Names_emp.name%TYPE,
p_titles_emp.title%TYPE)AS
BEGIN
INSERTINTOs_emp(ID,name,title)
VALUES(emp_sequence.nextval,p_name,p_title);
ENDAddNewemployee;
/*调用过程*/
BEGIN
AddNewemployee('Zelda','salesrepresentative');
END;
数据库基础(Oracle)试卷
一、单项选择题(每小题3分,**15分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。
错选、多选或未选均无分。
1.现实世界中,事物的一般特性在信息世界中称为()
A.实体B.实体键
C.属性D.关系键
2.数据的逻辑独立性是指()
A.概念模式改变,外模式和应用程序不变
B.概念模式改变,内模式不变
C.内模式改变,概念模式不变
D.内模式改变,外模式和应用程序不变
3.在关系数据库管理系统中,创建的视图在数据库三层结构中属于()
A.外模式B.存储模式
C.内模式D.概念模式
4.部分匹配查询中有关通配符“_”的正确的叙述是()
A.“_”代表多个字符B.“_”可以代表零个或多个字符
C.“_”不能与“%”一同使用D.“_”代表一个字符
5.假设下表中属性emp_dept是employee表中的一个外码,其中department表是主表,ID为主码,employee表为从表。
请指出下面给出的各行中哪一行不能插入employee表
DEPARTMENT:
IDNAMELOCATION
10AccountingNewyork
40Salesmiami
EMPLOYEE:
EMP_IDEMP_NAMEEMP_MGRTITLEEMP_DEPT
1234GreenPresident40
4567Gilmore1234SeniorVP40
1045Rose4567Director10
9876Smith1045Accountant10
A9213jones1045clerk30
B8997grace1234secretary40
C5932allen4567clerknull
二、填空题(每空2分,**30分)请在每小题的空格上填上正�**鸢浮4硖睢⒉惶罹薹帧�
1.数据模型通常都是由数据结构、_____________和_____________三个要素组成。
2.数据库系统各类用户对数据库的各种操作请求(数据定义、查询、更新及各种控制)都是由一个复杂的软件来完成的,这个软件叫做_________。
3.在SQLSELECT语句查询中,要去掉查询结果中的重复记录,应该使用_________关键字。
4.使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用_________子句。
5.关系数据库的数据操纵语言(DML)主要包括两类操作,它们是检索和__________。
6.在关系数据库设计中,数据库设计分为需求分析、概念设计、逻辑设计、物理设计、应用程序编码调试运行、数据库运行维护六个阶段。
设计关系模式是数据库设计中的哪个阶段的任务?
_______________
7.关系运算可分为_____________和_____________两大类。
8.1NF的关系消除_____________依赖后,可将范式等级提高到2NF。
2NF的关系消除_____________依赖后,可将范式等级提高到3NF。
9.数据库的三级结构通过模式的概念/内模式映象保证_____________独立性,通过