实验5 sql语句练习——图书馆数据库答案.doc_第1页
实验5 sql语句练习——图书馆数据库答案.doc_第2页
实验5 sql语句练习——图书馆数据库答案.doc_第3页
实验5 sql语句练习——图书馆数据库答案.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验5 sql语句练习图书馆数据库实验5 sql语句练习图书馆数据库实验目的(1)了解SQL Server数据库的逻辑结构和物理结构;(2)了解表的结构特点;(3)了解SQL Server的基本数据类型;(4)了解空值概念;(5)学会在企业管理器中创建数据库和表;(6)学会使用T-SQL语句创建数据库和表。(7)学会使用T-SQL语句更新数据。(7)学会使用T-SQL语句创建多种查询。实验准备首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DATABASE语句。实验内容假设有5本书设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图:图书表结构列名说明数据类型约束说明书号图书唯一的编号定长字符串,长度为10主键书名图书的名称定长字符串,长度为50空值作者图书的编著者名定长字符串,长度为30空值出版社图书的出版社定长字符串,长度为30空值单价出版社确定的图书的单价浮点型,Float空值读者表结构假设有10位读者列名说明数据类型约束说明读者号读者唯一的编号定长字符串,长度为10主键姓名读者姓名定长字符串,长度为8非空值性别读者性别定长字符串,长度为2非空值办公电话读者办公电话定长字符串,长度为8空值部门读者所在部门定长字符串,长度为30空值借阅表结构列名说明数据类型约束说明读者号读者的唯一编号定长字符串,长度为10外码,引用读者表的主键书号图书的唯一编号定长字符串,长度为20外码,引用图书表的主键借出日期借出图书的日期定长字符串,长度为8非空值归还日期归还图书的日期定长字符串,长度为8空值 主键为:(读者号,图书号)(1) 用Sql语句创建图书馆数据库Create database Lab05(2) 用Sql语句创建上述3个表create table book(bookId char(10)primary key,bookName varchar(50),bookWriter varchar(30),bookPublish varchar(30),bookPrice float)create table reader(readerId char(10) primary key,readerName varchar(8)not null,readerSex char(2)not null,readerOfficeTel char(8),readerDepartment varchar(30)create table 借阅表(readerId char(10),bookId char(10),checkOutTime char(8),checkInTime char(8),primary key(readerId,bookId),foreign key (readerId) references reader(readerId),foreign key (bookId) references book(bookId),)(3) 基于图书馆数据库的3个表,用sql语言完成一下操作:1) 为图书表增加一列“ISBN”,数据类型为CHAR(10)alter table book add ISBN char(10)2) 为刚添加的ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为7111085949ALTER TABLE book ADD CONSTRAINT ISBNDEF DEFAULT (7111085949) FOR ISBN3) 删除图书表中ISBN列增加的缺省值约束alter table book drop ISBNDEF4) 删除图书表中新增的ISBN列ALTER TABLE book DROP COLUMN ISBN5) 查询全体图书的图书号、书名、作者、出版社和单价select bookId,bookName,bookWriter,bookPublish,bookPricefrom book6) 查询全体图书的信息,其中单价打8折,并设置该列的别名为打折价select bookId,bookName,bookWriter,bookPublish,(bookPrice*0.8) as打折价from book7) 显示所有借阅者的读者号,并去掉重复行select distinct readerIdfrom 借阅表8) 查询所有单价在2030元之间的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPrice between 20 and 309) 查询机械工业出版社、科学出版社、人民邮电出版社的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPublish in(机械工业出版社 , 科学出版社,人民邮电出版社)10) 查询既不是机械工业出版社、人民邮电出版社、也不是科学出版社出版的图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPublish not in(机械工业出版社 , 科学出版社,人民邮电出版社)11) 查询姓名的第二个字符是建,并且只有2个字的读者的读者号及姓名select readerId,readerNamefrom readerwhere readerName like _建12) 查询姓名不是以王、张或李开头的所有读者的读者号及姓名【方式一】查询出来的结果有问题!select readerId,readerNamefrom readerwhere readerName not in (王%,张%,李%)【方式二】select readerId,readerNamefrom readerwhere readerName not in(select readerNamefrom readerwhere readerName like王%or readerName like张%or readerName like李%)13) 查询无归还日期的借阅信息select book.bookId,book.bookName,reader.readerId,reader.readerName,借阅表.checkOutTime as 借书时间,借阅表.checkInTime as 还书时间from 借阅表,book,readerwhere 借阅表.bookId = book.bookIdand 借阅表.readerId = reader.readerIdand 借阅表.checkInTime is null14) 查询机械工业出版社图书的平均价格、最高价、最低价select avg(bookPrice)as 平均价格,max(bookPrice) as 最高价 ,min(bookPrice) as 最低价from bookwhere bookPublish = 机械工业出版社图书15) 查询读者的基本信息及借阅情况select reader.readerId,reader.readerName ,借阅表.bookId,book.bookName,book.bookPublishfrom reader , 借阅表 ,bookwhere reader.readerId = 借阅表.readerIdand book.bookId = 借阅表.bookIdand 借阅表.readerId =100000000716) 查询至少借阅过1本机械工业出版社出版的图书的读者的读者号、姓名、书名及借阅本数,并按借阅本书多少降序排列select r.Rno,Rname,count(borrow.Bno) 借阅册数 from borrow,b,rwhere b.bno=borrow.bno and press=机械工业出版社 and borrow.rno=r.rnogroup by r.rno,Rnameorder by count(borrow.Bno) desc17) 查询与王小平的办公电话相同的读者的姓名/* 使用“自连接方式”求解 */select b.readerName,b.readerId,a.readerOfficeTelfrom reader a, reader bwhere a.readerName like 王小平and a.readerOfficeTel = b.readerOfficeTel/*18) 查询所有单价小于平均单价的图书的书号、书名及出版社select bookId,bookName,bookPublish

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论