简单的SQL语句练习大全

上传人:豆浆 文档编号:31928626 上传时间:2018-02-09 格式:DOC 页数:5 大小:38.50KB
返回 下载 相关 举报
简单的SQL语句练习大全_第1页
第1页 / 共5页
简单的SQL语句练习大全_第2页
第2页 / 共5页
简单的SQL语句练习大全_第3页
第3页 / 共5页
简单的SQL语句练习大全_第4页
第4页 / 共5页
简单的SQL语句练习大全_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《简单的SQL语句练习大全》由会员分享,可在线阅读,更多相关《简单的SQL语句练习大全(5页珍藏版)》请在金锄头文库上搜索。

1、一:本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME姓名,CLASS 班级BOOKS图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。要求实现如下 15 个处理:1 写出建立 BORROW 表的 SQL 语句,要求定义主码完整性约束和引用完整性约束。/表名 borrow2 找出借书超过 5 本的读者,输出借书卡号及所借图书册数。3 查询借阅了水浒 一书的读者,输出姓名及班级。 4 查询过

2、期未还图书,输出借阅者(卡号) 、书号及还书日期。5 查询书名包括网络 关键词的图书,输出书号、书名、作者。6 查询现有图书中价格最高的图书,输出书名及作者。7 查询当前借了计算方法但没有借 计算方法习题集 的读者,输出其借书卡号,并按卡号降序排序输出。8 将C01班同学所借图书的还期都延长一周。9 从 BOOKS 表中删除当前无人借阅的图书记录。10如果经常按书名查询图书信息,请建立合适的索引。11在 BORROW 表上建立一个触发器,完成如下功能:如果读者借阅的书名是数据库技术及应用,就将该读者的借阅记录保存在 BORROW_SAVE 表中(注 ORROW_SAVE 表结构同 BORROW

3、 表) 。12建立一个视图,显示力 01班学生的借书信息(只要求显示姓名和书名) 。13查询当前同时借有计算方法 和组合数学两本书的读者,输出其借书卡号,并按卡号升序排序输出。14假定在建 BOOKS 表时没有定义主码,写出为 BOOKS 表追加定义主码的语句。15对 CARD 表做如下修改:a. 将 NAME 最大列宽增加到 10 个字符(假定原为 6 个字符) 。b. 为该表增加 1 列 NAME(系名) ,可变长,最大 20 个字符。1. 写出建立 BORROW 表的 SQL 语句,要求定义主码完整性约束和引用完整性约束- 实现代码:CREATE TABLEBORROW(CNO int

4、FOREIGN KEY REFERENCES CARD(CNO),BNO int FOREIGN KEY REFERENCES BOOKS(BNO),RDATE datetime,PRIMARY KEY(CNO,BNO)2. 找出借书超过 5 本的读者,输出借书卡号及所借图书册数-实现代码:SELECT CNO,借图书册数=COUNT(*)FROM BORROWGROUP BY CNOHAVING COUNT(*)53. 查询借阅了水浒 一书的读者,输出姓名及班级 -实现代码:SELECT * FROM CARD cWHERE EXISTS(SELECT * FROM BORROW a,BOO

5、KS bWHERE a.BNO=b.BNOAND b.BNAME=N水浒ANDa.CNO=c.CNO)/建立表关联4. 查询过期未还图书,输出借阅者(卡号) 、书号及还书日期-实现代码:SELECT * FROM BORROWWHERERDATE0/条件判定INSERT BORROW_SAVE SELECT i.*FROM INSERTED i,BOOKS bWHERE i.BNO=b.BNOAND b.BNAME=N数据库技术及应用12. 建立一个视图,显示力 01班学生的借书信息(只要求显示姓名和书名) -实现代码:CREATE VIEW V_VIEWASSELECT a.NAME,b.B

6、NAMEFROM BORROW ab,CARD a,BOOKS bWHERE ab.CNO=a.CNOAND ab.BNO=b.BNOAND a.CLASS=N力 0113. 查询当前同时借有计算方法和 组合数学两本书的读者,输出其借书卡号,并按卡号升序排序输出-实现代码:SELECT a.CNOFROM BORROW a,BOOKS bWHERE a.BNO=b.BNOAND b.BNAME IN(N计算方法,N组合数学)GROUP BY a.CNOHAVING COUNT(*)=2ORDER BY a.CNO DESC14. 假定在建 BOOKS 表时没有定义主码,写出为 BOOKS 表追

7、加定义主码的语句- 实现代码:ALTER TABLE BOOKS ADD PRIMARY KEY(BNO)/ 更新15.1 将 NAME 最大列宽增加到 10 个字符(假定原为 6 个字符) -实现代码:ALTER TABLE CARD ALTER COLUMN NAME varchar(10)15.2 为该表增加 1 列 NAME(系名) ,可变长,最大 20 个字符-实现代码:ALTER TABLE CARD ADD 系名 varchar(20)二:问题描述:为管理岗位业务培训信息,建立 3 个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学

8、员年龄C (C#,CN )C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G )S#,C#,G 分别代表学号、所选修的课程编号、学习成绩要求实现如下 5 个处理:1. 使用标准 SQL 嵌套语句查询选修课程名称为税收基础的学员学号和姓名2. 使用标准 SQL 嵌套语句查询选修课程编号为C2的学员姓名和所属单位3. 使用标准 SQL 嵌套语句查询不选修课程编号为C5的学员姓名和所属单位4. 使用标准 SQL 嵌套语句查询选修全部课程的学员姓名和所属单位5. 查询选修了课程的学员人数6. 查询选修课程超过 5 门的学员学号和所属单位1. 使用标准 SQL 嵌套语句查询选修课程名称为税收

9、基础的学员学号和姓名-实现代码:SELECT SN,SD FROM SWHERE S# IN(SELECT S# FROM C,SCWHERE C.C#=SC.C#AND CN=N税收基础 )2. 使用标准 SQL 嵌套语句查询选修课程编号为C2的学员姓名和所属单位-实现代码:SELECT S.SN,S.SD FROM S,SCWHERE S.S#=SC.S#AND SC.C#=C23. 使用标准 SQL 嵌套语句查询不选修课程编号为C5的学员姓名和所属单位-实现代码:SELECT SN,SD FROM SWHERE S# NOT IN(SELECT S# FROM SCWHERE C#=C5

10、)4. 使用标准 SQL 嵌套语句查询选修全部课程的学员姓名和所属单位-实现代码:SELECT SN,SD FROM SWHERE S# IN(SELECT S# FROM SCRIGHT JOIN C ON SC.C#=C.C#GROUP BY S#HAVING COUNT(*)=COUNT(DISTINCT S#)5. 查询选修了课程的学员人数-实现代码:SELECT 学员人数=COUNT(DISTINCT S#) FROM SC6. 查询选修课程超过 5 门的学员学号和所属单位-实现代码:SELECT SN,SD FROM SWHERE S# IN(SELECT S# FROM SCGROUP BY S#HAVING COUNT(DISTINCT C#)5)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号