SQLSERVER练习题及答案

更新时间:2023-05-22 22:03:52 阅读: 评论:0

SQLSERVER练习题及答案
题目1:
问题描述:
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩1. 使用标准SQL嵌套语句查询选修课程名称为'税收基础'的学员学号和姓名
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM C,SC
WHERE C.[C#]=SC.[C#]
AND CN=N\'税收基础\')
2. 使用标准SQL嵌套语句查询选修课程编号为'C2'的学员姓名和所属单位
--实现代码:
SELECT S.SN,S.SD FROM S,SC
WHERE S.[S#]=SC.[S#]
AND SC.[C#]=\'C2\'
3. 使用标准SQL嵌套语句查询不选修课程编号为'C5'的学员姓名和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] NOT IN(
平面插画
SELECT [S#] FROM SC
WHERE [C#]=\'C5\')
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM SC
RIGHT JOIN
C ON SC.[C#]=C.[C#] GROUP BY [S#]
HA VING COUNT(*)=COUNT([S#]))
5. 查询选修了课程的学员人数
--实现代码:
SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC
6. 查询选修课程超过5门的学员学号和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM SC
GROUP BY [S#]
大蒜开花HA VING COUNT(DISTINCT [C#])>5)
题目2
问题描述:
本题用到下面三个关系表:祝你早日康复
CARD 借书卡。CNO 卡号,NAME 姓名,CLASS 班级
美术素养
BOOKS 图书。BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数
BORROW 借书记录。CNO 借书卡号,BNO 书号,RDA TE 还书日期
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求实现如下15个处理:
1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。2.找出借书超过5本的读者,输出借书卡号及所借图书册数。
3.查询借阅了屜水浒屜一书的读者,输出姓名及班级。
4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
5.查询书名包括屜网络屜关键词的图书,输出书号、书名、作者。
6.查询现有图书中价格最高的图书,输出书名及作者。
7.查询当前借了屜计算方法屜但没有借屜计算方法习题集屜的读者,输出其借书卡号,并按卡号降序排序输出。
8.将屜??屜班同学所借图书的还期都延长一周。
9.从BOOKS表中删除当前无人借阅的图书记录。
10.如果经常按书名查询图书信息,请建立合适的索引。
11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是屜数据库技术及应用屜,就将该读者的借阅记录保存在BORROW_SA VE表中(注ORROW_SA VE表结构同BORROW表)。
12.建立一个视图,显示屜力?屜班学生的借书信息(只要求显示姓名和书名)。
13.查询当前同时借有屜计算方法屜和屜组合数学屜两本书的读者,输出其借书卡号,并按卡号升序排序输出。
14.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。
15.对CARD表做如下修改:
a. 将NAME最大列宽增加到10个字符(假定原为6个字符)。
b. 为该表增加1列NAME(系名),可变长,最大20个字符。
1. 写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束
--实现代码:
CREATE TABLE BORROW(
CNO int FOREIGN KEY REFERENCES CARD(CNO),
BNO int FOREIGN KEY REFERENCES BOOKS(BNO),抗疫议论文
RDATE datetime,
PRIMARY KEY(CNO,BNO))
2. 找出借书超过5本的读者,输出借书卡号及所借图书册数
--实现代码:
结婚七年是什么婚
SELECT CNO,借图书册数=COUNT(*)
FROM BORROW
GROUP BY CNO
HA VING COUNT(*)>5
3. 查询借阅了屜水浒屜一书的读者,输出姓名及班级
红豆的作用--实现代码:
SELECT * FROM CARD c
WHERE EXISTS(
SELECT * FROM BORROW a,BOOKS b
WHERE a.BNO=b.BNO
AND b.BNAME=N\'水浒\'
AND /doc/b717198174.html,O=/doc/b717198174.html,O)
4. 查询过期未还图书,输出借阅者(卡号)、书号及还书日期
--实现代码:
SELECT * FROM BORROW
WHERE RDATE<getdate()< p="">
5. 查询书名包括屜网络屜关键词的图书,输出书号、书名、作者
--实现代码:
SELECT BNO,BNAME,AUTHOR FROM BOOKS
WHERE BNAME LIKE N\'%网络%\'
6. 查询现有图书中价格最高的图书,输出书名及作者
--实现代码:
SELECT BNO,BNAME,AUTHOR FROM BOOKS
WHERE PRICE=(
SELECT MAX(PRICE) FROM BOOKS)
7. 查询当前借了屜计算方法屜但没有借屜计算方法习题集屜的读者,输出其借书卡号,并按卡号降序排序输出
--实现代码:
SELECT /doc/b717198174.html,O
FROM BORROW a,BOOKS b
WHERE a.BNO=b.BNO AND b.BNAME=N\'计算方法\'
AND NOT EXISTS(
SELECT * FROM BORROW aa,BOOKS bb
WHERE aa.BNO=bb.BNO
AND bb.BNAME=N\'计算方法习题集\'
AND /doc/b717198174.html,O=/doc/b717198174.html,O)
ORDER BY /doc/b717198174.html,O DESC
8. 将屜??屜班同学所借图书的还期都延长一周
--实现代码:
UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE)
FROM CARD a,BORROW b
WHERE /doc/b717198174.html,O=/doc/b717198174.html,O
AND a.CLASS=N\'C01\'
9. 从BOOKS表中删除当前无人借阅的图书记录
--实现代码:
DELETE A FROM BOOKS a
WHERE NOT EXISTS(
SELECT * FROM BORROW
WHERE BNO=a.BNO)
10. 如果经常按书名查询图书信息,请建立合适的索引
--实现代码:
CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)

本文发布于:2023-05-22 22:03:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/737104.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图书   输出   查询   读者   书名   学员
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图