*/
/要求:所有语句在相应题目下面完成/
/创建图书出租管理系统数据库,数据库名称为DB+你的学号 10分/
–答

create database DB2119170006

/* 在该数据库下,创建如下3个关系,并根据字段名的含义,自己设计主键、外键 30分*/
/*1、图书表(Book)
Book(BookID,BookName,BookWriter,BookPublish,BookPublishDatetime,BookPrince,BookSort,BookAmount,BookRemain)
BookID:图书编号
BookName:图书名称
BookWriter:图书作者
BookPublish:出版社名称
BookPublishDate:出版日期
BookPrice:图书定价
BookSort:图书分类
BookAmount:图书库存数量
BookRemain:图书现在数量 */
–答

create table Book(
BookID char(9) primary key,
BookName char(30),
BookWriter char(30),
BookPublish char(30),
BookPublishDatetime date,
BookPrince real,
BookSort char(30),
BookAmount int,
BookRemain int
)

/* 2、客户表(Reader)
Reader(ReaderID,ReaderName,ReaderPassword,ReaderPhoneNo,ReaderEmail,ReaderBorrowedbooks)
ReaderID:客户编号
ReaderName:客户姓名
ReaderPassword:客户密码
ReaderPhoneNo:电话号码
ReaderEmail:电子邮件
ReaderBorrowedbooks:借书数量*/
–答

create table  Reader(
ReaderID char(9) primary key,
ReaderName char(30),
ReaderPassword char(30),
ReaderPhoneNo char(20),
ReaderEmail char(30),
ReaderBorrowedbooks int
)

/* 3、租借信息表(BorrowBook)
BorrowBook(ReaderID,BookID,BorrowDate,ReturnDate,FactRetrunDate)
ReaderID:客户编号
BookID:图书编号
BorrowDate:租借日期
ReturnDate:应归还日期
FactRetrunDate:实际归还日期 */
–答

create table BorrowBook(
ReaderID char(9),
BookID char(9),
BorrowDate date,
ReturnDate date,
FactRetrunDate date
foreign key(ReaderID) references Reader(ReaderID)
on delete cascade,
foreign key(BookID) references Book(BookID)
on delete cascade
)

/*在表中分别插入下列数据 10分
BOOK表:
T1001,Java程序设计,李新民,清华大学出版社,2011-4-5,23.5,计算机,10,3
T1002,数据库原理及应用,王珊,高等教育出版社,2013-8-5,27,计算机,50,10
T1003,Java高级编程,陈海,铁道出版社,2011-4-5,23.5,计算机,10,3
T1004,大学英语,张宁,清华大学出版社,2009-1-12,18.5,英语,60,31
T1005,C++程序设计,马品三,高等教育出版社,2014-4-1,33.5,计算机,15,5
T1006,数据结构,刘子单,铁道出版社,2010-8-9,35,计算机,20,13
*/
–答

insert into Book(BookID,BookName,BookWriter,BookPublish,BookPublishDatetime,BookPrince,BookSort,BookAmount,BookRemain)
values('T1001','Java程序设计','李新民','清华大学出版社','2011-4-5',23.5,'计算机',10,3),
('T1002','数据库原理及应用','王珊','高等教育出版社','2013-8-5',27,'计算机',50,10),('T1003','Java高级编程','陈海','铁道出版社','2011-4-5',23.5,'计算机',10,3),('T1004','大学英语','张宁','清华大学出版社','2009-1-12',18.5,'英语',60,31),('T1005','C++程序设计','马品三','高等教育出版社','2014-4-1',33.5,'计算机',15,5),('T1006','数据结构','刘子单','铁道出版社','2010-8-9',35,'计算机',20,13)

/*Reader表:
K001,张三,123221,18928372612,yewuqi@126.com,3
K002,李四,123111,18927438294,iueedre@163.com,18
K003,王五,123222,18920017434,kqodnds@sohu.com,7
K004,赵六,123223,18926477232,ieii@hytc.edu.cn,10
K005,刘七,123444,18928983923,seeruer@sin.com,31
*/
–答

