1. 使用sql脚本创建学校图书馆借书信息管理系统的三个表:

数据库名:BOOK

学生信息表: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

datetime

借书日期

B_time

datetime

还书日期

2、向表中插入以下测试数据

--学生信息表中插入数据--

INSERT INTO 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','五月','数学')

--图书信息表中插入数据--

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','英语四级','白雪')

--借书信息表中插入数据--

INSERT INTO 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,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','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 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-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)

3、请编写SQL语句完成以下的功能:

  1. 显示出“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:

  1. 查询所有借过图书的学生编号、学生名称、专业;参考查询结果如下图所示:

  1. 定义存储过程,实现查询任意作者的图书补借阅的情况,例如借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;参考查询结果如下图所示:

  1. 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所示:

按照要求求解即可

--创建数据库BOOK
create database BOOKon(name = 'BOOK_main',filename = 'D:\SQL Server2012\Workspace\BOOK_main.mdf',size = 20MB,maxsize = 1000MB,filegrowth = 1MB)log on(name='BOOK_log',filename='D:\SQL Server2012\Workspace\BOOK_log.ldf',size=10MB,maxsize=100MB,filegrowth = 10%)--创建学生信息表
create table student(stuID char(10) primary key,    --学生编号,主键stuName varchar(10),        --学生名称major varchar(10)         --专业
)--创建图书表
create table book(BID char(10) primary key, --图书编号,主键title char(50),             --书名author char(20)             --作者
)--创建借书信息表
create table borrow(borrowID char(10) primary key,  --借书编号,主键stuID char(10),                 --学生编号,外键BID char(10),                   --图书编号,外键T_time datetime,                --借书日期B_time datetime                   --还书日期
)
--添加外键
alter table borrowadd constraint fk_borrow_student_stuIDforeign key(stuID) references student(stuID)
alter table borrowadd constraint fk_borrow_book_BIDforeign key(BID) references book(BID)--学生信息表中插入数据
insert into student values('1001','林林','计算机'),('1002','白杨','计算机'),('1003','虎子','英语'),('1004','北漂的雪','工商管理'),('1005','五月','数学')----图书信息表中插入数据
insert into book values('B001','人生若只如初见','安意如'),('B002','入学那天遇见你','晴空'),('B003','感谢折磨你的人','如娜'),('B004','我不是教你诈','刘庸'),('B005','英语四级','白雪')--借书信息表中插入数据
insert into borrow values('T001','1001','B001','2007-12-26',null),('T002','1004','B003','2008-1-5',null),('T003','1005','B001','2007-10-8','2007-12-25'),('T004','1005','B002','2007-12-16','2008-1-7'),('T005','1002','B004','2007-12-22',null),('T006','1005','B005','2008-1-6',null),('T007','1002','B001','2007-9-11',null),('T008','1005','B004','2007-12-10',null),('T009','1004','B005','2007-10-16','2007-12-18'),('T010','1002','B002','2007-9-15','2008-1-5'),('T011','1004','B003','2007-12-28',null),('T012','1002','B003','2007-12-30',null)
select*from student
select*from book
select*from borrow
--显示出“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期:with student_borrow(stuID,stuName,major,T_time,BID,B_time,borrowID)
as(
select s.stuID,s.stuName,s.major,b.T_time,b.BID,b.B_time,b.borrowID
from student s inner join borrow b
on s.stuID = b.stuID
where b.T_time>='2007-12-15' and b.T_time<='2008-01-08 ' and s.major = '计算机'
)
select sb.stuID,sb.stuName,k.BID,k.title,sb.T_time
from student_borrow sb inner join book k
on sb.BID = k.BID--查询所有借过图书的学生编号、学生名称、专业:
select distinct s.stuID,s.stuName,s.major
from student s inner join borrow b
on s.stuID = b.stuID--定义存储过程,实现查询任意作者的图书补借阅的情况,例如借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期:
create proc proc_bookborrow@author char(20)aswith student_borrow(stuID,stuName,major,T_time,BID,B_time,borrowID)as(select s.stuID,s.stuName,s.major,b.T_time,b.BID,b.B_time,b.borrowIDfrom student s inner join borrow bon s.stuID = b.stuID)select sb.stuName,k.title,sb.T_time,sb.B_timefrom student_borrow sb inner join book kon sb.BID = k.BIDwhere k.author = @authorgoproc_bookborrow '安意如'--查询目前借书但未归还图书的学生名称及未还图书数量:
select distinct s.stuName'学生名称',count(s.stuName)'借书数量'
from student s inner join borrow b
on s.stuID = b.stuID
where b.B_time is null
group by s.stuName

