SQL存储过程习题.doc

上传人:11****ws 文档编号:3263467 上传时间:2019-05-27 格式:DOC 页数:20 大小:110.50KB
下载 相关 举报
SQL存储过程习题.doc_第1页
第1页 / 共20页
SQL存储过程习题.doc_第2页
第2页 / 共20页
SQL存储过程习题.doc_第3页
第3页 / 共20页
SQL存储过程习题.doc_第4页
第4页 / 共20页
SQL存储过程习题.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、1SQL 存储过程习题题目 11、学校图书馆借书信息管理系统建立三个表:学生信息表:student字段名称 数据类型 说明stuID char(10) 学生编号,主键stuName Varchar(10) 学生名称major Varchar(50) 专业图书表:book字段名称 数据类型 说明BID char(10) 图书编号,主键title char(50) 书名author char(20) 作者借书信息表:borrow字段名称 数据类型 说明borrowID char(10) 借书编号,主键stuID char(10) 学生编号,外键BID char(10) 图书编号,外键T_time

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

3、在,如果为真,删除此数据库-IF exists(SELECT * FROM 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 -专业)GO4CREATE TABLE book -图书表(BID CHAR(10) primary key, -

4、图书编号title CHAR(50) NOT NULL, -书名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 -归还日期)

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

6、1005,五月,数学)-图书信息表中插入数据-INSERT 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,英语四

7、级,白雪)-借书信息表中插入数据-INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES(T001,1001,B001,2007-12-26,null)6INSERT 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 IN

8、TO borrow(borrowID,stuID,BID,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

9、,T_time,B_time)VALUES(T007,1002,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 7borrow(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(T0

10、10,1002,B002,2007-9-15,2008-1-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 学生编

11、号=stuID,学生名称=(select stuName from student where stuID=borrow.stuID),图书编号=BID,图书名称=(select title from book 8where 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,学生名称=

12、stuName,专业=major from student where 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

13、 author=安意如)- 4)查询目前借书但未归还图书的学生名称及未还图书数量-select 学生名称=(select stuName from student where stuID=borrow.stuID),借书数量=count(*) from borrow where B_time is null group by stuID 9题目 2程序员工资表:ProWage字段名称 数据类型 说明ID int 自动编号,主键PName Char(10) 程序员姓名Wage int 工资创建一个存储过程,对程序员的工资进行分析,月薪 1500 到 10000不等,如果有百分之五十的人薪水不到

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

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

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。