
实验名称:SQL语言应用
最终提交文档:期中上机考试
产品销售数据库中包含三个表,分别是产品表、销售商表和产品销售表。
产品表(产品编号,产品名称,价格,库存量)
销售商表(销售商编号,销售商名称,地区,负责人,电话)
产品销售表(销售日期,产品编号,销售商编号,数量,销售额)
产品表、销售商表和产品销售表的表结构如表1、2和3所示。
表1 产品表结构
| 列名 | 说明 | 数据类型 | 约束 |
| 产品编号 | 产品唯一的产品编号 | 字符串,长度为20 | 主键 |
| 产品名称 | 产品的产品名称 | 字符串,长度为50 | 非空值 |
| 价格 | 产品的价格 | 货币数据类型 | 非空值 |
| 库存量 | 产品的库存量 | 整型 | 空值 |
| 列名 | 说明 | 数据类型 | 约束说明 |
| 销售商编号 | 销售商唯一编号 | 字符串,长度为20 | 主键 |
| 销售商名称 | 销售商名称 | 字符串,长度为50 | 非空值 |
| 地区 | 销售商所在的地区 | 字符串,长度为10 | 非空值 |
| 负责人 | 销售商单位负责人 | 字符串,长度为20 | 空值 |
| 电话 | 销售商的联系电话 | 字符串,长度为20 | 空值 |
| 列名 | 说明 | 数据类型 | 约束说明 |
| 销售日期 | 销售产品的日期 | 日期型 | 外键,引用产品表的主键 |
| 产品编号 | 产品的编号 | 字符串,长度为20 | 外键,引用销售商表的主键 |
| 销售商编号 | 销售商的编号 | 字符串,长度为20 | 非空值 |
| 数量 | 销售商品的数量 | 整型 | 非空值 |
| 销售额 | 销售额 | 货币数据类型 | 非空值 |
| 主键为:(销售日期, 产品编号,客户编号) | |||
一、基于product数据库的三个表,用SQL语言完成以下查询
(1)查询所有产品的产品编号和销售额,并将销售额增加10%后设置别名为“增长额”。
(2)查询“华中、华北、东南”地区的销售商名称和地区。
(3)查找销售商名称的第二个字符是’建’并且只有三个字符的销售商编号和名称。
(4)查询有电话的销售商信息。
(5)查询销售额在2000到5000的并且数量大于100的产品编号和销售日期。
(6)求销售了产品的销售商总数。
(7)求产品编号为“0001”的产品的平均销售额、最高销售额、最低销售额。
(8)查询销售产品种类超过2类的销售商编号和种类数。并按购买种类数从大到小排序。
(9)查询销售商的销售商编号和名称、销售的产品编号和数量。
(10)查询至少销售过1次“0001”号产品的销售商编号和购买次数,并按购买次数多少降序排列。
(11)查询与‘喜田有限公司’在同一地区的销售商名称,地区和负责人。
(12)查询销售商的销售情况,要求包括销售了产品的销售商和没有销售的销售商,显示他们的销售商编号、销售商名称、产品编号、销售日期。
(13)查询销售额小于平均销售额的产品编号、产品名称和价格、销售额。
(14)查询没被销售商销售过的产品信息。
(15)查询销售了“0001”但没有销售“0002”号产品的销售商编号和产品编号。
答案: 1)select 产品编号,销售额,销售额*0.1 增长额 from 产品销售表
2)select 销售商名称,地区 from 销售商表 where 地区 in ('华中','华北','东南')
3)select 销售商编号,销售商名称 from 销售商表 where 销售商名称 like '_建_'
4)select * from 销售商表 where 电话 is not null
5)select 产品编号,销售日期 from 产品销售表 where 销售额 between 2000 and 5000 and 数量>100
6)select count(distinct 销售商编号) 销售商总数 from 产品销售表
7)select avg(销售额),max(销售额),min(销售额) from 产品销售表 where 产品编号='0001'
8)select 销售商编号 ,count(distinct 产品编号) 销售种类 from 产品销售表 group by 销售商编号 order by count(distinct 产品编号) desc
9)select 销售商表.销售商编号,销售商名称,产品编号,数量 from 销售商表,产品销售表 where 销售商表.销售商编号=产品销售表.销售商编号
10)select 销售商编号 ,count(*) 购买次数 from 产品销售表 where 产品编号='0001' group by 销售商编号 order by count(*) desc
11)select 销售商名称,地区,负责人 from 销售商表 where 地区=(select 地区 from 销售商表 where 销售商名称='喜田有限公司')
12)select 销售商表.销售商编号,销售商名称,产品编号,销售日期 from 销售商表 ,产品销售表 where 销售商表.销售商编号*=产品销售表.销售商编号
13)select 产品表.产品编号,产品名称,价格,销售额 from 产品表,产品销售表 where 产品表.产品编号=产品销售表.产品编号 and 销售额<(
select avg(销售额) from 产品销售表)
14)select * from 产品表 where 产品编号 not in (select 产品编号 from 产品销售表 )
15)select distinct 销售商编号,产品编号 from 产品销售表 where 产品编号='0001'
and 销售商编号 not in(select 销售商编号 from 产品销售表 where 产品编号='0002')