insert into Reader(ReaderID,ReaderName,ReaderPassword,ReaderPhoneNo,ReaderEmail,ReaderBorrowedbooks)
values('K001','张三','123221','18928372612','yewuqi@126.com',3),('K002','李四','123111','18927438294','iueedre@163.com',18),('K003','王五','123222','18920017434','kqodnds@sohu.com',7),('K004','赵六','123223','18926477232','ieii@hytc.edu.cn',10),('K005','刘七','123444','18928983923','seeruer@sin.com',31)

/*BorrowBook表:
K001,T1006,2013-8-9,2014-12-30,2013-7-30
K001,T1001,2011-3-1,2014-12-30,2012-7-20
K001,T1004,2012-5-7,2014-12-30,2013-8-10
K002,T1002,2012-6-9,2014-12-30,2014-7-30
K002,T1003,2011-3-5,2014-12-30,2012-7-30
K002,T1001,2014-7-3,2014-12-30,2014-9-30
K003,T1005,2010-9-4,2014-12-30,2013-8-30
K004,T1002,2012-2-5,2014-12-30,2014-6-30
*/
–答

insert into BorrowBook(ReaderID,BookID,BorrowDate,ReturnDate,FactRetrunDate)
values('K001','T1006','2013-8-9','2014-12-30','2013-7-30'),('K001','T1001','2011-3-1','2014-12-30','2012-7-20'),('K001','T1004','2012-5-7','2014-12-30','2013-8-10'),('K002','T1002','2012-6-9','2014-12-30','2014-7-30'),('K002','T1003','2011-3-5','2014-12-30','2012-7-30'),('K002','T1001','2014-7-3','2014-12-30','2014-9-30'),('K003','T1005','2010-9-4','2014-12-30','2013-8-30'),('K004','T1002','2012-2-5','2014-12-30','2014-6-30')

/完成如下查询,共50分/
–1、查询图书名称中包含"Java"的图书的详细信息,并按出版日期降序排列
–答

select * from Book where BookName like'%Java%'
order by BookPublishDatetime desc

–2、查询哪些“清华大学出版社”出版的图书被借出
–答

select book.BookID,BookName from BorrowBook,Book where BorrowBook.BookID=Book.BookID and BookPublish='清华大学出版社'

–3、查询没有借书的客户的详细信息
–答

select Reader.ReaderID from Reader where Reader.ReaderID not in
(select distinct BorrowBook.ReaderID from BorrowBook)

–4、查询客户姓名为“张三”的客户租借的图书名称、租借日期和应归还日期
–答

select BookName,BorrowDate,ReturnDate from BorrowBook,Book,Reader
where BorrowBook.BookID=Book.BookID and BorrowBook.ReaderID=Reader.ReaderID
and Reader.ReaderName='张三'

–5、删除所有“铁道出版社”的图书
–答

delete from Book where BookPublish='铁道出版社'

–6、对于Book表创建触发器t1,要求图书库存数量大于0
–答

create trigger checko
on Book
for insert,update
as
if exists (select * from inserted where BookAmount<0)
begin
print '要求图书库存数量大于0'
rollback
endinsert into Book(BookID,BookName,BookWriter,BookPublish,BookPublishDatetime,BookPrince,BookSort,BookAmount,BookRemain)
values('T10099','Java程序设计','李新民','清华大学出版社','2011-4-5',23.5,'计算机',-11,3)

–7、建立“高等教育出版社”出版图书的视图V1
–答

create view v1(BookID,BookName,BookWriter,BookPublish,BookPublishDatetime,BookPrince,BookSort,BookAmount,BookRemain)
as
select BookID,BookName,BookWriter,BookPublish,BookPublishDatetime,BookPrince,BookSort,BookAmount,BookRemain
from book
where BookPublish='高等教育出版社'

–8、修改客户表,增加电话号码为唯一值的约束uq_dh
–答

alter table reader
add constraint uq_dh unique(ReaderPhoneNo)

–9、在客户表中的ReaderName列建立唯一性索引Index_Name,按名称降序排列
–答

create unique index Index_Name on reader(ReaderName desc)

–10、查询图书价格在20到30之间的图书详细信息
–答

select * from book where BookPrince between 20 and 30

