三、设计题
1、设有以下两个数据表,各表的结果及字段名如下:
图书(Book)包括书名(BNo)、类型(BType)、书名(BName)、作者(BAuth)、单价(BPrice)、出版社(PNo)
出版社(Publish)包括出版社号(PNo)、出版社名称(PName)、所在城市(PCity)、电话(PTel)。 用SQL实现下述功能:
(1)在“”高等教育出版社出版、书名为“操作系统”的图书的作者名;
答:select BAuth from Book,Publish
where Book.PNo =Publish.PNo and BName='操作系统'
and PName='高等教育出版社出版'
(2)查找为作者“张欣”出版全部“小说”类图书的出版社的电话; 答:select PTel from Book,Publish
where Book.PNo=Publish.PNo and BAuth='张欣' and BType='小说'
(3)查询“电子工业出版社”出版的“计算机”类的图书的价格,同时输出版社名称及图书类别;
答:select BPrice,PName,BType from Book,Publish
where Book.PNo=Publish.PNo and PName='电子工业出版社' and BType='BType'
(4)查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息; 答:select * from Book
where BName='高等数学' and BPrice< ANY (select BPrice from Book,Publish
where PName='人民邮电出版社' and BName='高等数学' and Publish.PNo=Book.PNo ) (5)查找书名中有“”计算机一词的图书的书名及作者; 答:select BName,BAuth from Book
where BName like '%计算机%'
(6)在“图书”表中正增加“出版时间”(BDate)项,其数据类型为日期型; 答:alter table Book
add
BDate datetime
(7)在“图书”表中以“作者”建立一个索引。 答:create unique index BAuth_Book on Book(BAuth)
2、假设有一个书店,书店的管理者要对书店的经营状况进行管理,需要建立一个数据库,其中包括两个表:
存书(书号,书名,出版社,版次,出版日期,作者,进价,数量) 销售(日期,书号,数量,金额) 请用SQL实现书店管理者的下列要求: (1)建立存书表和销售表; 答:create table Book ( BNo int, BName char(10), Publish char(20), Edition int, Date datetime, Auth char(10), Price int, Inprice int, Number int )
create table Sale (
Date datetime, BNo int, Number int, Money int )
(2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价数量,即库存占用的资金);
答:select BName,Number,Inprice*Number as '余额(进价X数量)' from Book (3)统计总销售额;
答:select SUM(Number*Money) as '总销售额' from Sale
(4)列出每天的销售报表,包括书名、数量、和合计金额(每一种书的销售总额);
答:select BName,Sale.Number,Sale.Number*Money as '合计金额' from Book,Sale
where Book.BNo=Sale.BNo
(5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。 答:select BName,Sale.Number
from Book,Sale
group by BName,Sale.Number,Sale.Date
having count(Sale.Number)>100 and Sale.Date>=getdate()-30
四、简答题
1、简述SQL支持的三级逻辑结构。
答:1、SQL语言支持的关系数据库三级逻辑结构由外层、概念层和内存构成。
2、在概念层,对应于概念模式的概念记录型的是基本表。基本表是这样的一种表,它本身实际存在。一个基本表就是一个关系,它不是由其他表导出的表。基本表是使用CREATETABLE语句建立的。
3、在外层,用户所看到的可以是基本表,也可以是视图,也可以是基本表+视图。视图是一个虚拟表,它是由一个或几个基本表导出的表,它不直接存在于物理存储器上的表。视图是使用CREATESQLVIEW语句建立的。
3、解释本章所涉及的有关基本概念的定义:基本表、视图、索引、系统权限、对象权限、角色、并说明视图、角色的作用。
答:基本表:一个关系对应一个基本表 ;一个或多个基本表对应一个存储文件
视图:视图是从一个或几个基本表导出的表,是一个虚拟的表 索引:记录的关键字与其相应地址的对应表
系统权限:数据库用户能够对数据库系统进行某种特定的操作的权利