SQL查询复习题1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、有两个关系:
C(CNO,CN,PCNO)
SC(SNO,CNO,G)
其中,C为课程表,对应的属性分别是课程号、课程名、选修课号;SC为学生选课表,对应的属性分别是学号、课号和成绩。用SQL语言写出:
(1)对关系SC中课号等于C1的选择运算
(2)对关系C的课号、课程名的投影运算
(3)两个关系的自然连接运算
(1)SELECT *
FROM SC
WHERE CNO=‘C1’
(2)SELECT CNO,CN
FROM C
(3)SELECT O,,C.PCNO,SC.SNO,SC.G
FROM C, SC
WHERE O=O
2、设有如下4个关系模式:
书店(书店编号,书店名,地址)
图书(书号,书名,定价)
图书馆(馆号,馆名,城市,电话)
图书发行(馆号,书号,书店号,数量)
请回答下列问题:
(1)用SQL语句检索已经发行的图书中最贵和最便宜的书名和定价
(2)写出下列SQL语句所表达的中文含义:
SELECT 馆名
FROM 图书馆
WHERE 馆名IN
(SELECT 馆号
FROM 图书发行
WHERE 书号IN
(SELECT 书号
FROM 图书
WHERE 书名=‘数据库系统基础’)
(1)SELECT 图书.书名,图书.定价
FROM 图书
WHER 定价=(SELECT MAX(定价)
FROM 图书,图书发行
WHERE 图书.书号=图书发行.书号)
SELECT 图书.书名,图书.定价
FROM 图书
WHER 定价=(SELECT MIN(定价)
FROM 图书,图书发行
WHERE 图书.书号=图书发行.书号)
(2)查询拥有已发行的‘数据库系统基础’一书的图书馆馆名。
3、设有职工关系模式如下:
people(pno,pname,sex,job,wage,dptno)
其中,pno为职工号,pname为职工姓名,sex为性别,job为职业,wage为工资,dptno为所在部门号。请写出下列查询使用的SQL语句:
(1)查询工资比其所在部门平均工资高的所有职工信息
(2)查询工资大于‘赵明华’工资的所有职工信息
(1)SELECT *
FROM people x
WHERE wage>( SELECT A VG(wage)
FROM people y
WHERE x.dptno=y.dptno)
(2)SELECT *
FROM people
WHERE wage>( SELECT wage
FROM people
WHERE pname=’赵明华’)
4、设有三个基本表:A表(A#{商店代码},ANAME{商店名},WQTY{店员人数},CITY{所在城市});B表(B#{商品号},BNAME{商品名称},PRICE{价格},QTY{商品数量});AB表(A#,B#,QTY)。试用SQL语句写出下列查询:(1)找出店员人数不超过100人或者在长沙市的所有商店的商店代码和商店名;(2)找出供应书包的商店名;
(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市;(1)SELECT A#,ANAME
FROM A,B,AB
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=‘书包’(3)SELECT A.ANAME,A.CITY
FROM A,AB
WHERE A.A#=AB.A# AND AB.B# IN
(SELECT AB.B#
FROM AB
WHERE A#=’256’)
5、设有学生表S(SNO,SN)和学生选修课程表SC(SNO,CNO,CN,G),试用SQL语句完成以下操作:
(1)建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序(2)从视图V-SSC上查询平均成绩在90分以上的SN,CN,和G
(1)CREATE VIEW V-SSC(SNO,SN,CNO,CN,G)
AS SELECT S.SNO,S.SN,O,,SC.G
FROM S,SC
WHERE S.SNO=SC.SNO
ORDER BY CNO
(2)SELECT SN,CN,G
FROM V-SSC
GROUP BY SNO
HA VING A VG(G)>90
6、设有4个关系模式:
S(SNO,SNAME,STATE,CITY):S为供应商,属性依次为:供应商号、供应商名、所在城市;
P(PNO,PNAME,COLOR,WEI,PRICE):P表示零件,属性依次为:零件号、零件名、零件颜色、零件重量和单价;
J(JNO,JNAME,CITY):J表示工程,属性依次为:工程号、工程名、所在城市
SPJ(SNO,PNO,JNO,QTY)SPJ表示供货关系,属性依次为:供应商号、零件号、工程号和供货数量;
用SQL语句实现下面的查询要求:
(1)查询供应了全部零件的供应商名和其所在城市
(2)查询供应红色零件的供应商名
[select * from A where exists(select * from B where A.a=B.a):
exists表示,对于A中的每一个记录,如果,在表B中有记录,其属性a的值与表A这个记录的属性a的值相同,则表A的这个记录是符合条件的记录,
如果是NOT exists,则表示如果表B中没有记录能与表A这个记录连接,则表A的这个记录是符合条件的记录
]
(1)SELECT SNAME ,CITY
FROM S
WHERE NOT EXISTS
(SELECT *
FROM P
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO)
(2)SELECT SNAME
FROM S,P,SPJ
WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND P.COLOR=’红色’