SQL数据库练习及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)现有图书借阅关系数据库如下:
图书(图书号、书名,作者,单价,库存量)
读者(读者号,姓名,工作单位,地址)
借阅(图书号,读者号,借期,还期,备注)
其中:还期为NULL表示该书未还。
用关系代数表达式实现下列1-4小题:
1、检索读者号为R016的读者姓名、工作单位;
Π姓名,工作单位(σ读者号=‘R016’(读者))
2、检索借阅图书号为B5的读者姓名;
Π姓名(σ图书号=‘B5’(读者∞借阅))
3、检索读者“李林”所借图书的书名;
Π书名(σ姓名=‘李林’(图书∞借阅∞读者))
4、检索读者“李林”所借图书中未还的书名;
Π书名(σ姓名=‘李林’∧还期=‘NULL’(图书∞借阅∞读者))
用SQL语言实现下列5-10小题:
5、检索读者号为R016的读者姓名、工作单位;
SELECT 姓名,工作单位
FROM 读者
WHERE 读者号=‘R016’
6、检索借阅图书号为B5的读者姓名;
SELECT DISTINCT 姓名
FROM 读者,借阅
WHERE 读者.读者号=借阅.读者号 AND 图书号=‘B5’
7、检索读者“李林”所借图书的书名;
SELECT DISTINCT 书名
FROM 图书,借阅,读者
WHERE 图书.图书号=借阅.图书号 AND 借阅.读者号=读者.读者号 AND 姓名=‘李林’
8、检索读者“李林”所借图书中未还的书名;
SELECT DISTINCT 书名
FROM 图书,借阅,读者
WHERE 图书.图书号=借阅.图书 AND 借阅.读者号=读者.读者号 AND 姓名=‘李林’ AND 还期 IS NULL
9、将读者“李林”所借图书的信息从借阅表中删除;
DELETE FROM 借阅
WHERE 读者号 IN
(SELECT 读者号
FROM 读者
WHERE 姓名=‘李林’)
10、建立未还图书的读者姓名和单位视图。
CREATE VIEW 未还(姓名,工作单位)
AS SELECT 姓名,工作单位
FROM 读者,借阅,图书
WHERE 图书.图书号=借阅.图书号 AND 借阅.读者号=读者.读者号 AND 还期 IS NULL
(二)设有一个顾客商品关系数据库,有三个基本表,表结构如下:
商品表:Article (商品号,商品名,单价,库存量)
客户表:Customer (顾客号,顾客名,性别,年龄,电话)
订单表:OrderItem (顾客号,商品号,数量,购买价,日期)
注意:回答时要将答案写到规定的地方;给出的答案要求字迹必须清楚;不允许改变程序结构和随意添加子查询。
1.请用SQL语言创建一个视图GM_VIEW,检索顾客的顾客号、顾客名和订购商品的商品名、金额和日期。(金额等于数量*购买价)(4分)
CREAT VIEW GM_VIEW(顾客号,顾客名,商品名,金额,日期) AS
SELECT _ Customer.顾客号,Customer.顾客名,Article.商品名,OrderItem.购买价* OrderItem.数量,OrderItem.日期
FROM Artcle, Customer, OrderItem
WHERE Artcle.商品号= OrderItem.商品号AND OrderItem.顾客号= Customer.顾客号;
2.请用SQL语言找出女顾客购买的商品号、商品名和数量合计。(6分)SELECT OrderItem.商品号AS商品号, OrderItem.商品名AS商品名,SUM(OrderItem.数量) AS数量合计
FROM OrderItem, Artcle, Customer,
WHERE Artcle.商品号= OrderItem.商品号AND OrderItem.顾客号= Customer.顾客号AND Customer. 性别='女'
GROUP BY OrderItem.商品号,商品名;
3.请用SQL语言ALTER TABEL命令给商品表Article增加一个字段,字段名为:产地,数据类型为:CHAR,长度为:30,命令如下:(4分)
ALTER TABLE Article ADD产地char(30)
(三)设有四个关系
S(SNO,SNAME, ADDRESS,TEL)
SNO:供应商代码 SNAME:姓名 ADDRESS:地址 TEL:电话
J(JNO,JNAME,LEADER,BG)
JNO:工程代码 JNAME:工程名 LEADER:负责人 BG:预算
P(PNO,PNAME,SPEC,CITY,COLOR)
PNO:零件代码 PNAME:零件名 SPEC:规格 CITY:产地 COLOR:颜色
SPJ(SNO,JNO,PNO,QTY)
SNO:供应商代码 JNO:工程代码 PNO:零件代码 QTY:数量
用关系代数表达式实现下列5小题:(每小题3分,共15分)(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))
(3) ΠSNO(σJNO=‘J1’∧COLOR=‘红’(P∞SPJ))
(4) ΠJNO(SPJ)-ΠJNO(σCITY=‘天津’∧COLOR=‘红’(SPJ∞S∞P))
(5)ΠJNO,PNO,SNO(SPJ)÷ΠPNO,SNO(σSNO=‘S1’(SPJ))