8.以下述数据库各关系模式为例,
仓库(仓库号,城市,面积) 职工(仓库号,职工号,工资)
订购单(职工号,供应商号,订购单号,订购日期) 供应商(供应商号,供应商名称,地址) 用关系代数完成以下检索。 解:
(1).检索在仓库2工作的职工的工资。 关系代数表示:
∏职工号,工资(σ仓库号=“WH2“(职工))
(2).检索在上海工作的职工的工资。 解:
关系代数表示:
∏职工号,工资(σ城市=“上海”(仓库)??职工) (3).检索北京的供应商名称。 解:
关系代数表示:
∏供应商名称(σ地址=“北京“(供应商))
(4).检索目前与职工E6有业务联系的供应商名称。 解:
关系代数表示:
∏供应商名称(σ职工号=“E6“(订购单)??( 供应商)
(5).检索所有职工的工资大于1220的仓库所在的城市。 解:
关系代数表示: ∏城市(仓库??( ( ∏仓库号(职工)-∏仓库号(σ工资≤“1220“(职工))))
(6).检索和北京的所有供应商都有业务联系的职工的工资。 解:
关系代数表示:
a. R=∏供应商号(σ地址=“北京“(供应商)) **先取得北京的供应商号 b. ∏工资(职工??( ∏职工号,供应商号(订购单)÷R))
9.用关系代数完成下面各项操作(各个关系模式及关系如后所示)。
供应商(SNO,SNAME,CITY)--供应商号,供应商名,城市
零件(PNO,PNAME,COLOR,WEIGHT)--零件号,名称,颜色,重量 工程(JNO,JNAME,CITY)--工程号,工程名,城市
供应(SNO,PNO,JNO,QTY)--供应商号,零件号,工程号,数量 (1).求供应工程J1零件的单位号码SNO (2).求供应工程J1零件P1的单位号码SNO (3).求供应工程J1零件为红色的单位号码SNO
(4).求没有使用天津供应商的红色零件的工程号JNO (5).求至少用了单位S1所供应的全部零件的工程号JNO. 解:
(1). ∏SNO(σJNO=‘J1’(SPJ))
(2). ∏SNO(σJNO=‘J1’∧ PNO=‘P1’(SPJ))
11
(3). ∏SNO(σ
JNO=‘J1’
(SPJ) ?? ∏PNO(σ
COLOR=‘红’
(P)))
(设计思路:
? ∏PNO(σ? ∏SNO(σ
COLOR=‘红’JNO=‘J1’
(P)) ①先找出红色零件的零件号
(SPJ) ?? ①))
(S)) ?? SPJ?? ∏PNO(σ
COLOR=‘红’
(4).
∏JNO(J)-∏JNO(∏SNO(σ(设计思路:
? ? ? ? )
(5).∏JNO,PNO (SPJ)÷ ∏PNO (σ号JNO
SNO=‘S1’
CITY=‘天津’
(P)) )
1) ∏SNO(σ2) ∏PNO(σ
CITY=‘天津’COLOR=‘红’
(S)) : ①找出天津供应商号
(P)) : ②找出红色零件号
3) ∏JNO(① ?? SPJ?? ② ) : ③找出使用了天津供应商红色零件的工程号 4) ∏JNO(J)- ③ : 得到未使用天津供应商的红色零件的工程号
(SPJ)) :至少用了单位S1所供应的全部零件的工程
第三部分 关系数据库语言SQL
(一)选择
1. B
6. B 11. C 16. A 21. C
2. C 3. B 7. A. 8. A 12 . A 13. C 17. B
18. C
4. C 9. D 14. B 19. A
5. D 10. C 15. C 20. A
(二)概念、术语
术语
聚合函数:能够根据查询结果的记录集或根据查询结果的记录集中某列值的特点返回一个汇总信息的函数。
分组查询:在SQL语言中,把元组按某个或某些列上相同的值分组,然后再对各组进行相应操作的查询方式称为分组查询。
视图:也称用户视图或外模式,反映了数据库的局部逻辑结构,是数据库应用系统中各不同用户看到和使用的数据库。 简述
(1)简述数据定义语句、数据查询语句、数据操纵语句和数据控制语句的功能用途是什么? 答:数据定义语句用于定义数据库的逻辑结构,包括定义基本表、定义视图和定义索引。 数据查询语句按不同查询条件实现对数据库中数据的检索查询。
数据操纵语句用于更改和操作表中的数据,包括数据插入、数据修改和数据删除。 数据控制语句法实现用户授权、基本表和视图授权、事务控制、完整性和安全性控制等。 (2)简述 SQL 的定义功能。
答:SQL 的数据定义功能包括定义表、定义视图和定义索引。 SQL 语言使用 cREATE TABLE 语句建立基本表, ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删
12
除基本表;使用 CREATE INDEX 语句建立索引, DROP INDEX 语句删除索引;使用 CREATE VIEW 语句建立视图, DROP VIEW 语句删除视图。 (3)简述视图的优点。 答:
( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。
(三)应用题
1.
参考答案:
(1)查询201002班男生的信息。
select * from s where class=‘201002’ and ssex=‘男’
(2)查询最低分大于70、最高分小于90的学生的姓名。 select sname from sc,s group by s# having min(grade)>70 and max(grade)<90
(3)查询所有女生记录信息,并以班级降序排列。 select * from s where ssex=?女? order by class desc
(4)查询选取修数据结构课程的学生姓名及所在专业代码。
select sname,scode# from s,sc,c where s.s#=sc.s# and sc.c#=c.c# and cname=?数据结构?; (5)查询至少有5名学生选修的并以3开头的课程号的平均分。
select avg(grade) from sc where c# like ?3%? group by s# having count(*)>=5 2.
参考答案:
(1)查询来自南京或上海的学生学号和姓名。
select s#,sname from s where placeofb='上海' or placeofb='南京' (2)查询选修课程号为C401001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select s#,grade from sc where c#='C401001' order by grade desc,s# asc (3)查询计算机科学或网络工程专业姓张的学生的信息。
select * from s where scode# in (select scode# from ss where ssname=’计算机科学’or ssname=’网络工程’) and sname like '张%' (4)查询缺少了成绩的学生的学号和课程号。
select s#,c# from sc where grade is null
(5)查询每个专业的男、女生分别有多少人数。
select scode#,ssex,count(*) from s group by scode#,ssex
3. 参考答案:
(1).找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。
SELECT A#,ANAME FROM A;
WHERE WQTY<=100 OR CITY=“长沙” (2).找出供应书包的商店名。
SELECT A.ANAME FROM A,B,AB;
WHERE A.A#=AB.A# AND B.B#=AB.B# AND B.BNAME=“书包”
13
(3).找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。
SELECT A.ANAME,A.CITY FROM A,B;
WHERE A.A#=AB.A# AND AB.B# IN
(SELECT AB.B#; FROM AB
WHERE A#=“256”)
SELECT ANAME,CITY FROM A AX WHERE NOT EXISTS(SELECT * FROM A AY WHERE
AY.A#=’256’AND NOT EXISTS(SELECT * FROM A AZ WHERE AZ.A#=AX.A# AND AZ.A#=AY.A#))
4. 参考答案:
(1).CREATE VIEW R-S-T
AS SELECT R.A,B,C,S.D,E,F FROM R,S,T
WHERE R.A=S.A AND S.D=T.D (2).SELECT AVG(C),AVG(E) FROM R-S-T GROUP BY A
5. 参考答案: (1).SELECT B FROM R,S
WHERE R.A=S.A AND C>50 (2).UPDATE R SET B=‘b4’ WHERE A IN (SELECT A FROM S
WHERE C=40)
6. 参考答案:
(1).SELECT DISTINCT PROV FROM S
WHERE SD=“信息系” (2).SELECT SN,GR FROM S,SC
WHERE SD=“英语系”AND CN=“计算机”AND S.SNO=SC.SNO ORDER BY GR DESC; 7. 参考答案:
(1).取出所有工程的全部细节;
SELECT * FROM JB
(2).取出所在城市为上海的所有工程的全部细节;
SELECT * FROM JB
WHERE CITY=“上海”
(3).取出重量最轻的零件代号;
SELECT PN FROM PB
WHERE WEIGHT=
14
(SELECT MIN(WEIGHT) FROM PB)
(4).取出为工程J1提供零件的供应商代号;
SELECT SN FROM SPJB
WHERE JN=“J1”
(5).取出为工程J1提供零件P1的供应商代号;
SELECT SN FROM SPJB;
WHERE JN=‘Jl’AND PN=‘Pl’
(6).取出由供应商S1提供零件的工程名称;
SELECT JB.JNAME FROM JB,SPJB
WHERE JB.JN=SPJB.JN AND SPJB.SN=‘S1’ (7).取出供应商S1提供的零件的颜色;
SELECT DISTINCT PB.COLOR FROM PB,SPJB
WHERE PB.PN=SPJB.PN AND SPJB.SN=‘S1’ (8).取出为工程J1或J2提供零件的供应商代号;
SELECT DISTINCT SN FROM SPJB
WHERE JN=‘J1’OR JN=‘J2’
(9).取出为工程J1提供红色零件的供应商代号;
SELECT DISTINCT SPJB.SN FROM SPJB,PB
WHERE PB.PN=SPJB.PN AND SPJB.JN=‘J1’AND PB.COLOR=‘红’
(10).取出为所在城市为上海的工程提供零件的供应商代号;
SELECT DISTINCT SPJB.SN FROM SPJB, JB
WHERE SPJB.JN=JB.JN AND JB.CITY‘上海’
(11).取出为所在城市为上海或北京的工程提供红色零件的供应商代号;
SELECT SPJB.SN FROM PB,JB SPJB WHERE SPJB.PN=PB.PN AND JB.JN=SPJB.JN AND PB.COLOR=’红’ AND JB.CITY=’上海’ (12).取出供应商与工程所在城市相同的供应商提供的零件代号;
SELECT DISTINCT SPJB.PN FROM SB,JB,SPJB
WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=JB.CITY (13).取出上海的供应商提供给上海的任一工程的零件的代号;
SELECT SPJB.PN FROM SB,JB,SPJB
WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=’上海’ (14).取出至少由一个和工程不在同一城市的供应商提供零件的工程代号;
SELECT DISTINCT SPJB.JN FROM SB,JB,SPJB
WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY<>JB.CITY (15).取出上海供应商不提供任何零件的工程的代号;
SELECT DISTINCT JN FROM SPJB
WHERE JN NOT IN
(SELECT DISTINCT SPJB.JN
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库南京晓庄学院数据库原理练习题集在线全文阅读。
相关推荐: