SQL存储过程习题

上传人:枫** 文档编号:431808884 上传时间:2022-09-01 格式:DOC 页数:20 大小:94.01KB
返回 下载 相关 举报
SQL存储过程习题_第1页
第1页 / 共20页
SQL存储过程习题_第2页
第2页 / 共20页
SQL存储过程习题_第3页
第3页 / 共20页
SQL存储过程习题_第4页
第4页 / 共20页
SQL存储过程习题_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《SQL存储过程习题》由会员分享,可在线阅读,更多相关《SQL存储过程习题(20页珍藏版)》请在金锄头文库上搜索。

1、SQL存储过程习题题目11、学校图书馆借书信息管理系统建立三个表:学生信息表:student字段名称数据类型说明stuIDchar(10)学生编号,主键stuNameVarchar(10)学生名称majorVarchar(50)专业图书表:book字段名称数据类型说明BIDchar(10)图书编号,主键titlechar(50)书名authorchar(20)作者借书信息表:borrow字段名称数据类型说明borrowIDchar(10)借书编号,主键stuIDchar(10)学生编号,外键BIDchar(10)图书编号,外键T_timedatetime借书日期B_timedatetime还书

2、日期请编写SQL语句完成以下的功能:1) 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:2) 查询所有借过图书的学生编号、学生名称、专业;参考查询结果如下图所示:3) 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;参考查询结果如下图所示:4) 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所示:附加:建表语句:USE masterGO/*$建库$*/-检验数据库是否存在,如果为真,删除此数据库-IF exists(SELECT * FR

3、OM sysdatabases WHERE name=BOOK) DROP DATABASE BOOKGOCREATE DATABASE BOOKGO-建数据表-USE BOOKGOCREATE TABLE student -学生信息表( stuID CHAR(10) primary key, -学生编号 stuName CHAR(10) NOT NULL , -学生名称 major CHAR(50) NOT NULL -专业)GOCREATE TABLE book -图书表( BID CHAR(10) primary key, -图书编号 title CHAR(50) NOT NULL, -

4、书名 author CHAR(20) NOT NULL, -作者)GOCREATE TABLE borrow -借书表( borrowID CHAR(10) primary key, -借书编号stuID CHAR(10) foreign key(stuID) references student(stuID), -学生编号BID CHAR(10) foreign key(BID) references book(BID),-图书编号 T_time datetime NOT NULL, -借出日期 B_time datetime -归还日期)GO-学生信息表中插入数据-INSERT INTO

5、student(stuID,stuName,major)VALUES(1001,林林,计算机)INSERT INTO student(stuID,stuName,major)VALUES(1002,白杨,计算机)INSERT INTO student(stuID,stuName,major)VALUES(1003,虎子,英语)INSERT INTO student(stuID,stuName,major)VALUES(1004,北漂的雪,工商管理)INSERT INTO student(stuID,stuName,major)VALUES(1005,五月,数学)-图书信息表中插入数据-INSE

6、RT INTO book(BID,title,author)VALUES(B001,人生若只如初见,安意如)INSERT INTO book(BID,title,author)VALUES(B002,入学那天遇见你,晴空)INSERT INTO book(BID,title,author)VALUES(B003,感谢折磨你的人,如娜)INSERT INTO book(BID,title,author)VALUES(B004,我不是教你诈,刘庸)INSERT INTO book(BID,title,author)VALUES(B005,英语四级,白雪)-借书信息表中插入数据-INSERT INT

7、O borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T001,1001,B001,2007-12-26,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T002,1004,B003,2008-1-5,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T003,1005,B001,2007-10-8,2007-12-25)INSERT INTO borrow(borrowID,stuID,BID

8、,T_time,B_time)VALUES(T004,1005,B002,2007-12-16,2008-1-7)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T005,1002,B004,2007-12-22,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T006,1005,B005,2008-1-6,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T007,1

9、002,B001,2007-9-11,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T008,1005,B004,2007-12-10,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T009,1004,B005,2007-10-16,2007-12-18)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T010,1002,B002,2007-9-15,2008-1

10、-5)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T011,1004,B003,2007-12-28,null)INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T012,1002,B003,2007-12-30,null)标准答案:- 1)查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期select 学生编号=stuID,学生名称=(select stuName fro

11、m student where stuID=borrow.stuID),图书编号=BID,图书名称=(select title from book where BID=borrow.BID),借出日期=T_time from borrow where stuID in (select stuID from student where major=计算机) and T_time2007-12-15 and T_time2008-1-8- 2)查询所有借过图书的学生编号、学生名称、专业-select 学生编号=stuID,学生名称=stuName,专业=major from student whe

12、re stuID in (select stuID from borrow)- 3)查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期-select 学生名称=(select stuName from student where stuID=borrow.stuID),图书名称=(select title from book where BID=borrow.BID),借出日期=T_time,归还日期=B_time from borrow where BID in (select BID from book where author=安意如)- 4)查询目前借书但未归还图书的学生名称

13、及未还图书数量-select 学生名称=(select stuName from student where stuID=borrow.stuID),借书数量=count(*) from borrow where B_time is null group by stuID 题目2程序员工资表:ProWage字段名称数据类型说明IDint自动编号,主键PNameChar(10)程序员姓名Wageint工资创建一个存储过程,对程序员的工资进行分析,月薪1500到10000不等,如果有百分之五十的人薪水不到2000元,给所有人加薪,每次加100,再进行分析,直到有一半以上的人大于2000元为止,存储

14、过程执行完后,最终加了多少钱? 例如:如果有百分之五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程后的结果如图:请编写T-SQL来实现如下功能:1) 创建存储过程,查询是否有一半程序员的工资在2200、3000、3500、4000、5000或6000元之上,如果不到分别每次给每个程序员加薪100元,至之一半程序员的工资达到2200,3000,3500,4000,5000或6000元。2) 创建存储过程,查询程序员平均工资在4500元,如果不到则每个程序员每次加200元,至到所有程序员平均工资达到4500元。建表语句USE masterGO/*$建库$*/-检验数据库是否存在,如果为真,删除此数据库-IF exists(SELECT * FROM sysdatabases WHERE name=Wage) DROP DATABASE WageGOCREATE DATABASE WageGO

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

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