上机试题4及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机练习4
一、建立数据库:DB081;
二、为描述商品的销售情况,建立了三张表:客户表、商品表和销售表。客户表用于描述客户的基本信息,商品表用于描述商品的基本信息,销售表描述商品对客户的销售情况。在查询分析器中写出创建这三张表的语句,并将语句以文件形式保存下来,文件名为“考生名.SQL”,存放在新建的文件夹下。可以将后续所有的SQL语句均保存在此文件中,在文件中注明题号,不用抄题)。
三张表的结构如下:
1.客户表(KHB)
客户号(KHH) 普通字符编码定长字符型,长度为4,主码。
客户名(KHM) 普通字符编码可变长字符型,最大长度为12,非空。
积分(JF) 整型,默认值为0。
2.商品表(SPB)
商品号(SPH) 普通字符编码定长字符型,长度为4,主码。(注:一个商品号代表一种商品)。
商品名(SPM) 普通字符编码可变长字符型,最大长度为20,非空。
类别(LB) 普通字符编码定长字符型,长度为6,取值范围为{冰箱,电视,电脑} 进价(JJ) 整型。
3.销售表(XSB)
客户号(KHH) 普通字符编码定长字符型,长度为4,非空。
商品号(SPH) 普通字符编码定长字符型,长度为4,非空。
销售日期(XSRQ) 小日期时间型,默认值为系统当前日期,非空。
销售数量(XSSL) 小整型。
销售价格(XSJG) 整型。(注:指单个商品的销售价格)
其中:主码为(客户号,商品号,销售日期),
“客户号”为引用客户表的“客户号”的外码,
“商品号”为引用商品表的“商品号”的外码。
三、运行SQL_Data1.exe程序解压缩数据文件(可解压到任何地方),解压缩的密码为“bbaa”。利用SQL Server的DTS工具,将解压后的“客户及销售表.xls”文件中的数据分别导入到“客户表”和“销售表”中,将“商品表.txt”文件中的数据导入到“商品表”中。
四、利用第三题的三张表,在查询分析器中写出实现如下要求的SQL语句。(注:下述每个小题要求均使用一条SQL语句完成)
1. 查询姓“张”和姓“王”的客户的详细信息。
2. 查询2008年每个月每种商品的销售总数量,列出月份、商品号和销售总数量,结果按月份和
商品号升序排序。
3. 查询被卖出次数最少的三种商品(包括没有被卖出过的商品,包括并列的情况),列出商品名、
类别和进价。
4. 查询在2008年3月到8月期间没有被卖出过的“电脑”类商品的名称和进价。
5. 查询至少购买了“电视”和“冰箱”两类商品的客户名、购买的商品名和类别。
6. 在客户表中插入一新记录,客户号为“K100”,客户名为“新客户”,积分用默认值。
7. 将销售总数量超过1000的商品的进价降低10%。
1
SELECT *
FROM KHB
WHERE KHM LIKE '张%' OR KHM LIKE '王%';
2
SELECT MONTH(XSRQ) 月份,SPH 商品号,SUM(XSSL) 销售总数量
FROM XSB
WHERE YEAR(XSRQ)=2008
GROUP BY MONTH(XSRQ),SPH
ORDER BY MONTH(XSRQ),SPH;
3
SELECT TOP 3 SPM,LB,JJ
FROM SPB LEFT JOIN XSB ON(SPB.SPH=XSB.SPH)
GROUP BY SPB.SPH,SPM,LB,JJ
ORDER BY COUNT(SPB.SPH)
4
SELECT SPM,JJ
FROM SPB
WHERE LB='电脑' AND SPH NOT IN ( SELECT SPH
FROM XSB
WHERE XSRQ>='2008-3-1' AND XSRQ<='2008-8-31')
5
SELECT KHM,SPM,LB
FROM KHB,XSB,SPB
WHERE KHB.KHH=XSB.KHH AND XSB.SPH=SPB.SPH
AND XSB.KHH IN ( SELECT KHH
FROM XSB,SPB
WHERE XSB.SPH=SPB.SPH AND LB='冰箱'
AND XSB.KHH IN ( SELECT KHH
FROM XSB,SPB
WHERE XSB.SPH=SPB.SPH AND LB='电脑'))