数据库图书信息管理数据库SQL语句

合集下载

数据库课程设计--图书借阅管理系统的设计

数据库课程设计--图书借阅管理系统的设计

图书借阅管理系统的设计1.需求分析图书信息、借阅证件信息及图书借阅管理是一件非常繁琐但又及其重要的工作,因此有必要开发一个数据库管理系统,用来管理这些信息。

这篇课程设计介绍的就是图书借阅信息管理系统。

系统的具体要求如下所述:(1)图书信息的录入:要求能够将图书信息录入到数据库中。

(2)图书信息的修改:根据需要,修改、删除图书信息。

(3)用户登陆:根据用户权限登陆此系统。

(4)系统用户管理:要求可以管理系统的用户,包括添加、修改和删除用户。

(5)借阅证件信息录入:可以输入不同类型的借阅者信息,并根据需要修改、删除借阅证件信息。

(6)借阅证管理:包括借阅证丢失、过期等管理。

(7)借阅管理:包括借书、还书、过期还书与书籍丢失处罚等管理。

2.数据库设计数据库设计主要在SQL Server服务器端建立数据库和数据表,并实现数据处理功能。

本文所设计的数据库中要记录读者的借书情况、图书被借阅的情况以及读者、图书的基本情况。

下面对图书借阅管理系统所需的数据结构进行分析并创建数据库。

2.1 概念结构设计现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。

由于这个系统并不复杂,因此可采用自顶向下的设计方法。

自顶向下设计的关键是确定系统的核心活动。

所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。

确定了核心活动之后,系统就有了可扩展的余地。

对于这个图书借阅管理系统,其核心活动是借阅,读者与图书之间是通过借阅发生联系的。

因此,此系统包含的实体有:(1) 读者:用于描述一名读者的基本信息,用借书卡编号来标识。

(2) 图书:用于描述一本图书的基本信息,用图书编号来标识。

经过初步分析,可以得到此系统中各实体所包含的基本属性如下:读者:借阅证编号、读者姓名、工作单位、身份证号、借阅证类型、办证日期、证件状态。

图书:图书编号、图书名称、图书分类、作者、出版社、图书价格、图书封面由于一名读者可以同时借阅多本图书,而一本图书一次只能借给一名读者,因此读者和图书之间是一对多的联系。

用SQL语句建立数据库图书

用SQL语句建立数据库图书
2)查询所以图书的作者和编号
select作者,图书编号
from图书编目表
3)查询所以男生的信息
select *
from学生表
where性别=’男’
4)查询所以学生的借书情况
select学生表.证件号,姓名,借书登记表.图书编号,借期,还期
from学生表,图书编目表,借书登记表
where学生表.证件号=借书登记表.证件号
用SQL语句建立数据库图书
create database图书
on
(name=图书.data,
filename=’D:\图书_mdf’,
size=2,
mazsize=unlimited,
filegrowth=10%)
log on
(name=图书.log,
filename=’D:图书_ldf’,
size=5,
and
图书编目表.图书编号=借书登记表.图书编号
5)查询所以学生的姓名和班级和所借的书名
select姓名,班级,图书名
from学生表,借书登记表,图书编目表
where学生表.证件号=借书登记表.证件号
and图书编目表.图书编号=借书登记表.图书编号
图书名char(15) ,
作者char(10) ,
类别char(20) ,
单价char(10)
)
学生表(证件号,姓名,性别,籍贯,电话)
图书编目表(图书编号,图书名,作者,类别,单价)
借书登记表(证件号,图书编号,借期,还期)
学生表
借书登记表
图书编目表
1)查询学生表的所有信息
select *
from学生表
create table借书登记表

SQL语句练习及参考答案

SQL语句练习及参考答案

SQL语句练习及参考答案SQL 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。

试完成表⽰下列查询。

