图书管理系统数据库综合练习用到下面三个关系表:

CARD      借书卡。    CNO 卡号,NAME   姓名,CLASS 班级

BOOKS     图书。      BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数

BORROW    借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期

备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

1. 写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

--实现代码:

CREATE TABLE BORROW(

CNO int FOREIGN KEY REFERENCES CARD(CNO),

BNO int FOREIGN KEY REFERENCES BOOKS(BNO),

RDATE datetime,

PRIMARY KEY(CNO,BNO))

2. 找出借书超过5本的读者,输出借书卡号及所借图书册数。

--实现代码:

SELECT CNO,借图书册数=COUNT(*)

FROM BORROW

GROUP BY CNO

HAVING COUNT(*)>5

3. 查询借阅了"水浒"一书的读者,输出姓名及班级。

--实现代码:

SELECT * FROM CARD c

WHERE EXISTS(

SELECT * FROM BORROW a,BOOKS b

WHERE a.BNO=b.BNO

AND b.BNAME=N'水浒'

AND a.CNO=c.CNO)

4. 查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

--实现代码:

SELECT * FROM BORROW

WHERE RDATE<GETDATE()

5. 查询书名包括"网络"关键词的图书,输出书号、书名、作者。

--实现代码:

SELECT BNO,BNAME,AUTHOR FROM BOOKS

WHERE BNAME LIKE N'%网络%'

6. 查询现有图书中价格最高的图书,输出书名及作者。

--实现代码:

SELECT BNO,BNAME,AUTHOR FROM BOOKS

WHERE PRICE=(

SELECT MAX(PRICE) FROM BOOKS)

7. 查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。

--实现代码:

SELECT a.CNO

FROM BORROW a,BOOKS b

WHERE a.BNO=b.BNO AND b.BNAME=N'计算方法'

AND NOT EXISTS(

SELECT * FROM BORROW aa,BOOKS bb

WHERE aa.BNO=bb.BNO

AND bb.BNAME=N'计算方法习题集'

AND aa.CNO=a.CNO)

ORDER BY a.CNO DESC

8. 将"C01"班同学所借图书的还期都延长一周。

--实现代码:

UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE)

FROM CARD a,BORROW b

WHERE a.CNO=b.CNO

AND a.CLASS=N'C01'

9. 从BOOKS表中删除当前无人借阅的图书记录。

--实现代码:

DELETE A FROM BOOKS a

WHERE NOT EXISTS(

SELECT * FROM BORROW

WHERE BNO=a.BNO)

10.如果经常按书名查询图书信息,请建立合适的索引。

--实现代码:

CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)

11. 在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)

--实现代码:

CREATE TRIGGER TR_SAVE ON BORROW

FOR INSERT,UPDATE

AS

IF @@ROWCOUNT>0

INSERT BORROW_SAVE SELECT i.*

FROM INSERTED i,BOOKS b

WHERE i.BNO=b.BNO

AND b.BNAME=N'数据库技术及应用'

12. 建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)

--实现代码:

CREATE VIEW V_VIEW

AS

SELECT a.NAME,b.BNAME

FROM BORROW ab,CARD a,BOOKS b

WHERE ab.CNO=a.CNO

AND ab.BNO=b.BNO

AND a.CLASS=N'力01'

13. 查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出

--实现代码:

SELECT a.CNO

FROM BORROW a,BOOKS b

WHERE a.BNO=b.BNO

AND b.BNAME IN(N'计算方法',N'组合数学')

GROUP BY a.CNO

HAVING COUNT(*)=2

ORDER BY a.CNO DESC

14. 假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句

--实现代码:

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)

