相关文章
原理:
1.1表的概念
表是数据的集合,是用来存储数据和操作数据的逻辑结构。和电子表格类似,数据在表中是按照行和列的格式来组织排列的,每一行代表一条唯一的记录,每一列代表一个属性。
1.2数据类型
常用的数据类型:整型、浮点型、货币类、日期和时间、字符类型(含Unicode字符串)、二进制类型等
1.3数据的完整性
数据完整性是指数据的正确性、一致性和安全性,它是衡量数据库中数据质量好坏的重要标准。当用户使用INSERT、DELETE或UPDATE语句修改数据库内容时,数据的完整性就可能会遭到破环。为此,SQL Sever提供了实施数据完整性的方法包括约束、规则等。数据的完整性大致分为四种类型:实体完整性:表中的每一行都能由主键的属性列来唯一标识,且不存在重复的数据行;域完整性:限制向表中输入值的范围,保证给定的列的输入的有效性。可以通过限制数据类型,值域或数据格式实现;参照完整性:当一个表引用了另一个表中的某些数据时,要防止非法的数据更新,以保持表间数据的一致性;用户自定义完整性:体现实际运用的业务规则。
1.4 各种查询语句其执行原理及查询效率
1.5 视图作为一种数据库对象,可以让用户对数据源进行查询和修改。视图是SQL Sever中重要的数据库对象。视图常用于集中、简化和定制数据库中的数据信息,为用户从多角度观察数据库中的数据提供方便。
内容:
数据查询
请针对以下业务的具体需求,对上述参考表及其数据做对应查询。
.1 单表查询
- 查询所有图书的基本信息
- 查询所有图书的编号、名称和价格
- 查询计算机系学生读者的借书证号、姓名和联系电话
- 查询学生借书证号为L0001且所借图书编号为B0003的借阅记录信息
- 查询t_borro表未还书的记录(假设当前的日期是2022-10-20号)。
- 查询借阅日期“1998-02-06”至“2021-12-06”的借书记录信息
- 查询姓徐的学生读者的基本信息
.2对查询结果进行编辑
- 查询所有曾经借书学生的姓名和所在院系,输出结果的字段名是:姓名和所在院系。
- 查询借书证号为L0002的读者所借图书至今的天数总和。
- 查询借书证号为L0003的读者一共借了多少本书(同一本书多次续借的话,仅统计一次)。
- 查询所有图书信息,结果按价格的降序排列。
- 统计图书信息表中不同出版社的图书的数目,把统计结果大于或等于2的记录输出。
- 查询所有图书的库存总量。
- 输出借阅过期的借阅记录,并且输出的罚金翻倍。
- 持有L0002的读者已经缴纳了全部的罚金,请把对应借书记录的罚金更改为0,然后把续借的数量增加1,把过期记录的“是否过期”属性修改为“N”。
.3连接查询
- 采用等值连接的方式查询学生读者的学号、借书证号、姓名、联系电话以及所借书的图书编号,借阅日期。
- 采用内连接的方法查询图书信息以及对应图书类别的详细信息。
- 查询学生读者借书证号、姓名、班级以及所借图书的图书编号、借阅日期,没有借阅记录的学生也要输出。
- 查询借书信息表中读者的借书证号、图书编号、借阅日期以及所借图书在图书信息表中对应的出版社编号,图书信息表没有连接成功的记录也要输出。
- 查询在被罚款的同学的学号、姓名、电话、班级名称、借书证号、借书证发证日期、图书编号、图书名称、应还书日期、罚金数量。
- 查询读者的借书证号、姓名、联系电话、以及所借图书的图书编号、类别名称、借阅日期、出版社和编号。
4.子查询
- 查询借阅了图书编号为B0001的图书的读者信息。
- 查询借阅了广东人民出版社和清华出版社的图书的读者信息。
- 查询还未归还图书的读者的借书证号、姓名、部门和联系电话(假设当前的日期是2022-10-20号,图书归还时候,一定要缴纳罚金)。
- 查询姓名为朱威读者的借阅记录。
- 查询跟徐广声借阅了相关图书的其他读者详细信息。
- 利用相关子查询邹思柔是否有借阅图书的记录,若有则输出借阅记录。
- 查询图书价格比所有图书平均价格高的图书信息。
- 查询图书价格比图书编号为B0002和B0003的价格都高的图书信息。
5.视图
1.根据应用,请同学定义2张视图。第一个视图输出学生学号、姓名、电话号码、班级名称、系部名称。第二个视图输出罚金超过10元的学生学号、学生、电话号码、借书证、图书名字、借书日期、应还书日期及罚金。
2.视图运用视图修改视图数据(与操作表一样,只是把table换成view)
过程与结果
- 数据查询
请针对以下业务的具体需求,对上述参考表及其数据做对应查询。
1. 单表查询
- 查询所有图书的基本信息
- 查询所有图书的编号、名称和价格
- 查询计算机系学生读者的借书证号、姓名和联系电话
- 查询学生借书证号为L0001且所借图书编号为B0003的借阅记录信息
- 查询t_borro表未还书的记录(假设当前的日期是2022-10-20号)。
- 查询借阅日期“1998-02-06”至“2021-12-06”的借书记录信息
- 查询姓徐的学生读者的基本信息
代码截图:
2.对查询结果进行编辑
- 查询所有曾经借书学生的姓名和所在院系,输出结果的字段名是:姓名和所在院系。
- 查询借书证号为L0002的读者所借图书至今的天数总和。
- 查询借书证号为L0003的读者一共借了多少本书(同一本书多次续借的话,仅统计一次)。
- 查询所有图书信息,结果按价格的降序排列。
- 统计图书信息表中不同出版社的图书的数目,把统计结果大于或等于2的记录输出。
- 查询所有图书的库存总量。
- 输出借阅过期的借阅记录,并且输出的罚金翻倍。
- 持有L0002的读者已经缴纳了全部的罚金,请把对应借书记录的罚金更改为0,然后把续借的数量增加1,把过期记录的“是否过期”属性修改为“N”。
代码截图:
3.连接查询
- 采用等值连接的方式查询学生读者的学号、借书证号、姓名、联系电话以及所借书的图书编号,借阅日期。
- 采用内连接的方法查询图书信息以及对应图书类别的详细信息。
- 查询学生读者借书证号、姓名、班级以及所借图书的图书编号、借阅日期,没有借阅记录的学生也要输出。
- 查询借书信息表中读者的借书证号、图书编号、借阅日期以及所借图书在图书信息表中对应的出版社编号,图书信息表没有连接成功的记录也要输出。
- 查询在被罚款的同学的学号、姓名、电话、班级名称、借书证号、借书证发证日期、图书编号、图书名称、应还书日期、罚金数量。
- 查询读者的借书证号、姓名、联系电话、以及所借图书的图书编号、类别名称、借阅日期、出版社和编号。
代码截图:
4.子查询
- 查询借阅了图书编号为B0001的图书的读者信息。
- 查询借阅了广东人民出版社和清华出版社的图书的读者信息。
- 查询还未归还图书的读者的借书证号、姓名、部门和联系电话(假设当前的日期是2022-10-20号,图书归还时候,一定要缴纳罚金)。
- 查询姓名为朱威读者的借阅记录。
- 查询跟徐广声借阅了相关图书的其他读者详细信息。
- 利用相关子查询邹思柔是否有借阅图书的记录,若有则输出借阅记录。
- 查询图书价格比所有图书平均价格高的图书信息。
- 查询图书价格比图书编号为B0002和B0003的价格都高的图书信息。
代码截图:
5.视图
根据应用,请同学定义2张视图。第一个视图输出学生学号、姓名、电话号码、班级名称、系部名称。第二个视图输出罚金超过10元的学生学号、学生、电话号码、借书证、图书名字、借书日期、应还书日期及罚金。
代码截图: