数据库图书管理系统项目完整性.docx
- 文档编号:24680445
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:25
- 大小:19.62KB
数据库图书管理系统项目完整性.docx
《数据库图书管理系统项目完整性.docx》由会员分享,可在线阅读,更多相关《数据库图书管理系统项目完整性.docx(25页珍藏版)》请在冰豆网上搜索。
数据库图书管理系统项目完整性
--创建数据库BlueSkyDB
USEmaster
GO
IFEXISTS(SELECT*FROMsys.databasesWHEREname='BlueSkyDB')
DROPDATABASEBlueSkyDB
GO
CREATEDATABASEBlueSkyDB
ONPRIMARY
(NAME=BSPrimaryFile1,
FILENAME='C:
\PrimaryFile1Data.mdf',
SIZE=4MB,
MAXSIZE=50MB,
FILEGROWTH=1MB),
FILEGROUPUserGroup1
(NAME=BSGroup1File1,
FILENAME='C:
\Group1File1Data.ndf',
SIZE=2MB,
MAXSIZE=50MB,
FILEGROWTH=1MB),
(NAME=BSGroup1File2,
FILENAME='C:
\Group1File2Data.ndf',
SIZE=2MB,
MAXSIZE=50MB,
FILEGROWTH=1MB),
FILEGROUPUserGroup2
(NAME=BSGroup2File1,
FILENAME='C:
\Group2File1Data.ndf',
SIZE=1MB,
MAXSIZE=50MB,
FILEGROWTH=10%),
FILEGROUPUserGroup3
(NAME=BSGroup3File1,
FILENAME='C:
\Group3File1Data.ndf',
SIZE=1MB,
MAXSIZE=50MB,
FILEGROWTH=10%)
LOGON
(NAME=BSLogFile1,
FILENAME='C:
\LogFile1.ldf',
SIZE=2MB,
MAXSIZE=50MB,
FILEGROWTH=1MB)
GO
--在BlueSkyDB中将文件组UserGroup1配置为默认文件组。
USEmaster
GO
ALTERDATABASEBlueSkyDB
MODIFYFILEGROUPUserGroup1DEFAULT
GO
--创建一个数据类型,用于存放图书价格数据。
USEBlueSkyDB
GO
CREATETYPEPriceDecimal
FROMdecimal(6,2)
GO
--在数据库BlueSkyDB中创建表Cagegories,用于存放图书的类别信息。
USEBlueSkyDB
GO
CREATETABLECategories
(categoryCodenchar(4)PRIMARYKEY,
categoryNamenvarchar(50)NOTNULL
)
GO
--在数据库BlueSkyDB中创建表Books,用于存放图书的信息。
USEBlueSkyDB
GO
CREATETABLEBooks
(bookIDintIDENTITY(1,1),
titlenvarchar(50)NOTNULL,
ISBNnchar(13)NOTNULL,
authornvarchar(50),
unitPricePriceDecimal,
categoryCodenchar(4)
)
GO
--在数据库BlueSkyDB中创建表Customers,用于存放顾客的信息。
USEBlueSkyDB
GO
CREATETABLECustomers
(customerIDintIDENTITYPRIMARYKEY,
customerNamenvarchar(20)NOTNULL,
emailAddressnvarchar(50)NOTNULL,
passwordnvarchar(50)NOTNULL
)
GO
--在数据库BlueSkyDB中创建表Orders,用于存放订单的信息。
USEBlueSkyDB
GO
CREATETABLEOrders
(orderIDintIDENTITY(1,1),
orderDatedatetimeNOTNULLDEFAULTGETDATE(),
shipDatedatetime,
customerIDintNOTNULL
)
GO
--定义订单项目表OrderItems
USEBlueSkyDB
GO
CREATETABLEOrderItems
(orderIDintNOTNULL,
bookIDintNOTNULL,
quantityintNOTNULLDEFAULT1,
pricePriceDecimal,
totalASprice*quantity
)
GO
--定义评论表Comments
USEBlueSkyDB
GO
CREATETABLEComments
(commentIDintIDENTITYPRIMARYKEY,
userNamenvarchar(50)NOTNULL,
userEmailnvarchar(50)NOTNULL,
ratingtinyintNOTNULLDEFAULT5,
commentnvarchar(200)NOTNULL,
bookIDintNOTNULL
)
GO
--创建表ShoppingRecords存放购物车的信息
USEBlueSkyDB
GO
CREATETABLEShoppingRecords
(recordIDintIDENTITYPRIMARYKEY,
cartIDuniqueidentifierNOTNULL,
quantityintNOTNULL,
dateCreateddatetimeNOTNULLDEFAULTGETDATE(),
bookIDintNOTNULL
)
GO
--创建表Books与Categories之间的关系
ALTERTABLEBooks
ADDCONSTRAINTBooks_categoryID_fkFOREIGNKEY(categoryCode)REFERENCESCategories(categoryCode)
GO
--创建表Orders与Customers之间的关系
ALTERTABLEOrders
ADDCONSTRAINTOrders_customerID_fkFOREIGNKEY(customerID)REFERENCESCustomers(customerID)
GO
--创建表OrderItems与Orders之间的关系
--ALTERTABLEOrderItems
--ADDCONSTRAINTOrderItems_orderID_fkFOREIGNKEY(orderID)REFERENCESOrders(orderID)
GO
--创建表OrderItems与Books之间的关系
--ALTERTABLEOrderItems
--ADDCONSTRAINTOrderItems_bookID_fkFOREIGNKEY(bookID)REFERENCESBooks(bookID)
GO
--创建表Comments与Books之间的关系
--ALTERTABLEComments
--ADDCONSTRAINTComments_bookID_fkFOREIGNKEY(bookID)REFERENCESBooks(bookID)
GO
--创建表ShippingRecords与Books之间的关系
--ALTERTABLEShoppingRecords
--ADDCONSTRAINTShoppingRecords_bookID_fkFOREIGNKEY(bookID)REFERENCESBooks(bookID)
GO
--向Categories表导入数据
USEBlueSkyDB
GO
INSERTINTOCategoriesVALUES('CO01','计算机')
GO
INSERTINTOCategoriesVALUES('FI01','小说')
GO
INSERTINTOCategoriesVALUES('LA01','语言')
GO
--向Books表导入数据
USEBlueSkyDB
GO
INSERTINTOBooksVALUES('SQLServer2005实现与维护','9787302163305','SolidQualityLearning',79.00,'CO01')
GO
INSERTINTOBooksVALUES('ASP.NET2.0入门经典','9787115158284','ScottMitchell',49.00,'CO01')
GO
INSERTINTOBooksVALUES('英语阅读词汇双突破','7560922171','杨建荣',15.50,'LA01')
GO
INSERTINTOBooksVALUES('杜拉拉升职记','9787561339121',NULL,26.00,'FI01')
GO
INSERTINTOBooksVALUES('夏洛的网','7532733416',NULL,17.00,'FI01')
GO
INSERTINTOBooksVALUES('新编日语','9787810097987','周平',11.80,'LA01')
GO
INSERTINTOBooksVALUES('管理信息系统','7111156242','祝士明',21.00,NULL)
GO
INSERTINTOBooksVALUES('系统防真导论','730203821x','肖田元',23.50,NULL)
GO
INSERTINTOBooksVALUES('Java编程思想','711116220x','BruceEckel',95.00,'CO01')
GO
INSERTINTOBooksVALUES('C#与ASP.NET程序设计','7560519636','曹锰',29.00,'CO01')
GO
--向Customers表导入数据
USEBlueSkyDB
GO
INSERTINTOCustomersVALUES('张志远','zhzy79@','12345678')
GO
INSERTINTOCustomersVALUES('李涛','litao80@','12345678')
GO
INSERTINTOCustomersVALUES('Scottfield','Scottfield@','12345678')
GO
--向Orders表导入数据
USEBlueSkyDB
GO
INSERTINTOOrdersVALUES('2008-12-14','2008-12-17',3)
GO
INSERTINTOOrdersVALUES('2008-12-15','2008-12-18',1)
GO
INSERTINTOOrdersVALUES('2009-2-12','2009-2-15',1)
GO
INSERTINTOOrdersVALUES('2009-3-1','2009-3-4',2)
GO
INSERTINTOOrdersVALUES('2009-3-15',NULL,3)
GO
INSERTINTOOrdersVALUES('2009-3-16',NULL,1)
GO
--向OrderItems表导入数据
USEBlueSkyDB
GO
INSERTINTOOrderItemsVALUES(1,1,1,71.10)
GO
INSERTINTOOrderItemsVALUES(1,2,1,36.90)
GO
INSERTINTOOrderItemsVALUES(2,6,10,10.03)
GO
INSERTINTOOrderItemsVALUES(3,9,1,85.50)
GO
INSERTINTOOrderItemsVALUES(3,10,1,26.10)
GO
INSERTINTOOrderItemsVALUES(4,1,2,71.10)
GO
INSERTINTOOrderItemsVALUES(4,2,2,36.90)
GO
INSERTINTOOrderItemsVALUES(4,9,2,85.50)
GO
INSERTINTOOrderItemsVALUES(4,10,2,26.10)
GO
INSERTINTOOrderItemsVALUES(5,6,10,10.03)
GO
INSERTINTOOrderItemsVALUES(6,7,1,18.90)
GO
--向Comments表导入数据
USEBlueSkyDB
GO
INSERTINTOCommentsVALUES('张志远','zhzy79@',5,'适合参加MCTS的考生使用',1)
GO
INSERTINTOCommentsVALUES('李涛','litao80@',4,'ASP.NET的基础知识',2)
GO
--向ShoppingRecords表导入数据
USEBlueSkyDB
GO
INSERTINTOShoppingRecordsVALUES(NEWID(),1,'2009-3-15',1)
GO
--例6-1显示所有图书的详细信息。
USEBlueSkyDB
GO
SELECTbookID,title,ISBN,author,unitPrice,categoryCode
FROMBooks
GO
--第2种写法
SELECT*
FROMBooks
GO
--例6-2显示所有图书的书号、书名和单价。
SELECTbookID,title,unitPrice
FROMBooks
GO
--例6-3在Books表中查看有哪些类别代号。
SELECTcategoryCode
FROMBooks
GO
--正确写法
SELECTDISTINCTcategoryCode
FROMBooks
GO
--例6-4返回Books表中前百分之20行的数据。
SELECTTOP20PERCENT*
FROMBooks
GO
--例6-5以中文列名显示所有图书的书号、书名、单价以及打9折以后的价格。
SELECT书号=bookID,title书名,unitPriceAS原价,unitPrice*0.9AS折扣价
FROMBooks
GO
--例6-6显示某个作者编写了某本书以及该书的单价。
SELECTTOP3author+'编写的'+titleAS图书,'单价是:
',unitPriceAS单价
FROMBooks
GO
--例6-7显示前3本图书的单价。
SELECTTOP3title+'单价是:
'+CONVERT(nchar(6),unitPrice)AS图书单价
FROMBooks
GO
--例6-8显示单价高于40元的图书的书号、书名和单价。
SELECTbookID,title,unitPrice
FROMBooks
WHEREunitPrice>40
GO
--例6-9显示类别代码是LA01或者单价低于20元的图书的书号、书名、单价和类别代码。
SELECTbookID,title,unitPrice,categoryCode
FROMBooks
WHEREcategoryCode='LA01'ORunitPrice<20
GO
--例6-10显示单价在20到50元之间的图书的书号、书名和单价。
SELECTbookID,title,unitPrice
FROMBooks
WHEREunitPriceBETWEEN20AND50
GO
--第2种写法
SELECTbookID,title,unitPrice
FROMBooks
WHEREunitPrice>=20ANDunitPrice<=50
GO
--例6-11显示ISBN为“9787302163305”、“7560922171”或“9787810097987”的图书的书号、书名和ISBN。
SELECTbookID,title,ISBN
FROMBooks
WHEREISBNIN('9787302163305','7560922171','9787810097987')
GO
--到2种写法
SELECTbookID,title,ISBN
FROMBooks
WHEREISBN='9787302163305'ORISBN='7560922171'ORISBN='9787810097987'
GO
--例6-12在Books表中查找书名中包含“信息”两个字的图书的详细信息。
SELECT*
FROMBooks
WHEREtitleLIKE'%信息%'
GO
--例6-13在表T1中查找列B中尾字符是%的数据行的详细信息。
/*
SELECT*
FROMT1
WHEREBLIKE'%#%'ESCAPE'#'
GO
*/
--例6-14在Books表中显示所有没有类别代号的图书的“书号”和“书名”。
SELECTbookID,title
FROMBooks
WHEREcategoryCodeISNULL
GO
--例6-15显示单价最高的前5本图书的书号、书名、单价和类别代号。
SELECTTOP5bookID,title,unitPrice,categoryCode
FROMBooks
ORDERBYunitPriceDESC
GO
--例6-16显示所有图书的书号、书名、单价和类别代号,首先按照类别代号升序排序,对于类别代号相同的图书再并按照图书单价降排序。
SELECTbookID,title,unitPrice,categoryCode
FROMBooks
ORDERBYcategoryCode,unitPriceDESC
GO
--例6-17显示所有图书的书号、书名、单价和类别代号,并按照单价降序排序。
SELECTbookID,title,unitPrice,categoryCode
FROMBooks
ORDERBY3DESC
GO
--例6-18显示所有图书的书号、书名和类别代号,并按照单价降序排序。
SELECTbookID,title,categoryCode
FROMBooks
ORDERBYunitPriceDESC
GO
--例6-19显示所有图书的书号、书名和打8折的折扣价,并按照折扣价升序排序。
SELECTbookID,title,'salePrice'=unitPrice*0.8
FROMBooks
ORDERBY'salePrice'
GO
--例6-20统计有多少图书的价格高于30元。
SELECTCOUNT(*)AS图书册数
FROMBooks
WHEREunitPrice>30
GO
--第2种写法
SELECTCOUNT(bookID)AS图书册数
FROMBooks
WHEREunitPrice>30
GO
--例6-21在Books表中统计有多少个类别代号。
SELECTCOUNT(categoryCode)AS类别数
FROMBooks
GO
--正确写法
SELECTCOUNT(DISTINCTcategoryCode)AS类别数
FROMBooks
GO
--例6-22统计类别编号是CO01的图书册数和单价总和。
SELECTCOUNT(bookID)AS图书册数,SUM(unitPrice)AS单价总和
FROMBooks
WHEREcategoryCode='CO01'
GO
--例6-23统计所有图书的最高单价、最低单价和平均单价。
SELECTMAX(unitPrice)AS最高单价,MIN(unitPrice)AS最低单价,AVG(unitPrice)AS平均单价
FROMBooks
GO
--例6-24统计每本图书的销售数量总和。
SELECTSUM(quantity)AS销售总册数
FROMOrderItems
GROUPBYbookID
GO
--正确写法
SELECTbookID,SUM(quantity)AS销售总册数
FROMOrderItems
GROUPBYbookID
GO
--例6-25统计销售次数超过1次的图书的书号和销售总册数。
SELECTbookID,SUM(quantity)AS销售总册数
FROMOrderItems
GROUPBYbookID
HAVINGCOUNT(orderID)>3
GO
--例6-26统计单笔销售数量达到或超过10本的图书的书号和销售总册数。
SELECTbookID,SUM(quantity)AS销售总册数
FROMOrderItems
GROUPBYbookID
HAVINGMAX(quantity)>=10
GO
--例6-27显示所有图书的书号、书名、单价和类别代号,最后显示所有图书的总价。
SELECTbookID,title,unitPrice,categoryCode
FROMBooks
ORDERBYcategoryCode
COMPUTESUM(unitPrice)
GO
--例6-28显示所有图书的书号、书名、单价和类别代号,并显示每类图书的总价。
SELECTbookID,title,unitPrice,categoryCode
FROMBooks
ORDERBYcategoryCode
COMPUTESUM(unitPrice)BYcategoryCode
GO
--例6-29连接Books表和Categor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 图书 管理 系统 项目 完整性