sql server复习 练习相关推荐

  1. SQL server 复习一

    第一天 下面我们从最基础的开始: 在运行里面输入:services.msc 一.启动服务 二.数据库登录的两种身份验证方式 另外一种身份验证方式就是SQL Server身份验证. sa不能使用的时候可 ...

  2. sql创建计算机用户,2015年计算机四级数据库复习要点:SQL Server 登录账户

    2015年计算机四级数据库复习要点:SQL Server 登录账户 系统内置的登录账户 1. BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Adm ...

  3. Sql server 期末知识点复习

    **数据库基础概念: 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 数据库复习知识 数据库基本概念 一.第一章概念知识复习 二.数据库创建,数据库及数据库对象 数据库基本概念 一. ...

  4. SQL Server 入门复习(2008)图解

    1 首先找到开始菜单中相关内容:如下图:安装的组件不同可能有所不同:我的电脑中包括如下项: 商业智能:管理控制台:导入和导出数据:分析服务:集成服务:配置工具:文档和教程:性能工具: 因为偶装的组件多 ...

  5. SQL Server 2008 复习(一)

    导入 有关数据库系统的基本概念 1.信息与数据: 数据(Data)是描述事物的符号记录,数据的表现形式,可以是文本.图表.图形.图像.声音.语言.视频等. 信息(Information)是具有特定意义 ...

  6. 复习--SQL Server (一) -系统数据库

    SQL Server 2000自带了四个数据库: 1. Master数据库(系统数据库): 记录了SQL Server 的所有服务器级别的系统信息(16张服务器系统表&17张数据库级系统表), ...

  7. c井语言和SQL第一章上机1,第一章 SQL Server 数据库基础复习内容(上机)

    上机课程总目标 在本学期中,将模拟开发一套学员信息管理系统,用来管理学员的个人基本资料,老师资料,学生成绩,课程信息等教学相关内容,以实现学校的信息自动化,提高工作效率. 该系统包括学生档案管理.学生 ...

  8. SQL Server各种日期计算方法

    通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函 ...

  9. 标 题:[转帖]SQL Server日期计算(收藏)

    分    类:数据库相关 关键字 :日期 相    关:作者:未知    来源:xpilot 的 Blog 引    用:[0]http://goaler.xicp.net/TrackBack.asp ...

  10. 整理一些sql server基础资料

    闲来无事,整理些sql server 基础资料,以便以后查找.复习 SQL Server日期计算 a. 一个月的第一天 Select DATEADD(mm, DATEDIFF(mm,0,getdate ...

最新文章

  1. 从4个月到7天,Netflix开源Python框架Metaflow有何提升性能的魔法?
  2. [开源]C#二维码生成解析工具,可添加自定义Logo
  3. 肝一波 ~ 手写一个简易版的Mybatis,带你深入领略它的魅力!
  4. 在HTML中小心使用空格和回车
  5. Windows删除删除文件提示无法读源文件或磁盘解决方法
  6. matlab设计声音听听
  7. linux 批量传文件大小,小弟我使用过的Linux命令之rz - 批量下传文件,简单易用...
  8. c++string类的相关操作
  9. SparkStreaming优化
  10. linux下海康威视MVS以及库的安装
  11. Spring集成Quartz定时器
  12. 郭德纲家训--话糙理不糙
  13. 代码何须全部自己写,融云守护程序猿发际线
  14. Qt使用QCustomPlot画坐标图教程
  15. 【数据挖掘】天池挑战赛 新闻推荐
  16. 学习百度Apollo中的决策规划
  17. 购物网站 mysql设计_购物网站数据库设计
  18. 均衡计算机教室一类标准,义务教育基本均衡样表(黎思小学201711更新-)
  19. 《红楼梦》各版本总结
  20. VScode打字特效插件的配置

热门文章

  1. office2016兼容mathtype问题
  2. 别@微信官方了,最全的圣诞帽都在这儿了!
  3. vue-cli脚手架安装
  4. GoTop给网站加一个悬挂猫效果上吊猫
  5. scrapy+python爬地图参照物应该有的坑及解决办法
  6. 面板数据分析步骤及流程-R语言
  7. pixi 流星_流星语270—273
  8. 自己实现ArrayList
  9. 天呐?发现一个媲美 “百度” 的程序员网站
  10. mysql ibd文件删除_误删除MySQL数据库表的ibd文件怎么办