推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

数据库实验二:图书信息管理系统数据查询与数据更新

   日期:2024-10-31     作者:xinet    caijiyuan   评论:0    移动:http://dfvalve.xrbh.cn/mobile/news/6329.html
核心提示:实验类型:综合性掌握使用INSERT、UPDATE、DELETE语句向表中插入数据、修改和删除数据;熟悉和掌握对数据表中数据的查询操

实验类型:综合性
  1. 掌握使用INSERT、UPDATE、DELETE语句向表中插入数据、修改和删除数据;
  2. 熟悉和掌握对数据表中数据的查询操作和SQL命令的使用
  3. 能掌握各种查询方法,能通过查询获取对自己有用的数据,能对查询结果进行编辑;
  4. 理解不同类型的查询语句其执行原理及查询效率
  5. 加深理解关系运算的各种操作(尤其是关系的选择,投影,连接和除运算);
  6. 理解视图概念、运用视图
  7. 报告中,要有重要方法、讨论与思考过程等内容书写。

1.1表的概念
表是数据的集合,是用来存储数据和操作数据的逻辑结构。和电子表格类似,数据在表中是按照行和列的格式来组织排列的,每一行代表一条唯一的记录,每一列代表一个属性。

数据库实验二:图书信息管理系统数据查询与数据更新

1.2数据类型
常用的数据类型:整型、浮点型、货币类、日期和时间、字符类型(含Unicode字符串)、二进制类型等

1.3数据的完整性
数据完整性是指数据的正确性、一致性和安全性,它是衡量数据库中数据质量好坏的重要标准。当用户使用INSERT、DELETE或UPDATE语句修改数据库内容时,数据的完整性就可能会遭到破环。为此,SQL Sever提供了实施数据完整性的方法包括约束、规则等。数据的完整性大致分为四种类型:实体完整性:表中的每一行都能由主键的属性列来唯一标识,且不存在重复的数据行;域完整性:限制向表中输入值的范围,保证给定列的输入的有效性。可以通过限制数据类型,值域或数据格式实现;参照完整性:当一个表引用了另一个表中的某些数据时,要防止非法的数据更新,以保持表间数据的一致性;用户自定义完整性:体现实际运用的业务规则。

1.4 各种查询语句其执行原理及查询效率

1.5 视图作为一种数据库对象,可以让用户对数据源进行查询和修改。视图是SQL Sever中重要的数据库对象。视图常用于集中、简化和定制数据库中的数据信息,为用户从多角度观察数据库中的数据提供方便。

1. 数据更新
请使用SQL语句方法完成以下操作。
1.1建立数据库后,运行实验二提供的相关代码。每个学生根据下面提供的表结构,用SQL命令方式,给图书信息表添加本课程教材书籍。同时添加学生本人的班级和学生信息。

1.2 在图书表里面的B0001的记录中,作者信息更改为“阿历克斯”,图书的价格为50.5元。修改学生信息,密码为Ab12@@,联系电话为,18812345688。
1.3 删除学生信息表中,上题修改学生的记录。

请针对以下业务的具体需求,对上述参考表及其数据做对应查询。
2.1 单表查询

  1. 查询所有图书的基本信息
  2. 查询所有图书的编号、名称和价格
  3. 查询计算机系学生读者的借书证号、姓名和联系电话
  4. 查询学生借书证号为L0001且所借图书编号为B0003的借阅记录信息
  5. 查询t_borrow表未还书的记录(假设当前的日期是2022-10-20号)。
  6. 查询借阅日期“1998-02-06”至“2021-12-06”的借书记录信息
  7. 查询姓徐的学生读者的基本信息

2.2对查询结果进行编辑

  1. 查询所有曾经借书学生的姓名和所在院系,输出结果的字段名是:姓名和所在院系。
  2. 查询借书证号为L0002的读者所借图书至今的天数总和。
  3. 查询借书证号为L0003的读者一共借了多少本书(同一本书多次续借的话,仅统计一次)。
  4. 查询所有图书信息,结果按价格的降序排列。
  5. 统计图书信息表中不同出版社的图书的数目,把统计结果大于或等于2的记录输出。
  6. 查询所有图书的库存总量。
  7. 输出借阅过期的借阅记录,并且输出的罚金翻倍。
  8. 持有L0002的读者已经缴纳了全部的罚金,请把对应借书记录的罚金更改为0,然后把续借的数量增加1,把过期记录的“是否过期”属性修改为“N”。

2.3连接查询
17. 采用等值连接的方式查询学生读者的学号、借书证号、姓名、联系电话以及所借书的图书编号,借阅日期。
18. 采用内连接的方法查询图书信息以及对应图书类别的详细信息。
19. 查询学生读者借书证号、姓名、班级以及所借图书的图书编号、借阅日期,没有借阅记录的学生也要输出。
20. 查询借书信息表中读者的借书证号、图书编号、借阅日期以及所借图书在图书信息表中对应的出版社编号,图书信息表没有连接成功的记录也要输出。
21. 查询在被罚款的同学的学号、姓名、电话、班级名称、借书证号、借书证发证日期、图书编号、图书名称、应还书日期、罚金数量。
22. 查询读者的借书证号、姓名、联系电话、以及所借图书的图书编号、类别名称、借阅日期、出版社和编号。

