图书管理系统数据库综合应用
图书管理系统数据库综合练习用到下面三个关系表:
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)
图书管理系统数据库综合应用相关推荐
- ASP.NET MVC CODE FIRST 图书管理系统 数据库
ASP .NET MVC CODE FIRST 图书管理系统 本项目最后更新于2018-7-4,可能会因为没有更新而失效.如已失效或需要修正,请提issue! 我使用VS2017进行开发,框架是.NE ...
- 图书管理系统-数据库设计
选题背景 依照图书管理系统的要求,完成如下任务 设计适合此应用需求的规范化的数据库: 建立ODBC数据源: 创建数据库连接: 制作一个具有安全性控制(权限管理和视图管理等)的数据库访问程序. 数据项 ...
- 图书管理系统 数据库课程实验设计
本课设系软件工程大二学生作,拙笔狂言,恭请斧正. 开发工具:Eclipse 2020-12,Microsoft SQL server 2012 程序语言:Java 引 言 选题题目:图书管理系统 选题 ...
- 橘猫图书管理系统--数据库原理期末项目
需求分析 图书馆作为文学的聚集地和展示平台,书籍是从古至今文化传递记载的介质.图书馆是高校不可缺少的基础设施,图书馆管理系统是图书馆正常运转的关键.此次数据库课程设计采用C++语言编写程序,实现图书登 ...
- Java web图书管理系统——数据库课程设计
写了一个最基础的java web数据库课设,遵循三层架构. 后端:Java 前端:jsp + layui + echarts 数据库:mysql web容器:tomcat 操作系统:win10 IDE ...
- 图书管理系统 数据库实现(oracle)
create tablespace library2 datafile 'E:\oracle\datafiles\library2.dbf' size 10M autoextend on; creat ...
- 图书管理系统的数据库设计
一.实验目的 选用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析.概念设计.逻辑设计.物理设计和实施.同时能够正确应用各个阶 ...
- 数据库设计:SQL server 网上图书管理系统
点击查看:数据库设计:SQL server 网上图书管理系统 文件大小:8.4M 操作系统:Windows10旗舰版 开发工具:SQL server 2016 开发语言:. sql 简要概述: SQL ...
- 图书管理系统之用户信息维护
在上一期我们讲到了图书管理系统数据库的设计思路,这期我们就讲讲第一个模块的功能实现. 这一期就讲第一个模块:用户信息维护表格查询和数据新增. 表格查询如下: var layer, layuiTable ...
最新文章
- PowerBI随笔(3)-增加自定义列
- python做硬件自动化测试-用python做自动化测试--Python实现远程性能监控
- Python 带你来一次说走就走的环球旅行
- 面试题 03.02. 栈的最小值
- OpenSSL新手自学:如何生成RSA私钥并用于数字签名
- 【luogu1816】忠(RMQ问题、线段树)
- SpringMVC对象绑定时自定义名称对应关系
- [翻译] TLMotionEffect 重力感应
- ABP 集成 nswag 根据 Swagger API 自动生成操作类代码
- java源码反编译_Java代码的编译与反编译
- 电脑屏幕变色了怎么调回来,电脑屏幕颜色怎么改
- matlab魔方矩阵有哪些,关于matlab 魔方矩阵的1、用前100个自然数创建一个10阶的魔方矩阵,求出每行、每列、所有对角线元素的和,再将矩阵...
- c++ 设计模式推荐书籍
- 计算机毕业设计ssm火车站售票管理系统
- Linux shell脚本检测jar包,挂掉时自动重启服务
- 第九弹:计算机编程入门,免费学习资源,2020.07.05更新
- Linux网卡bond
- 数据学习(十四)-方差分析与试验设计
- 应对新《劳动合同法》 万名华为员工自选去留
- php生成免签转账码,(转)支付宝免签二维收款码生成
热门文章
- 关于shadow的用法
- 计算机网络研究进展,高性能计算机网络研究进展-人文社科教育.pdf
- C语言程序——赋值运算符的应用
- CCC '19 S5 - Triangle: The Data Structure(倍增 + 滑窗最大值)
- Parameter 0 of method errorPageCustomizer in ErrorMvcAutoConfiguration 异常解决
- 在外远程访问禅道,点亮软件测试新技能「内网穿透」
- 自己动手合成喜欢的编程字体
- 2022年阿里云上云采购季大促全攻略
- 答题卡扫描助手使用说明
- 主动和被动FTP有什么区别?