sql server期中综合练习相关推荐

  1. SQL Server 初学综合练习题

    SQL Server 实践练习 说明 一 .准备数据表 二.数据表记录 三.练习 说明 sql语句综合练习题目,包含简单查询,聚合,嵌套,多表等.对于问题的解答可能有多种sql语句写法,这里只是提供一 ...

  2. SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化

    测试中 (Testing) Test databases should be processed with unit tests In many shops code is unit tested a ...

  3. 【SQL Server】数据库开发指南(五)T-SQL 高级查询综合应用与实战

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中. 本系列文章列表如下: [SQL Server] Linux 运维下对 SQL Server 进行安装.升级.回滚.卸载操作 [ ...

  4. Oracle 9i与MS SQL Server 2000之比较连载五.zz

    http://kb.cnblogs.com/a/1153156 Oracle 9i与MS SQL Server 2000之比较连载五 2008-04-14 18:13 四.Oracle中新的数据库对象 ...

  5. 如何在Windows Azure VM上的SQL Server和Windows Azure SQL Database两者中做出选择

    作者信息:本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作. 简介 把SQL 数据托管在哪里 ...

  6. 访问 Microsoft SQL Server 元数据的三种

    上海微创软件有限公司 肖桂东 适用读者:Microsoft SQL Server 中.高级用户 元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者 ...

  7. SQL Server 2008/2012中SQL应用系列及BI学习笔记系列--目录索引

    SQL Server 2008中的一些特性总结及BI学习笔记系列,欢迎与邀月交流. 3w@live.cn  ◆0.SQL应用系列 1.SQL Server 2008中SQL增强之一:Values新用途 ...

  8. SQL SERVER性能优化综述

    近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERV ...

  9. linux mysql换成_把 SQL Server 迁移到 Linux?不如换成 MySQL

    (点击上方公众号,可快速关注) 英文:Tony Branson 译者:Linux中国 链接:linux.cn/article-8073-1.html 最近几年,数量庞大的个人和组织放弃 Windows ...

  10. SQL Server中如何识别、查找未使用的索引(unused indexes)

    在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...

最新文章

  1. php字符串中有特殊符号怎么处理,PHP字符串中特殊符号的过滤方法介绍
  2. 解决iscroll.js上拉下拉刷新手指划出屏幕页面无法回弹问题
  3. 对话预训练_百度发布首个大规模隐变量对话模型PLATO
  4. U盘专杀工具,U盘防御软件,U盘病毒防火墙--UDiskSyS
  5. java 入门 第二季3
  6. ssh-scan处理手记
  7. 分布式事务中间件Seata的安装
  8. 记录一个美丽的小县城
  9. 字节序(Endian),大端(Big-Endian),小端(Little-Endian)
  10. wlan 网速测试软件,WiFi大师网速测试
  11. Spotfire 聚合筛选 会污损行数据
  12. Autojs.pro 7.0 - 免root 连点器
  13. 高盛区块链79页完整报告:从理论到实践!
  14. todd的hadoop world的ppt笔记
  15. 投资、投机、赌博、交易
  16. linux 排除多个目录搜索文件,关于linux:使用find命令但排除两个目录中的文件
  17. ☆苹果MAC OS X ★ 安装双系统☆
  18. 机器学习中文资源合集
  19. 5.字符串:aa:zhangsan@163.com!bb:lisi@sina.com!cc:wangwu@126.com 将存入hashMap中 key:aa,bb,cc value:zhang
  20. CSS预处理器-Sass、Less和Stylus-介绍和使用

热门文章

  1. 实时查询系统架构:spark流式处理+HBase+solr/ES查询
  2. eclipse设置保护眼睛的背景色与字体
  3. awakeFromNib 与 viewDIdLoad 自己小结
  4. 聊聊eureka的preferSameZoneEureka参数
  5. nginx-status详解
  6. jpGraph学习——绘制3D饼形图
  7. 【ArcGIS 10.2新特性】地理数据(Geodatabase 和database)10.2 新特性
  8. STM32F10x 学习笔记4(CRC计算单元 续)
  9. 《iPhone与iPad开发实战—iOS经典应用剖析》连载三
  10. forms Build中的触发器