2.3子查询
23. 查询借阅了图书编号为B0001的图书的读者信息。
24. 查询借阅了广东人民出版社和清华出版社的图书的读者信息。
25. 查询还未归还图书的读者的借书证号、姓名、部门和联系电话(假设当前的日期是2022-10-20号,图书归还时候,一定要缴纳罚金)。
26. 查询姓名为朱威读者的借阅记录。
27. 查询跟徐广声借阅了相关图书的其他读者详细信息。
28. 利用相关子查询邹思柔是否有借阅图书的记录,若有则输出借阅记录。
29. 查询图书价格比所有图书平均价格高的图书信息。
30. 查询图书价格比图书编号为B0002和B0003的价格都高的图书信息。

2.4视图
1.根据应用,请同学定义2张视图。第一个视图输出学生学号、姓名、电话号码、班级名称、系部名称。第二个视图输出罚金超过10元的学生学号、学生、电话号码、借书证、图书名字、借书日期、应还书日期及罚金。
2.创建视图运用视图修改视图数据(与操作表一样,只是把table换成view

1.Windows XP Professional SP3/Windows7/win10
2.SQL Server 2012/2019

(查询的代码和查询的结果,贴图放在每个题目的下面

请使用SQL语句方法完成以下操作。
建表之前要求创建数据库:st_db

所有的表与视图要在自建的数据库中创建。

–先判断,后删除,再创建

1.1建立数据库后,运行实验二提供的相关代码。每个学生根据下面提供的表结构,用SQL命令方式,给图书信息表添加本课程教材书籍。同时添加学生本人的班级和学生信息。
要求:以下所有表的字段要用英文名称,为了达到训练效果,首先在答题区直接输入代码(不要有注释,然后,选择复制后粘贴到客户端界面进行调试,最后,再把客户端调试完成的正确代码(要有注释)复制其后。

图书信息表t_book

要求:主键、外键在列约束条件定义,即定义类型同时定义。
:--建表t_book
改进(讨论
语句

通用:(添加了指定用户)

新增馆藏可借图书c_book

要求讨论为什么要建此表。结合现实图书馆讨论读者所借阅的图书是什么样的?如何改进


原始表格创建语句

改进1 : 添加自动增量,检查状态是否符合标准

改进2 : 将主键改为联合主键 (原因在后面操作异常问题与解决方案中问题一)

借书证表t_libraryCard

学生信息表t_student

要求主键、外键用定义约束条件名形式定义

约束条件名形式定义 语法:

班级信息表t_class

要求主键定义用修改表形式定义。

借阅信息表 t_borrow

要求讨论ReturnDate字段是否可空的讨论。请注意:这里Book_id的类型以及引用的是哪个表中书号

–对ReturnDate是否可空的讨论

(1)可以,因为书本可能在被借阅状态,因此没有还书日期。
(2)不可以,我们可以定义最晚还书日期进行填充,如果提前还书再修改即可!

–对这里Book_id的类型以及引用的是哪个表中书号

类型是char(15)
引用的是c_book中的Bid书号

图书类别信息表 t_book_type

(其实在定义图书信息表t_book的时候就已经将 图书类别信息表 t_book_type当成前置表格创建了

在图书表里面的B0001的记录中,作者信息更改为“阿历克斯”,图书的价格为50.5元。
在学生表中,修改学号为21210120117的学生信息,密码为Ab12@@,联系电话为,18812345688。

在借书证表中,插入本人信息。
在学生表中,插入本人的信息。
在借阅表中,插入一条本人所借的一本书信息。
关于以上各表数据准备的顺序(表)是什么?为什么?用实验说明。
数据准备数据语句(每个表写3个有代表性,但,在SQL脚本中是全的

显示数据语句

修改前数据(复制

在这里插入图片描述
在这里插入图片描述

修改语句

修改后显示语句

修改后数据(复制
在这里插入图片描述
在这里插入图片描述

上面只是简单样例

增加数据语句

: 插入语法为

所以 插入单行数据 的写法为

如果要 按与表列顺序不同的顺序插入数据

分别显示三个插入本人信息的表的数据包括本人信息

如果要查询某人(本人 )信息 eg.查询 潘奕寰 相关信息

1.3 在学生信息表中,删除上题中修改过的学生记录。

当然根据之前表格信息,要完整删除该学生所有的信息,应该删除其他表该学生相关信息

关于以上各表数据准备的顺序(表)是什么?为什么?用实验说明。

图书类别信息表 t_book_type --> 图书信息表t_book -->新增馆藏可借图书c_book
借书证表t_libraryCard
班级信息表t_class – > 学生信息表t_student
其中图书类别信息表 t_book_type , 借书证表t_libraryCard , 班级信息表t_class 无前提准备要求,可以同时第一时间创建/数据准备
但 借阅信息表 t_borrow需要 在 新增馆藏可借图书c_book 和 借书证表t_libraryCard 这两个表之后

理由: 无外键约束的为第一梯队,用第一梯队为外键约束的为第二梯队以此类推。外键是从属关系。如果不这么做,会报错: 说的就是因为有外键约束"FR_LC" ,并且 表"dbo.t_libraryCard", column 'LCardNo’里面没有这个值,所以无法添加。 (具体外键约束

请针对以下业务的具体需求,对上述参考表及其数据做对应查询。

2.1单表查询

1.查询所有图书的基本信息
2.查询所有图书的编号、名称和价格
3. 查询计算机系学生读者的借书证号、姓名和联系电话


步骤一,查询计算机系班级编号

第一步结果:

当然 我们还可以一步到位
语句

结果: 发现结果是一样的

具体用法参考 sql—如何把sql查询出来的结果当做另一个sql的条件查询,1、语句2、with as

4. 查询学生借书证号为L0001且所借图书编号为B0003的借阅记录信息
5. 查询t_borrow表未还书的记录(假设当前的日期是2023-10-20号)。要求

很不巧啊,上面添加没有符合要求的
那么我们添加一个试试

6. 查询借阅日期“2023-08-05”至“2023-9-21”的借书记录信息
7. 查询与本人姓氏(如:学生林小娜)相同的学生读者(包括自己,姓林的)的基本信息

查询姓名第二个字与本人姓名第二个字不同学生读者的基本信息。
语句:

2.2对查询结果进行编辑

1. 查询所有曾经借书学生的姓名和所在院系,输出结果的字段名是:姓名和所在院系。
2. 查询借书证号为L0002的读者所借图书至今的天数总和。
3. 查询借书证号为L0003的读者一共借了多少本书(同一本书多次续借的话,仅统计一次)。
4. 查询所有图书信息,结果按价格的降序排列。
5. 统计图书信息表中不同出版社的图书的数目,把统计结果大于或等于2的记录输出。
6. 查询所有图书的库存总量。
7. 输出借阅过期的借阅记录,并且输出的罚金翻倍。
8. 持有L0002的读者已经缴纳了全部的罚金,请把对应借书记录的罚金更改为0,然后把续借的数量增加1,把过期记录的“是否过期”属性修改为“N”。

2.3连接查询

1. 采用等值连接的方式查询学生读者的学号、借书证号、姓名、联系电话以及所借书的图书编号,借阅日期。
2. 采用内连接的方法查询图书信息以及对应图书类别的详细信息。
3. 查询学生读者借书证号、姓名、班级以及所借图书的图书编号、借阅日期,没有借阅记录的学生也要输出。
4. 查询借书信息表中读者的借书证号、图书编号、借阅日期以及所借图书在图书信息表中对应的出版社编号,图书信息表没有连接成功的记录也要输出。
5. 查询在被罚款的同学的学号、姓名、电话、班级名称、借书证号、借书证发证日期、图书编号、图书名称、应还书日期、罚金数量。

添加一个看看效果:

然后再次查询 , 结果

6. 查询读者的借书证号、姓名、联系电话、以及所借图书的图书编号、类别名称、借阅日期、出版社和编号
7. 利用查询语句与数据更新语句等实现每批次购进图书在馆数的修改。提示:在t_book中,用修改表语句增加在馆数量字段。

: 实话说没怎么看懂这个题目,个人理解是用新增馆藏可借图书c_book中的数据去增加
语句:
查询

修改后并查询

2.4子查询

1. 查询借阅了图书编号为B0001的图书的读者信息。

当然 如果 不想重复 用 DISTINCT

2. 查询借阅了广东人民出版社和清华出版社的图书的读者信息。
3. 查询还未归还图书的读者的借书证号、姓名、部门和联系电话(假设当前的日期是2022-10-20号,图书归还时候,一定要缴纳罚金)。
4. 查询姓名为朱威读者的借阅记录。
5. 查询跟徐广声借阅了相关图书的其他读者详细信息。
6. 利用相关子查询邹思柔是否有借阅图书的记录,若有则输出借阅记录。
7. 查询图书价格比所有图书平均价格高的图书信息。
8. 查询图书价格比图书编号为B0002和B0003的价格都高的图书信息。

1.根据应用,请同学定义2张视图。第一个视图输出学生学号、姓名、电话号码、班级名称、系部名称。第二个视图输出罚金超过10元的学生学号、学生、电话号码、借书证、图书名字、借书日期、应还书日期及罚金。


语句

简单运用视图

2.创建视图运用视图修改视图数据(与操作表一样,只是把table换成view

–1创建视图并修改字段的别名

直接运用视图查询与运行结果

–2插入视图数据

查询插入后的视图与运行结果

–3修改视图的数据值

查询修改了值的视图与运行结果

–4删除视图的行数据

查询删除了值的视图与运行结果

错误背景
在建立 借阅信息表 t_borrow 中出现

将 c_book表中 Bid 设置为主键即可解决

错误背景:2. 查询借阅了广东人民出版社和清华出版社的图书的读者信息。

= 改成 IN

本文地址:http://dfvalve.xrbh.cn/news/6329.html    迅博思语资讯 http://dfvalve.xrbh.cn/ , 查看更多
 
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号