项目三 网络数据库技术实训 - 图文
更新时间:2024-03-15 10:26:01 阅读量: 综合文库 文档下载
- 项目三要素推荐度:
- 相关推荐
子项目三 图书管理数据库的数据操作
3.1 插入记录
任务要求1:使用SQL Server Management Studio删除图书管理数据库library
中各个数据表中的现有数据,确保以下向数据表中输入数据无冲突和重复。
deletefromborrow deletefrompublishers deletefromreaders deletefrombooks deletefromdepartment deletefromtype
任务要求2:使用T-SQL语句为图书数据库中的各表插入记录,注意外键与主表之间的关系。
insertintodepartmentvalues('xi01','管理系') insertintodepartmentvalues('xi02','教育系') insertintodepartmentvalues('xi03','应用外语系')
insertintoreadersvalues('2006061201','xi02','王子刚','ffd@163.com','15912345666','3')
insertintoreadersvalues('2006061202','xi02','赵六安','kkk@sina.com','66666666666','4')
insertintoreadersvalues('2006072301','xi01','张三丰','ddd@gdfs.edu.cn','12345678911','2')
insertintoreadersvalues('2006072302','xi01','李斯','lisi@126.com','77777777777','0')
insertintoreadersvalues('2007031001','xi03','李文超','lwc@sina.com','88481236111','0')
insertintoreadersvalues('2007031002','xi03','胡丽丽','hull@163.com','13335642218','0')
insertintoreadersvalues('2007031003','xi03','田英','tiany@163.com','13233445588','1')
insertintoreadersvalues('2007031004','xi03','','yuxi@hotmail.com','13312345678','0')
insertintotypevalues('D9','法律') insertintotypevalues('F0','经济') insertintotypevalues('F12','电子商务') insertintotypevalues('G4','教育学') insertintotypevalues('I3','中国文学') insertintotypevalues('TP','计算机')
于
秀
娟
insertintobooksvalues('7030101431','计算机基础','谭浩强','TP','32.0000','科学出版社',null,null)
insertintobooksvalues('7030197632','电子商务应用','王洁实','F12','27.0000','科学出版社',null,null)
insertintobooksvalues('7107029872','红楼梦','曹雪芹','I3','35.0000','人民教育出版社',null,null)
insertintobooksvalues('7107102253','市场营销','李迪','G4','19.5000','人民教育出版社',null,null)
insertintobooksvalues('7107103692','经济教学','郭瑞军','G4','30.0000','人民教育出版社',null,null)
insertintobooksvalues('7111024356','会计电算计化教程','梁峰','G4','27.0000','机械工业出版社',null,null)
insertintobooksvalues('7111072049','VB程序设计','刘成勇','TP','25.0000','机械工业出版社',null,null)
insertintobooksvalues('7115030246','物流与电子商务','何子军','F12','23.0000','人民邮电出版社',null,null)
insertintobooksvalues('7121125581','经济研究','孙力','F0','25.0000','电子工业出版社',null,null)
insertintobooksvalues('7121154911','数据库教程','何文华','TP','28.0000','电子工业出版社',null,null)
insertintobooksvalues('7302013242','ASP.NET程序设计','马俊','TP','52.0000','清华大学出版社',null,null)
insertintobooksvalues('7302035714','网页设计','武迪生','TP','41.0000','清华大学出版社',null,null)
insertintobooksvalues('7302113585','经济学概论','吴畅','F0','30.0000','清华大学出版社',null,null)
insertintobooksvalues('7502413517','网络营销','于得水','TP','32.0000','冶金工业出版社',null,null)
insertintoborrowvalues('7030101431','2006072301',null,null) insertintoborrowvalues('7030197632','2006072302',null,null) insertintoborrowvalues('7107029872','2006072301',null,null) insertintoborrowvalues('7107102253','2006061202',null,null) insertintoborrowvalues('7107103692','2007031003',null,null) insertintoborrowvalues('7111072049','2007031001',null,null) insertintoborrowvalues('7115030246','2006061202',null,null) insertintoborrowvalues('7302013242','2006072302',null,null) insertintoborrowvalues('7302035714','2006061201',null,null) insertintoborrowvalues('7502413517','2006061202',null,null)
任务要求3:
(1) 为书刊类型信息表type添加5条记录('01','计算机'),('02','经济'),
('03','数学'),('04','艺术'),('05','电子商务')
insertintotypevalues('01','计算机') insertintotypevalues('02','经济') insertintotypevalues('03','数学') insertintotypevalues('04','艺术') insertintotypevalues('05','电子商务')
(2) 从书刊数据表中查询名称和价格插入到新表newbook
selectbookname,pricefrombooks
(3) 使用bulk insert命令将books表中的数据导入与books表结构相同的另外一
个新建的表newbook中。
sp_configure'show advanced options',1 reconfigure go
sp_configure'xp_cmdshell',1 reconfigure go
EXECmaster..xp_cmdshell'BCP Library11.dbo.books format nul -f C:\\xml\\book_fmt.xml -x -c -T'
EXECmaster..xp_cmdshell'BCP Library11.dbo.books outC:\\xml\\book.data -f C:\\xml\\book_fmt.xml -T'
bulkinsertLibrary.dbo.newbook from' C:\\xml\\book.data' with (
formatfile='C:\\xml\\book_fmt.xml' )
3.2 修改记录
任务要求1:
(1)使用T-SQL语句把书刊类型信息表中类别编号为03记录中的类别名称改为“教育”。
updatetype
settypename='教育' wheretypeID='03'
(2)使用T-SQL语句将科学出版社的所有图书价格下调10%。
updatebooks
setprice=price*0.9
(3)使用T-SQL语句将borrow表的所有借书日期设为2016年6月8日。 updateborrow
setborrowdate='2016-6-8'
(4)将读者借阅卡信息表中的所有读者的借阅数量修改为0
updatereaders setborrownum='0'
(5)统计汇总出借阅信息表中借书数,写入读者借阅卡信息表中
updatereaders setborrownum=(
selectcount(readerID)fromborrow wherereaderID=readers.readerID
(6))3.3 删除记录
任务要求1:使用T-SQL语句完成下列要求
(1) 删除书刊类型信息表中类别编号为04的记录。
deletefromtype wheretypeID='04'
(2) 用DELETE语句删除读者借阅卡信息表中编号为2006061201的读者信息(有外
键约束)
deletefromreaders
wherereaderID='2006061201'
(3) 使用TRUNCATE TABLE删除newbook表中所有数据 TRUNCATETABLEnewbook
3.4 数据查询
针对Library数据库,在应用系统实际运行过程中,完成由用户提出的各种数据库查询操作:
3.4.1 简单数据查询
任务要求:
1) 显示所有书刊的信息;
select*frombooks
2) 查询部分书刊信息,书刊数据表中返回书名、作者和书的价格列,列名用中文显示。
selectbooknameas'书名',authoras'作者',priceas'价格'frombooks
3) borrow表中返回BookID,BorrowDate列,不显示重复记录。
selectdistinctbookID,borrowdatefromborrow
4) 返回books表中前3条记录)
selecttop 3 *frombooks
5) 遗失图书应按图书原价的2倍赔偿,请显示每本图书的书名和赔偿价格。
selectbookname,price*2frombooks
6) 遗失图书应按图书原价的2倍赔偿,将查询的结果保存在新表“赔偿”表中。
insertinto赔偿(bookname,price) selectbookname,price*2 frombooks
7) 从读者借阅卡信息表和书刊借阅信息表中返回读者信息和借阅信息。
select*fromreadersinnerjoinborrowonreaders.readerID=borrow.readerID
8) 求所有书的平均价格、最高价和最低价。
selectAVG(price)as'avg',MAX(price)as'max',MIN(price)as'min'fro
mbooks
3.4.2 条件查询
任务要求:
1) 查询所有“科学出版社”出版的书刊;
select*frombooks
wherepublisher='科学出版社'
2) 查询价格在[20,30]元之间图书的书名和作者。
selectbookname,authorfrombooks wherepricebetween 20 and 30
3) 查询所有含“迪”字作者的图书信息
select*frombooks whereauthorlike'%迪%'
4) 查询类别编号为“TP”和“F0”的图书信息
select*frombooks
wheretypeID='tp'ortypeID='F0'
5) 查询书刊借阅信息表中未还的图书
selectbooks.bookID,booknamefromborrowrightjoinbooksonborrow.bookID=bo
rrow.bookID
3.4.3 排序查询
任务要求:
1) 将各种书的情况按照价格的从高到低排列
select*frombooks
orderbypriceDESC
2) 将各种书的情况按照图书名称对应的拼音从低到高排列
select*frombooks orderbybookname
3) 查询每个学生的姓名和借阅图书数量,按借阅数量由高到低的顺序排列,并以汉字
标题显示列名。
selectnameas'姓名',borrownumas'借阅数量'fromreaders
orderbyborrownumDESC
4) 查询单价最高的三本图书的书名和价格。
selecttop 3 bookname,pricefrombooks orderbypriceDESC
5) 查询书名最长的三本图书的书名。
selecttop 3 booknamefrombooks orderbyLEN(bookname)DESC
6) 查询单价最高的图书的详细信息。
selecttop 1 *frombooks orderbypriceDESC
3.4.4 分组查询
任务要求:
1)按类别统计当前馆藏图书的书名个数。
selecttypeID,count(bookID)as'个数'frombooks groupbytypeID
2)按出版社统计当前馆藏图书的书名个数。
selectpublisher,count(bookID)as'个数'frombooks groupbypublisher
3)在读者借阅卡信息表中按部门编号对部门的人数进行统计
selectdeptID,count(bookID)as'人数'from
readersrightjoinborrowonreaders.readerID=borrow.readerID groupbydeptID
4)从borrow表统计每位读者借阅的图书数量。
selectreaderID,count(bookID)fromborrow groupbyreaderID
5)按出版社分别统计出版社当前馆藏图书的平均价,并将超过25元的显示出来
selectpublisher,AVG(price)frombooks groupbypublisher havingavg(price)>25
6)按出版社分别统计当前馆藏图书中单价在25元以上的图书的平均价,没有满足条件的出版社显示空值。
selectpublisher,AVG(price)frombooks whereprice>25 groupbypublisher
7)统计每个类别图书的最高单价与最低单价。
select typeID,MAX(price)as'max',MIN(price)as'min'frombooks groupbytypeID
8) 统计每个出版社出版图书的最高单价与最低单价。
selectpublisher,MAX(price)as'max',MIN(price)as'min'frombooks groupbypublisher
3.4.5 连接查询
任务要求:
1) 使用连接查询方式查询2016年借出去的图书的书名和出版社
selectbookname,publisherfrom
booksrightjoinborrowonbooks.bookID=borrow.bookID whereborrowdatebetween'2016-01-01'and'2016-12-31'
2) 使用左外连接查询每个读者的借书情况。如果读者没有借书,则在书刊借阅信息表
中将没有该读者的借阅记录,书刊编号和借阅日期用空值填充
select*from
readersleftouterjoinborrowonreaders.readerID=borrow.readerID
3) 将2中的左外连接改为使用右外连接,则查询结果为每本书的借阅读者情况。如果
有借书,而读者借阅信息卡中无此读者卡,则用空值填充。通常该情况表明,数据出现不一致,即书刊借阅信息表中的读者卡编号,而在读者借阅信息卡查无此号。
select*from
readersrightouterjoinborrowonreaders.readerID=borrow.readerID
4) 将3的左外连接改为使用全外连接,则查询结果为每本书的借阅读者情况和每个读
者的借书情况。如果有借书,而读者借阅信息卡中无此读者卡,则用空值填充。如果有该读者,而没有借阅书刊,则书刊借阅表的列为空值。
select*from
readersfullouterjoinborrowonreaders.readerID=borrow.readerID
5) 查询每位读者的姓名与所在系部名称。
selectname,deptfromreadersjoindepartmentonreaders.deptID=department.deptID
6) 查询所有馆藏图书的书名与所属类别名称
selectbookname,typenamefrom
typejoinbooksontype.typeID=books.typeID
7) 查询所有馆藏图书的书名、类别名称、单价和出版社名称
selectbookname,typename,price,publisherfrom typejoinbooksontype.typeID=books.typeID
8) 查询所有计算机类的图书的书名、作者和出版社名称。
selectbookname,author,publisherfrom booksjointypeonbooks.typeID=type.typeID wheretypename='计算机'
3.4.6 嵌套查询
任务要求:
1) 查询与借阅卡号为“2006061201”的读者在同一个部门的读者借阅卡号和姓名
selectreaderID,name,borrownumfromreaders
wheredeptID=(selectdeptIDfromreaderswherereaderID='2006061201')
2) 查询借书数高于读者借阅卡信息表中平均借书数的读者借阅号、姓名和借书数目
selectreaderID,name,borrownumfromreaders
whereborrownum>(selectAVG(borrownum)fromreaders)
3) 查询与读者“田英”在同一个部门的读者信息
select*fromreaders
wheredeptID=(selectdeptIDfromreaderswherename='田英')
4) 查询所有借阅了“7030101431”号的书刊的读者借阅卡号和姓名
selectreaders.readerID,namefromreadersjoinborrowonreaders.readerID=borrow.readerID wherebookID='7030101431'
5) 查询比《红楼梦》单价高的图书的书名、作者和价格。
selectbookname,author,pricefrombooks
whereprice>(selectpricefrombookswherebookname='红楼梦')
3.4.7 综合查询
任务要求:
1) 显示不同类别书刊的平均价格,及全部库存书刊的平均价格
2) 查询每个借阅者借书的数目
selectreaderID,borrownumfromreaders
3) 查询已借出的书刊总数目
selectcount(bookID)fromborrow
4) 联合查询,获得每个借阅者借书的数目和已借出的书刊总数目。
5)查询单价高于35元和清华大学出版社出版的图书书名和作者和出版社名称
selectbookname,author,publisherfrombooks whereprice>35 andpublisher='清华大学出版社'
6) 查询教育系学生借阅的所有图书书名和读者姓名
selectbookname,namefrom
booksjoinborrowonbooks.bookID=borrow.bookID joinreadersonborrow.readerID=readers.readerID
joindepartmentonreaders.deptID=department.deptID wheredept='教育系'
正在阅读:
项目三 网络数据库技术实训 - 图文03-15
浙江高考《〈论语〉选读》考点复习资料03-08
人民法院诉讼服务中心建设情况汇报01-28
教师面试自我评价02-24
桥梁桩基首件制人工挖孔桩施工技术方案06-01
五分钟微型党课材料:新时期学习弘扬雷锋精神的意义和作用11-12
塑料挤出网项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案09-13
分镜头台本之文字稿纸本稿02-20
中国农业大学植物营养历年考研题11-11
村居改写400字07-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 图文
- 数据库
- 项目
- 技术
- 网络
- 在全县巡视整改工作动员讲话
- 党课试卷答案
- 会计实践答案
- 上海高考Summary如何写
- 考研考研-作文常用1500词
- 湖北省松滋市实验初级中学九年级物理《透镜及其应用》复习教学案
- 园艺昆虫学实验教案(本科)
- 七年级生物上册3.2.1《种子的萌发》导学案2(新版)新人教版
- 2019高考生物核心考点特色突破专题13动物生命活动的调节
- 反转录PCR-步骤和方法
- 高二语文选修传记选读练习:第三专题+课时跟踪检测(六) 罗曼+
- 采购员必备知识
- 集团建立企业年金计划研究报告(节选)
- 《光纤通信》习题解答
- 招教心理学练习题-分章节
- 田径集训队训练方案
- 科文学院2010—2011学年度第二学期辅导员(班主任)考核表 - 图
- 2010年全国广播电视编辑记者资格考试广播电视新闻业务模拟试卷
- ArcEngine中最短路径的实现 - 图文
- ADO学习教程