图书管理系统数据库综合应用相关推荐

  1. ASP.NET MVC CODE FIRST 图书管理系统 数据库

    ASP .NET MVC CODE FIRST 图书管理系统 本项目最后更新于2018-7-4,可能会因为没有更新而失效.如已失效或需要修正,请提issue! 我使用VS2017进行开发,框架是.NE ...

  2. 图书管理系统-数据库设计

    选题背景 依照图书管理系统的要求,完成如下任务 设计适合此应用需求的规范化的数据库: 建立ODBC数据源: 创建数据库连接: 制作一个具有安全性控制(权限管理和视图管理等)的数据库访问程序. 数据项 ...

  3. 图书管理系统 数据库课程实验设计

    本课设系软件工程大二学生作,拙笔狂言,恭请斧正. 开发工具:Eclipse 2020-12,Microsoft SQL server 2012 程序语言:Java 引 言 选题题目:图书管理系统 选题 ...

  4. 橘猫图书管理系统--数据库原理期末项目

    需求分析 图书馆作为文学的聚集地和展示平台,书籍是从古至今文化传递记载的介质.图书馆是高校不可缺少的基础设施,图书馆管理系统是图书馆正常运转的关键.此次数据库课程设计采用C++语言编写程序,实现图书登 ...

  5. Java web图书管理系统——数据库课程设计

    写了一个最基础的java web数据库课设,遵循三层架构. 后端:Java 前端:jsp + layui + echarts 数据库:mysql web容器:tomcat 操作系统:win10 IDE ...

  6. 图书管理系统 数据库实现(oracle)

    create tablespace library2 datafile 'E:\oracle\datafiles\library2.dbf' size 10M autoextend on; creat ...

  7. 图书管理系统的数据库设计

    一.实验目的 选用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析.概念设计.逻辑设计.物理设计和实施.同时能够正确应用各个阶 ...

  8. 数据库设计:SQL server 网上图书管理系统

    点击查看:数据库设计:SQL server 网上图书管理系统 文件大小:8.4M 操作系统:Windows10旗舰版 开发工具:SQL server 2016 开发语言:. sql 简要概述: SQL ...

  9. 图书管理系统之用户信息维护

    在上一期我们讲到了图书管理系统数据库的设计思路,这期我们就讲讲第一个模块的功能实现. 这一期就讲第一个模块:用户信息维护表格查询和数据新增. 表格查询如下: var layer, layuiTable ...

最新文章

  1. PowerBI随笔(3)-增加自定义列
  2. python做硬件自动化测试-用python做自动化测试--Python实现远程性能监控
  3. Python 带你来一次说走就走的环球旅行
  4. 面试题 03.02. 栈的最小值
  5. OpenSSL新手自学:如何生成RSA私钥并用于数字签名
  6. 【luogu1816】忠(RMQ问题、线段树)
  7. SpringMVC对象绑定时自定义名称对应关系
  8. [翻译] TLMotionEffect 重力感应
  9. ABP 集成 nswag 根据 Swagger API 自动生成操作类代码
  10. java源码反编译_Java代码的编译与反编译
  11. 电脑屏幕变色了怎么调回来,电脑屏幕颜色怎么改
  12. matlab魔方矩阵有哪些,关于matlab 魔方矩阵的1、用前100个自然数创建一个10阶的魔方矩阵,求出每行、每列、所有对角线元素的和,再将矩阵...
  13. c++ 设计模式推荐书籍
  14. 计算机毕业设计ssm火车站售票管理系统
  15. Linux shell脚本检测jar包,挂掉时自动重启服务
  16. 第九弹:计算机编程入门,免费学习资源,2020.07.05更新
  17. Linux网卡bond
  18. 数据学习(十四)-方差分析与试验设计
  19. 应对新《劳动合同法》 万名华为员工自选去留
  20. php生成免签转账码,(转)支付宝免签二维收款码生成

热门文章

  1. 关于shadow的用法
  2. 计算机网络研究进展,高性能计算机网络研究进展-人文社科教育.pdf
  3. C语言程序——赋值运算符的应用
  4. CCC '19 S5 - Triangle: The Data Structure(倍增 + 滑窗最大值)
  5. Parameter 0 of method errorPageCustomizer in ErrorMvcAutoConfiguration 异常解决
  6. 在外远程访问禅道,点亮软件测试新技能「内网穿透」
  7. 自己动手合成喜欢的编程字体
  8. 2022年阿里云上云采购季大促全攻略
  9. 答题卡扫描助手使用说明
  10. 主动和被动FTP有什么区别?