(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。

(2)建⽴性别只能为“男”、“⼥”的约束。

(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。

(4)检索选修课程号为k1和k5的学⽣学号(sno)。

(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。

(6)删除所有男同学的选课记录。

1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。

高校图书馆管理系统(SQL数据库)

高校图书馆管理系统(SQL数据库)

高校图书馆管理系统(SQL数据库)高校图书馆管理系统(SQL数据库)随着信息技术的发展,高校图书馆管理系统在图书馆运营中的重要性日益凸显。

为了更好地管理馆藏资源和提供优质的服务,许多高校选择使用SQL数据库作为图书馆管理系统的基础。

本文将探讨高校图书馆管理系统中SQL数据库的应用及其优势。

一、图书馆管理系统简介图书馆管理系统是高校图书馆中的核心业务系统,它涵盖了图书馆的各个环节,包括图书采购、编目、借阅、归还、查询等功能。

通过图书馆管理系统,读者可以方便地查找、借阅和归还图书,图书馆工作人员也可以高效地管理馆藏资源。

二、SQL数据库在图书馆管理系统中的应用1. 数据库设计在图书馆管理系统中,SQL数据库的设计是至关重要的一环。

通过合理的数据库设计,可以提高系统的查询效率和安全性。

例如,可以将图书馆中的书籍信息、读者信息、借阅记录等存储在不同的数据库表中,并通过外键关联它们,实现数据的联合查询。

2. 图书馆资源管理SQL数据库提供了强大的查询和管理功能,可以方便地进行图书馆资源管理。

通过SQL语句,图书馆管理员可以实现对图书馆馆藏资源进行分类、检索和统计。

同时,SQL数据库还支持数据的备份和恢复,保障了图书馆数据的安全性。

3. 借阅管理借阅管理是图书馆管理系统中的核心功能之一。

SQL数据库可以存储读者的借阅记录,包括借阅时间、归还时间、借阅状态等信息。

通过SQL查询语句,管理员可以实时监控图书的借阅情况,及时催还逾期图书。

4. 读者管理通过SQL数据库,图书馆管理员可以方便地管理读者信息。

包括读者的个人信息、借阅历史记录、借阅限制等。

管理员可以针对不同的读者类型设置不同的借阅权限,确保图书馆资源的合理利用。

5. 统计和报表SQL数据库提供了强大的统计和报表功能,方便图书馆管理员进行图书馆运营效果的评估。

通过SQL查询语句,可以得到图书馆的借阅量、图书馆藏资源的流通情况等各项指标,为图书馆决策提供有力支持。

3-SQL语句练习题参考答案

3-SQL语句练习题参考答案

标准SQL语言一、选择题1、下面关于SQL标准的叙述中,不正确的是(B )。

A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。

B.SQL语言是一种高度过程化的语言。

C.SQL标准规定数据库是按三级模式结构构建。

D.SQL语言是关系型数据库的标准语言。

E.SQL语言是面向集合的语言。

2、SQL语言中,修改基本表结构的语句是( B )。

A.UPDATE B.ALTER C.DROP D.CREATE3、SQL语言中,删除基本表结构的语句是( C )。

A.DELETE B.ALTER C.DROP D.CREATE4、下面关于“视图”的叙述中,不正确的是( C )。

A.视图是一种“虚表”,它的数据被存放在基本表中。

B.视图提供了逻辑数据独立性。

C.不能通过视图来更新数据库中的数据。

D.视图能提供对数据的安全保护。

5、下面关于SELECT语句的叙述中,不正确的是(C)。

A.SELECT产生的结果是一个集合。

B.HA VING子句必须与GROUP BY子句一起使用。

C.可以省略FROM子句。

D.可以省略WHERE子句。

二、填空题1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。

2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。

3、向表中插入元组时,主键的值不能取(NULL )值。

4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。

5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。

三、判断题1、SQL语言是面向集合操作的语言。

√2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。

×3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。

√4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。

图书管理系统数据库设计_MYSQL实现

图书管理系统数据库设计_MYSQL实现

图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。

一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。

2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息。

2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。

3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。

4.学生直接归还图书,根据图书编码修改借阅信息5.管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6.管理员可以注销学生信息。

通过需求定义,画出图书管理系统的数据流图:数据流图二、系统功能设计画出系统功能模块图并用文字对各功能模块进行详细介绍。

三、数据库设计方案图表1、系统E-R模型2、设计表给出设计的表名、结构以及表上设计的完整性约束。

student:book_sort:ticket_fee float null 处罚金额列名数据类型是否为空/性质说明manager_id varchar not null / PK 管理员编号manager_name varchar not null 管理员姓名manager_age varchar not null 管理员年龄manager_phone varchar not null 管理员电话3、设计索引给出在各表上建立的索引以及使用的语句。

student:1.为stu_id创建索引,升序排序sql:create index index_id on student(stu_id asc);2.为stu_name创建索引,并且降序排序sql:alter table student add index index_name(stu_name, desc);插入索引操作和结果如下所示:mysql> create index index_id on student(stu_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> alter table student add index index_name(stu_name desc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql>book:1.为book_id创建索引,升序排列sql:create index index_bid on book(book_id);2.为book_record创建索引,以便方便查询图书的登记日期信息,升序:sql:create index index_brecord on book(book_record);插入索引的操作和结果如下所示:mysql> create index index_bid on book(book_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> create index index_brecord on book(book_record);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0borrow:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on borrow(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid on borrow(stu_id asc, book_id asc); Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0return_table:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on return_table(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid_r on return_table(stu_id asc, book_id asc); Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket:1. 为stu_id和book_id创建多列索引:sql:create index index_sid_bid on ticket(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid on ticket(stu_id asc, book_id asc); Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0manager:1.为manager_id创建索引:sql:create index index_mid on manager(manager_id);插入索引的操作和结果如下所示:mysql> create index index_mid on manager(manager_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 04、设计视图给出在各表上建立的视图以及使用的语句。

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析

先创建下面三个表:(book表)(borrow表)(reader表)1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。

2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。

3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。

4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OU TPUT)和单价(PRICE)升序排序。

5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。

6) 检索同时借阅了总编号(BOOK_ID)为和两本书的借书证号(READER_ID)。

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。

8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。

9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

##10)* 找出借阅了<FoxPro大全>一书的借书证号。

11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。

12) 查询2006年7月以后没有借书的读者借书证号、姓名及单位。

#13) 求”科学出版社”图书的最高单价、最低单价、平均单价。

##14)* 求”信息系”当前借阅图书的读者人次数。

#15) 求出各个出版社图书的最高价格、最低价格和总册数。

#16) 分别找出各单位当前借阅图书的读者人数及所在单位。

17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。

18) 分别找出借书人次数多于1人次的单位及人次数。

19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。

20) 查询经济系是否还清所有图书。

如果已经还清,显示该系所有读者的姓名、所在单位和职称。

附录:建表语句创建图书管理库的图书、读者和借阅三个基本表的表结构:创建BOOK:(图书表)CREATE TABLE BOOK (BOOK_ID int,SORT VARCHAR(10),BOOK_NAME VARCHAR(50),WRITER VARCHAR(10),OUTPUT VARCHAR(50),PRICE int);创建READER:(读者表)CREATE TABLE READER (READER_ID int,COMPANY VARCHAR(10),NAME VARCHAR(10),SEX VARCHAR(2),GRADE VARCHAR(10),ADDR VARCHAR(50));创建BORROW:(借阅表)CREATE TABLE BORROW (READER_ID int,BOOK_ID int,BORROW_DATE datetime)插入数据:BOOK表:insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP5/10','计算机基础','李伟','高等教育出版社',18.00);insert into BOOK values(,'TP3/12','FoxBASE','张三','电子工业出版社',23.60);insert into BOOK values(,'TS7/21','高等数学','刘明','高等教育出版社',20.00);insert into BOOK values(,'TR9/12','线性代数','孙业','北京大学出版社',20.80);insert into BOOK values(,'TR7/90','大学英语','胡玲','清华大学出版社',12.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',2 1.80);READER表:insert into reader values(111,'信息系','王维利','女','教授','1号楼424'); insert into reader values(112,'财会系','李立','男','副教授','2号楼316 ');insert into reader values(113,'经济系','张三','男','讲师','3号楼105'); insert into reader values(114,'信息系','周华发','男','讲师','1号楼316'); insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224 ');insert into reader values(116,'信息系','李明','男','副教授','1号楼318 ');insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214 ');insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216 ');insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318 ');insert into reader values(120,'国际贸易','李雪','男','副教授','4号楼506');insert into reader values(121,'国际贸易','李爽','女','讲师','4号楼510 ');insert into reader values(122,'国际贸易','王纯','女','讲师','4号楼512 ');insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202'); insert into reader values(124,'财会系','朱海','男','讲师','2号楼210'); insert into reader values(125,'财会系','马英明','男','副教授','2号楼212 ');BORROW表:insert into borrow values(112,,'3-19-2006');insert into borrow values(125,,'2-12-2006');insert into borrow values(111,,'8-21-2006');insert into borrow values(112,,'3-14-2006');insert into borrow values(114,,'10-21-2006');insert into borrow values(120,,'11-2-2006');insert into borrow values(120,,'10-18-2006');insert into borrow values(119,,'11-12-2006');insert into borrow values(112,,'10-23-2006');insert into borrow values(115,,'8-21-2006');insert into borrow values(118,,'9-10-2006');现有关系数据库如下:数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。

Access 2010数据库应用:修改“图书信息2”表中新添加记录的“价格”

Access 2010数据库应用:修改“图书信息2”表中新添加记录的“价格”
图6-30 “您正做准备更新1行” 提示信息对话框
5
更新完成后,打开数据表“图书信息2”, 可以看到新追加记录的价格已修改为“40”, 如图6-31所示。
图6-31 数据表“图书信息2”中修改“价格”字段的值
6
《Access2010数据库应用》
ቤተ መጻሕፍቲ ባይዱ
3
【任务实施】
(1)打开SQL视图 (2)输入SQL语句 在【SQL视图】窗口输入如下所示的Update语句。
Update 图书信息2 Set 价格=40 Where 图书编号="TP3/2715"
4
(3)保存查询 将该查询进行保存,其名称为“查询6-13”。 (4)运行SQL语句 在查询工具的【设计】上下文命令选项卡的 【结果】组中单击选择【运行】按钮,此时会弹出 如图6-30所示的对话框,单击【是】按钮,则对 “图书信息2”表中符合条件的数据进行修改操作。
单元6 应用SQL语句操作Access数据表
《Access2010数据库应用》
单元6 应用SQL语句操作Access数据表
6.5 使用Update语句修改数据表中的数据
2
《Access2010数据库应用》
【任务6-13】修改“图书信息2” 表中新添加记录的“价格”
【任务描述】
将数据表“图书信息2”中新添 加的记录的“价格”修改为40元。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验 SQL语言一、实验目的1、理解数据库以及数据表的设计;2、熟悉SQL Server2005中的数据类型;3、熟悉使用SQL语句创建和删除模式和索引;4、掌握使用SQL语句创建、修改和删除数据表;5、掌握使用SQL语句查询表中的数据;6、掌握使用SQL语句插入、修改和删除数据表中的数据;7、掌握使用SQL语句创建、删除、查询和更新视图。

二、实验容(一)创建数据库和模式1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。

2、通过SQL语句在该数据库中创建模式L-C。

(二)创建和管理数据表要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。

1、通过SQL语句将以下数据表创建在L-C模式下:课程信息表(tb_course)——课程编号Course number 、课程名Course name 、先修课The first course 、学分credit2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下:图书类别信息表(tb_booktype)——类别编号Type number 、类别名称Category name图书信息表(tb_book)——图书编号ISBN 、类别编号Type number、书名title 、作者author、BookPublic、定价BookPrice、库存数Inventory number读者信息表(tb_reader)——读者编号Reader ID 、、性别、学号Student ID 、班级、系部pastern 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期Borrowing date 、归还日期Return date3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。

4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。

5、通过SQL语句删除课程信息表。

(三)创建和删除索引1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。

2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的字段的升序创建。

3、使用SQL语句删除之前创建的两个索引。

(四)数据库及数据表设计根据周围的实际应用情况,自选一个小型的数据库应用项目进行研究,完成该系统的设计。

要求2人一组,通过需求分析,列出系统的主要功能,并完成该系统数据库的逻辑结构设计。

例如可选择学籍管理系统、企业进销存管理系统、人事管理系统或在线考试系统等。

(五)数据查询通过SSMS向各数据表中添加以下记录。

(1(2)图书信息表(4)借阅信息表对以上数据表,完成以下操作:(1)查询每本图书的所有信息;(2)查询每个读者的读者编号、和班级;(3)查询每条借阅记录的借阅天数(函数DATEDIFF获取两个日期的差);(4)查询被借阅过的图书的图书编号;(5)查询图书编号为“10006”的书名和作者;(6)查询库存数在5到10本之间的图书的图书编号和书名;(7)查询计算机系或电子系姓的读者信息;(8)查询书名包括“英语”的图书信息;(9)统计男读者、女读者的人数;(10)统计各类图书的类别编号、平均定价以及库存总数;(11)统计每本书籍借阅的人数,要求输出图书编号和所借人数,查询结果按人数降序排列;(12)查询有库存的各类别图书的类别编号、类别名称和借阅数量;(13)查询借阅了“大学英语”一书的读者,输出读者、性别、系部;(14)查询每个读者的读者编号、、所借图书编号以及所借阅日期;(LEFT OUTER JOIN)(15)查询现有图书中价格最高的图书,输出书名、作者、定价;(16)查询借阅了“大学英语”但没有借阅“C++程序设计”的读者,输出读者、性别、系部;(17)统计借阅了2本以上图书的读者信息;(18)查询借阅了“大学英语”一书或者借阅了“C++程序设计”一书的读者信息;(用集合查询完成)(19)查询既借阅了“大学英语”一书又借阅了“C++程序设计”一书的读者信息;(用集合查询完成)(20)查询计算机系中比其他系所有读者借书数量都多的读者的信息;(21)在读者信息表中插入一条新的记录(读者编号:R10011;:三;所在系:电子系);(22)定义一个表tb_booknew,包含图书编号、书名和类别名称字段,要求将类编编号为“3”的图书的图书编号、书名和类别名称插入到tb_bknew表中;(23)将类别编号为“3”的所有图书的库存数增加5;(24)将“C++程序设计”这本书的归还日期增加一个月(函数DATEADD)。

(25)删除为“三”的读者的信息;(26)删除tb_bknew表中的所有数据;(27)创建一个名为“读者借阅信息_VIEW”的视图,要求显示计算机系所有读者的借阅信息,包括读者编号、、所在系、图书编号、书名和借阅日期等字段,更新该视图时要保证只有计算机系的读者借阅信息;(28)创建一个名为“图示借阅信息_VIEW”的视图,要求显示图书的借阅情况,包括图书编号、书名、库存数、借阅次数字段;(29)查询借阅次数大于2的图书的图书编号、书名、库存数和借阅次数;(30)删除“图示借阅信息_VIEW”视图。

三、实验步骤use[master]gocreate database db_Libraryon primary(name=N'db_Library_data',filename='E:\SQL\db_Library_data.mdf',size=10MB,maxsize=300MB,filegrowth=10%)log on(name='db_Library_log',filename='E:\SQL\db_Library_data.ldf',size=5MB,maxsize=200MB,filegrowth=2MB)gouse db_Librarygocreate schema"L-C"authorization guest create table tb_course--课程信息表(Coursenumber int,Coursename char(20),Thefirstcourse char(20),Credit int)gocreate table tb_booktype--图书类别信息表(Typenumber int,Categoryname char(20))gocreate table tb_book--图书信息表(ISBN int,Typenumber int,Title char(20),Author char(20),BookPublic char(20),BookPrice float,Inventorynumber int)gocreate table tb_reader--读者信息表(ReaderID char(20),Name char(20),Sex char(2),StudentID int,Class char(20),Pastern char(20))gocreate table tb_borrow--借阅信息表(ISBN int,ReaderID char(20),Borrowingdate char(20),Returndate char(20))goalter table tb_reader drop column Pasternalter table tb_reader add column Pasternalter table tb_book alter column BookPrice realdrop table tb_course--创建和删除索引create index IX_S_QUANTITY on tb_book(Inventorynumber)create index IX_S_NAME on tb_reader(Name asc)drop index IX_S_QUANTITYdrop index IX_S_NAME--图书类别信息表信息insert into tb_booktype values(1,'数学')insert into tb_booktype values(2,'英语')insert into tb_booktype values(3,'计算机')insert into tb_booktype values(4,'文学')insert into tb_booktype values(5,'艺术')insert into tb_booktype values(6,'电子信息')go--图书信息表信息insert into tb_book values(10001,3,'数据库管理','王珊','高等教育',35.50,10) insert into tb_book values(10002,3,'软件测试','贺平','机械工业',24.60,5) insert into tb_book values(10003,3,'C++程序设计','谭浩强','清华大学',30.00,8) insert into tb_book values(10004,4,'红楼梦','雪芹','人民文学',70.00,5)insert into tb_book values(10005,4,'西游记','罗贯中','人民文学',60.00,8) insert into tb_book values(10006,4,'红与黑','司汤达','人民文学',50.00,5) insert into tb_book values(10007,1,'高等数学','翼','清华大学',28.00,4)insert into tb_book values(10008,8,'有机化学','翔','高等教育',29.00,5)insert into tb_book values(10009,2,'大学英语','王琳','高等教育',25.00,10) insert into tb_book values(10010,2,'英语教程','王琳','高等教育',25.00,5)go--读者信息表信息insert into tb_reader values('R10001','小航','男',0851101,'08511','计算机系') insert into tb_reader values('R10002','王文广','女',0851102,'08511','计算机系') insert into tb_reader values('R10003','理','女',0851103,'08511','计算机系') insert into tb_reader values('R10004','彦宏','男',0851201,'08512','计算机系') insert into tb_reader values('R10005','丽霞','女',0851202,'08512','计算机系') insert into tb_reader values('R10006','王强','男',0721104,'07211','电子系') insert into tb_reader values('R10007','宝田','男',0721204,'07212','电子系') insert into tb_reader values('R10008','宋文霞','女',0761104,'07611','建工系') insert into tb_reader values('R10009','芳菲','女',0881104,'08811','外语系') insert into tb_reader values('R10010','常江宁','男',0881204,'08812','外语系') go--借阅信息表信息insert into tb_borrow values(10002,'R10003','2009-9-20','2009-10-20')insert into tb_borrow values(10003,'R10003','2009-9-20','2009-10-20')insert into tb_borrow values(10004,'R10003','2009-9-30','2009-10-30')insert into tb_borrow values(10009,'R10003','2009-9-30','2009-10-30')insert into tb_borrow values(10009,'R10007','2009-5-20','2009-6-20')insert into tb_borrow values(10010,'R10007','2009-5-20','2009-6-20')insert into tb_borrow values(10009,'R10009','2009-5-30','2009-6-30')insert into tb_borrow values(10010,'R10009','2009-5-22','2009-6-22')insert into tb_borrow values(10002,'R10009','2009-5-22','2009-6-22')insert into tb_borrow values(10003,'R10009','2009-5-30','2009-6-30')go--(1)查询每本图书的所有信息;select*from tb_book--(2)查询每个读者的读者编号、和班级;select ReaderID,Name,Classfrom tb_reader--(3)查询每条借阅记录的借阅天数;select datediff(DAY,Borrowingdate,Returndate)from tb_borrow--(4)查询被借阅过的图书的图书编号;select distinct ISBNfrom tb_borrow--(5)查询图书编号为“”的书名和作者;select Title,Authorfrom tb_bookwhere ISBN='10006'--(6)查询库存数在到本之间的图书的图书编号和书名;SELECT ISBN,Titlefrom tb_bookwhere Inventorynumber between 5 and 10--(7)查询计算机系或电子系姓的读者信息;select*from tb_readerwhere pastern in('计算机系','电子系')--(8)查询书名包括“英语”的图书信息;select*from tb_bookwhere Title='英语'--(9)统计男读者、女读者的人数;select Sex,COUNT(*)from tb_readergroup by Sex--(10)统计各类图书的编号、平均定价以及库存总数;select Typenumber,AVG(BookPrice)as平均定价,SUM(Inventorynumber)as库存总数from tb_bookgroup by Typenumber--(11)统计每本书籍借阅的人数,要求输出图书编号和所借人数,查询结果按人数降序排列;select ISBN,COUNT(*)from tb_borrowgroup by ISBNorder by COUNT(*)desc--(12)查询有库存的各类别图书的类别编号、类别名称和借阅数量;select tb_book.Typenumber,Categoryname,COUNT(*)from tb_book,tb_booktype,tb_borrowwhere tb_book.Typenumber=tb_booktype.Typenumber and tb_book.ISBN=tb_borrow.ISBNgroup by tb_book.Typenumber,tb_booktype.Categoryname--(13)查询借阅了“大学英语”一书的读者,输出读者、性别、系部;select Name,Sex,Pasternfrom tb_readerwhere ReaderID in(select ReaderIDfrom tb_borrowwhere ISBN in(select ISBN from tb_book where Title='大学英语'))--(14)查询每个读者的读者编号、、所借图书编号及所借阅日期;select tb_reader.ReaderID,Name,Borrowingdatefrom tb_reader left outer join tb_borrow on tb_reader.ReaderID=tb_borrow.ReaderID--(15)查询现有图书中价格最高的图书,输出书名、作者、定价;select Title,Author,BookPricefrom tb_bookwhere BookPrice=(select MAX(BookPrice)from tb_book)--(16)查询借阅了“大学英语”但没有借阅“C++程序设计”的读者,输出读者、性别、系部select Name,Sex,Pasternfrom tb_reader where Name in(select Namefrom tb_borrow where ISBN in(select ISBN from tb_book where Title='大学英语'))and Name not in(select Name from tb_borrow where ISBN in(select ISBN from tb_book where Title='C++程序设计'))--(17)统计借阅了本以上图书的读者信息;select*from tb_readerwhere ReaderID in(select ReaderID from tb_borrow group by ReaderID having COUNT(*)>2)--(18)查询计算机系中比其他系所有读者借书数量都多的读者的信息;select*from tb_reader tbr1where Pastern='计算机系'and ReaderID in(select tb_reader.ReaderID from tb_reader,tb_borrowwhere tb_reader.ReaderID=tb_borrow.ReaderID and tb_reader.ReaderID=tbr1.ReaderIDgroup by tb_reader.ReaderIDhaving count(ISBN)>any(select count(ISBN)from tb_reader,tb_borrowwhere tb_reader.ReaderID=tb_borrow.ReaderID and Pastern<>'计算机系'group by tb_reader.ReaderID))--(19)查询借阅了“大学英语”一书或者借阅了“C++程序设计”一书的读者信息;(用集合查询完成)select*from tb_readerwhere ReaderID in(select ReaderID from tb_borrow,tb_book where tb_borrow.ISBN=tb_book.ISBN and Title='大学英语')unionselect*from tb_readerwhere ReaderID in(select ReaderID from tb_borrow,tb_book where tb_borrow.ISBN=tb_book.ISBN and Title='C++程序设计')--20)查询既借阅了“大学英语”一书又借阅了“C++程序设计”一书的读者信息。

相关文档
最新文档