一.创建满足如下的表(16分)
1.图书表(TShB)包括如下字段:
书号(ShH):普通编码定长字符型,6位长,主码
书名(ShM):普通编码可变长字符型,20位长,非空
价格(JG):定点小数,整数部分3位,小数部分1位
出版日期(ChBRQ):小日期时间型,大于1980年1月1日
createtableTShB(
ShHchar(6)primarykey,
ShMvarchar(20)notnull,
JGnumeric(4,1),
ChBRQsmalldatetimecheck(ChBRQ>'1980/1/1')
)
2.书店表(ShDB)包括如下字段:
书店号(ShDH):普通编码定长字符型,4位长,主码
店名(DM):普通编码可变长字符型,20位长,
地址(DZ):普通编码可变长字符型,20位长,
电话(DH):普通编码定长字符型,6位长,每一位必须是0-9数字
createtableShDB(
ShDHchar(4)primarykey,
DMvarchar(20),
DZvarchar(20),
DHchar(6)check(DHlike'[0-9][0-9][0-9][0-9][0-9][0-9]')
)
3.销售表(XShB)包括如下字段:
书号(ShH):普通编码定长字符型,6位长,非空
书店号(ShDH):普通编码定长字符型,4位长,非空
销售日期(XShRQ):小日期时间型,非空
销售数量(XSSL):小整型,允许空,大于0
其中:(书号,书店号,销售日期)为主码
书号为引用图书表的外码,书店号为引用书店表的外码。
createtableXShB(
ShHchar(6)notnull,
ShDHchar(4)notnull,
XShRQsmalldatetimenotnull,
XSSLsmallintcheck(XSSL>0),
primarykey(ShH,ShDH,XShRQ),
foreignkey(ShH)referencesTShB(ShH),
foreignkey(ShDH)referencesShDB(ShDH)
)
二.写出实现如下要求的SQL语句。(35分)
1.查询1999年以后出版的价格在20到30之间的图书的书名。
SELECTShMFROMTShBWHEREJGBETWEEN20AND30AND
YEAR(ChBRQ)>1999
2.查询书店名为“海淀图书城”的书店所销售的图书的书名和图书的销售日期,
并对销售日期进行如下处理:如果销售日期早于1999年,则显示’早期’;
如果销售日期在1999到2003年之间,则显示’中期’;如果销售日期晚于2003年,则显示’近期’。
SELECTShM,CASE
WHENYEAR(XShRQ)<1999THEN'早期'
WHENYEAR(XShRQ)BETWEEN1999AND2003THEN'中期'
WHENYEAR(XShRQ)>2003THEN'近期'
END
FROMShDBajoinXShBbona.ShDH=b.ShDH
joinTShBconb.ShH=C.ShH
WHEREDM='海淀图书城'
3.查询2002年6月1日之后每种图书的销售情况,要求列出图书的书号、销售总量,
并且只列出销售总量前三名的情况。
SELECTTOP3ShH,SUM(XSSL)FROMXShB
WHEREXShRQ>'2002/6/1'
GROUPBYShH
ORDERBYSUM(XSSL)DESC
4.查询每个书店的图书销售总额,要求只列出销售总额高于1000的书店的店号和销售总额,
并将查询结果按销售总额从高到底排列。
SELECTShDH,SUM(JG*XSSL)FROMXShBaJOINTShBb
ona.ShH=b.ShH
GROUPBYShDH
HAVINGSUM(JG*XSSL)>1000
OrderbySUM(JG*XSSL)desc
5.查询价格高于总平均价格的图书的书名。
SELECTShMFROMTShB
WHEREJG>(SELECTAVG(JG)FROMTShB)
5.删除1990年之前的全部销售记录。
DELETEFROMXShB
WHEREYEAR(XShRQ)<1990
6.将书号为‘B10’,书名为‘计算机基础’的图书记录插入到图书表中。
INSERTINTOTShB(ShH,ShM)VALUES('b10','计算机基础')
7.将书店名为“西单”的书店所销售的图书的价格增加5%。
UPDATETShBSETJG=JG+JG*0.05
FROMTShBaJOINXShBbona.ShH=b.ShH
JOINShDBconc.ShDH=b.ShDH
WHEREDM='西单'
三.建立统计指定书名的图书的销售次数的存储过程,要求书名为输入参数,统计结果为输出参数。(10分)
CREATEPROCP1
@XCHAR(20),@YINTOUTPUT
AS
SELECT@Y=COUNT(*)FROMXShBaJOINTShBbona.ShH=b.ShH
whereShM=@X
四.建立限制销售数量不能超过100的触发器。(9分)
CREATETRIGGERT1
ONXShBFORINSERT,UPDATE
AS
IFEXISTS(SELECT*FROMINSERTEDWHEREXSSL>100)
ROLLBACK
相关推荐
"WEB数据库开发工具——WEB.SQL及其应用" WEB.SQL 是 Sybase 公司推出的中间件产品,用于实现 Web 服务器与数据库服务器之间的互联。它允许用户在 HTML 页面中插入 SQL 数据库命令和 Perl 脚本,从而实现动态生成...
通过这些上机练习,我们可以逐步掌握数据库设计的技巧,并理解如何在实际项目中应用。记住,优秀的数据库设计不仅仅是初期工作,还需要随着业务的发展不断调整和完善。尊重并保护知识产权,是我们作为IT从业者的基本...
【DB2数据库课程设计——教学管理系统】 在当前信息化时代,教育领域的管理正逐渐迈向数字化,DB2数据库在教学管理系统中的应用扮演着至关重要的角色。大连交通大学的优秀课程设计项目,旨在通过IBM DB2数据库的...
通过本实训环节,学生能够领会基于数据库的应用程序开发过程,写出完成本课程设计的制作心得与总结。 知识点: * 数据库技术 * 应用程序设计 * Powerbuilder 编程环境 * 数据库设计 * 界面设计 * 主键、外键定义 *...
本文主要介绍了中等职业学校教学用书《数据库应用技术——Visual FoxPro 6.0》的第三版中的主要内容,涉及数据库基础、数据模型、关系型数据库以及如何在Visual FoxPro 6.0中操作数据库和表。 1. 数据库基础 - ...
——2.2 数据库安装步骤 3. 创建数据库 —— 3.1 找到服务器上面的命令窗口 —— 3.2 创建数据库详解 4. 数据库备份文件恢复 —— 4.1 恢复备份数据库备份文件 —— 4.2 执行脚本 5. 计算机任务调度备份数据库 ...
同济大学数据库课程设计——学生健康信息数据库疫情打卡系统_Database_Course_Proj_DB
通过学习这些基础知识,学生将能理解和掌握数据库系统的设计和应用,具备开发和管理数据库的能力,为实际的信息系统开发打下坚实的基础。此外,理解不同数据模型的差异,如层次模型的树型结构、网状模型的网络结构和...
数据库编程学习涵盖了许多方面,包括数据库的基本原理、不同的数据库类型,以及如何连接和操作数据库。在本文中,我们将深入探讨数据库技术的历史、数据库系统的优势、数据库管理系统(DBMS)的功能,以及桌面数据库...
2020-2021数据库课程设计——“英豪荟萃”网购平台_2021-sse-db-project
在数据库学习的初期,理解和掌握基础的数据库概念、设计原则以及如何通过代码实现与数据库的交互至关重要。本实例旨在为初学者提供一个清晰的起点,帮助你们了解数据库的基本操作,并通过实际的代码运行来加深理解。...
- **应用开发体系结构**:使用API(如ADO, OLE DB, ODBC)或Transact-SQL语言直接与数据库交互,实现数据操作和应用开发。 4. **SQL Server 服务器组件** - **SQL Server 数据库引擎**(MSSQL Server服务):负责...
【数据库实验报告——应用系统的数据操纵功能的设计和实现】 本实验报告主要涵盖了SQL语言中关于数据查询、数据更新以及视图定义的基本操作。通过一系列的例题,旨在帮助实验者熟练掌握SQL语句的运用,以实现对...
同济大学数据库课程设计前端&数据库&文档——宠物救助中心_Pet_Rescue_Center_Fo_DB_PetWelfare
3. **丰富的编程接口**:支持多种编程语言,如T-SQL、ODBC、ADO等,方便开发者进行应用程序的开发。 4. **与Windows NT的紧密集成**:利用NT的系统服务,如安全性和网络功能,提供了一流的系统管理体验。 5. **跨...
【标题】“同济大学数据库课程设计前端&数据库&文档——宠物救助中心 Pet Rescue Center”是一次综合性的项目实践,旨在让学生掌握数据库管理系统的应用、前端开发技术以及文档编写技能。这个项目围绕着一个名为...
数据库技术及应用——SQL Server课件 11备份恢复与数据转换 本资源主要讲述数据库技术及应用中的备份恢复与数据转换,分为三个主要部分:备份、恢复和数据转换。 备份是防止数据丢失和被破坏的一个较为理想的方法...