实验报告2
更新时间:2023-12-03 11:43:01 阅读量: 教育文库 文档下载
第1个实验.数据库与数据表定义 ——第3章实验四
(1) 创建一个BookDB数据库,要求至少一个数据文件和一个日志文件。
create database BookDB on
(name=BookDB,
filename='C:\\work\\BookDB.mdf', size=4, maxsize=16, filegrowth=2) log on
(name=BookLog,
filename='C:\\work\\BookLog.ldf', size=1, maxsize=5, filegrowth=1)
(2) 创建图书管理相关4张关系表
(3) 创建基本表时,要求分别为每张关系表合理建立主、外键约束。 create table BookClass(
classNo char(3) not null, --图书分类号
className varchar(20) not null,--图书分类名称 constraint BookClassPk primary key(classNo) )
create table Book( bookNo
char(10) not null, -- 图书编号
not null , --分类号
not null , --图书名称
null
, --出版社名称
classNo char(3)
bookName varchar(40)
authorName varchar(8) not null, -- 作者姓名 publishingName varchar(20) publishingNo char(17) null price numeric(7,2) null
, --出版社编号
, --出版日期
, --单 价
publishingDate datetime null
shopDate datetime null, -- 入库时间 shopNum numeric(3) null, -- 入库数量 constraint BookPk primary key(bookNo),
constraint BookFk foreign key(classNo)references BookClass(classNo) )
create table Reader( readerNo char(8) readerName Sex
char(2)
Not null, -- 读者编号
Not null, -- 姓 名
, --身份证号
, --性 别
varchar(8)
null
identifycard char(18) null
workUnit varchar(50) null, -- 工作单位
borrowCount tinyint null, -- 借书数量 constraint ReaderPk primary key(readerNo) )
create table Borrow( readerNo
char(8)
not null , --
读者编号 借阅日期 应归还日期
bookNo char(10) not null , --
图书编号
borrowDate datetime not null, -- shouldDate datetime not null , --
returnDate datetime null, -- 归还日期
constraint BorrowPk primary key(readerNo, bookNo),
constraint BorrowFk1 foreign key(readerNo)references Reader(readerNo), constraint BorrowFk2 foreign key(bookNo)references Book(bookNo) )
(4) 表结构的修改,要求:
① 修改图书表结构,要求出版社名称和入库时间不允许为空。 alter table Book drop column publishingName
alter table Book add publishingName varchar(20) alter table Book drop column shopDate
alter table Book add shopDate datetime not null -- 入库时间
not null --出版社名称
② 修改读者表结构,要求读者身份证号不允许为空。
alter table Reader drop column identifycard
alter table Reader add identifycard char(18) null --身份证号
第2个实验.索引与视图定义 ——第3章实验五
(1) 根据基本表创建以下索引:
① 在图书表中按出版社编号建立一个非聚集索引PublishingnoIdx。
create index PublishingnoIdx on Book(publishingNo )
② 在读者表中按身份证号建立一个非聚集索引IdentifycardIdx。
create index IdentifycardIdx on Reader(identifycard)
③ 在读者表中,首先按工作单位的升序,然后按借书数量降序建立一个非聚集索引WorkunitCountIdx。
create index WorkunitCountIdx on Reader(workUnit, borrowCount desc) (2) 创建一个只含清华大学出版社信息的图书视图BookView。
create view BookView as
select * from Book where publishingName='清华大学出版社'
(3)创建一个包含读者编号、读者姓名、读书编号、图书名称、借阅日期、归还日期的视图BorrowView。
create view BorrowView as
select b.readerNo,c.readerName,b.bookNo,a.bookName,b.borrowDate,
b.returnDate
from Book a, Borrow b, Reader c
where c.readerNo=b.readerNo and b.bookNo=a.bookNo
(4) 创建一个视图,要求显示至少借阅了3本书的读者信息ReaderView。
create view ReaderView as select * from Reader where readerNo in( select readerNo from Borrow group by readerNo having count(*)>=3 )
(5) 在视图BorrowView中查询2010年4月22日以前借阅的图书。
select *
from BorrowView
where
year(borrowdate)<=2010
and
month(borrowdate)<=4
and
day(borrowdate)<22
(6) 在视图ReaderView中查询借阅了高等教育出版社出版的图书的读者信息。
select *
from ReaderView where readerNo in(
select a.readerNo from Borrow a,Book b where a.bookNo=b.bookNo and b.publishingName='高等教育出版社'
)
(7)在视图BorrowView基础上再建一个包含合生元有限公司读者所借图书信息的视图BorrowView1。
create view BorrowView1 as select *
from BorrowView where readerNo in(
select readerNo from Reader where workUnit='合生元有限公司' )
(8) 删除视图BorrowView。
drop view BorrowView
第3个实验.数据更新操作 ——第3章实验六
根据BookDB中四张关系表,完成以下更新操作:
(1) 分别给这四张表添加信息,要求图书分类表、图书表、读者表各插入5个元组,借阅表插入20个元组。
insert BookClass values('001','经济类') insert BookClass values('002','外语类') insert BookClass values('003','计算机类') insert BookClass values('004','建筑类') insert BookClass values('005','文学类')
insert Book values('B200101001','001','政治经济学','宋涛','中国人民大学出版社','P1991010100010001',31.80,'19910101','19950111',100)
insert Book values('B200201001','002','大学英语','郑树棠','外语教学与研究出版社','P1992010100010001',35.20,'19920101','19960111',130)
insert Book values('B200301001','003','数据库系统原理','吴京慧','清华大学出版社','P1993010100010001',58.20,'19930101','19950111',160)
insert Book values('B200101002','001','微观经济学','张蕊','高等教育出版社','P1991010100010002',41.80,'19910102','19950112',110)
insert Book values('B200101003','001','宏观经济学','袁明圣','中国财经经济出版社','P1991010100010003',51.80,'19910103','19950113',120)
insert Book values('B200201002','002','商务英语','马升烨','上海外语学院出版社','P1992010100010002',45.20,'19920102','19960112',140)
insert Book values('B200201003','002','商务英语','江宇佳','西安交通大学出版社','P1992010100010003',55.20,'19920103','19960113',150)
insert Book values('B200301002','003','组网技术','万征','浙江大学出版社','P1993010100010002',38.20,'19930102','19950112',170)
insert Book values('B200301003','003','人工智能','费翔林','电子工业出版社','P1993010100010003',43.20,'19930103','19950113',180)
insert Book values('B200301004','003','算法设计与分析','陈慧南','科学出版社','P1993010100010004',58.20,'19930104','19950114',190)
insert Reader values('R2005001','张小娟','F','412723199001014321','统一股份有限公司',0) insert Reader values('R2006001','刘凤','F','412723199003014321','联合股份有限公司',0) insert Reader values('R2007001','高代鹏','M','412723199005014321','洪都股份有限公司',0) insert Reader values('R2008001','陈辉','M','412723199111014321','南昌市电脑研制公司',0) insert Reader values('R2009001','李虹冰','F','412723199208014321','富士康科技集团',0) insert Reader values('R2005002','张露','F','412723199002014321','兴隆股份有限公司',0) insert Reader values('R2006002','喻自强','M','412723199004014321','万事达股份有限公司',0) insert Reader values('R2007002','张晓梅','F','412723199112014321','世界技术开发公司',0) insert Reader values('R2008002','张良','M','412723199110014321','上海生物研究室',0) insert Reader values('R2009002','韩福平','M','412723199209014321','合生元有限公司',0)
insert Borrow values('R2005001','B200101001','20110901','20111001',null) insert Borrow values('R2006001','B200101001','20110907','20111007','20111005') insert Borrow values('R2007001','B200201001','20110913','20111013','20111010') insert Borrow values('R2008001','B200301001','20110915','20111015','20111013') insert Borrow values('R2009001','B200301001','20110918','20111018',null) insert Borrow values('R2005001','B200101002','20110902','20111002','20111001') insert Borrow values('R2005001','B200101003','20110903','20111003',null) insert Borrow values('R2005002','B200101001','20110904','20111004','20111003') insert Borrow values('R2005002','B200101002','20110905','20111005',null) insert Borrow values('R2005002','B200101003','20110906','20111006','20111008') insert Borrow values('R2006001','B200101002','20110908','20111008','20111006') insert Borrow values('R2006001','B200101003','20110909','20111009','20111012') insert Borrow values('R2009002','B200201001','20110910','20111010','20111008') insert Borrow values('R2006002','B200201002','20110911','20111011','20111008') insert Borrow values('R2006002','B200201003','20110912','20111012','20111008') insert Borrow values('R2007001','B200201002','20110914','20111014',null) insert Borrow values('R2007001','B200201003','20110915','20111015','20111010') insert Borrow values('R2009002','B200201001','20110916','20111016','20111014') insert Borrow values('R2007002','B200201002','20110917','20111017','20111014') insert Borrow values('R2007002','B200201003','20110917','20111017','20111014')
(2)将借阅次数少于3次的图书数量减半,借阅次数高于50次的图书数量增加50%。
update Book
set shopNum=shopNum/2 where bookNo in( select bookNo from Book
group by bookNo having count(*)<3 )
update Book
set shopNum=shopNum*(1+0.5) where bookNo in( select bookNo from Book group by bookNo having count(*)>50 )
(3)将富士康科技集团读者的借书期限延长至3个月。
update Borrow
set shouldDate= shouldDate+90 where ReaderNo in( select ReaderNo from Reader
where workUnit like '富士康%' )
(4)根据借阅表修改每个读者的借书数量。
update Reader
set borrowCount=Max from Reader a,(
select count(*) Max,ReaderNo from Borrow group by ReaderNo ) b
where a.readerNo=b.readerNo
(5)将江西财经学院的读者工作单位修改为江西财经大学。
update Reader
set workUnit='江西财经学院' from Reader
where workUnit='江西财经学院'
(6)删除从未借过书的读者。
delete from Reader where readerNo in( select ReaderNo from Borrow group by ReaderNo having count(*)=0
)
(7)删除借阅了大学英语的借阅记录。
delete from Borrow where bookNo in( select bookNo from Book
where bookName='大学英语' )
(8)将入库数量最多的图书单价下调5%。
update Book
set price=price*(1-0.05) where shopNum=( select max(shopNum) from Book )
(9)将“经济管理类”的图书单价提高10%。
update Book
set price=price*(1+0.1) where bookNo in( select bookNo from BookClass
where classNo='经济管理类' )
(10)删除价格超过60元的图书。
delete from Book where price>60
正在阅读:
实验报告212-03
滑县老爷庙乡刘户固村民委员会等14个村委会不服滑县人民政府土地05-06
地陪导游欢迎词02-12
2018最美幼师演讲稿5篇02-25
女性励志02-19
如何保养水龙头02-10
第一次做汉堡作文350字07-04
统计学原理试卷及答案09-15
写给女朋友的微情书02-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 报告
- 小学音乐 第七单元大海的歌
- 划拨地转让有关法规先后顺序
- 公交公司年度总结
- 土壤样品的运输和贮存-土壤-微生物系统功能及其调控
- 2016年世界环境日的主题班会ppt
- 2018年五年级数学下册全套单元测试题及答案
- 浅谈如何提高公文办理的质量
- 传媒科学学院课程内容简介
- 项目建议书由谁批准
- 专业学习-国际经济学第一二部分的复习题
- 声母教案
- 高中通用技术《技术与设计1》期末检测卷 - 图文
- 八字神煞查法
- 宋代司法检验制度浅析
- 戏说历史有利于提高人文素养
- 2014年临床执业医师考试模拟试题生理学综合测试卷一及答案
- (工作计划)学生会组织部工作计划范文
- 境外直接投资外汇业务展业规范
- 2019年部编人教版七年级语文上册期末测试题及答案
- 固体物体第三章习题