一、基本查询。
1.查询所有买家信息。select * from买家表。
2.查询所有商品的商品名称、品牌、型号。select商品名称,品牌,型号from商品表3.
输出销售表中不同的商品编号(剔除重复行)。select distinct商品编号from销售表4.输出销售表中前20%的记录信息。
select top 20 percent * from销售表。
5.输出编号为m04的买家所购商品的记录信息。select*from销售表where买家编号='m04'
6.输出编号为m04的买家在2023年9月所购商品的记录信息。
select*from销售表where买家编号='m04'and销售日期between'2013-09-01'and'2013-09-30'
7.输出商品编号为s01、s04、s05的销售情况。
select*from销售表where商品编号in('s01','s04','s05')
8.查询2023年月以外的商品销售情况。
select*from销售表where销售日期notbetween'2013-07-01'and'2013-08-31'
9.查询**号码第一位为6的买家信息。
select*from买家表where**like'6%'
10.查询**号码第3位为6或9的买家信息。
select*from买家表where**like'__69]%'
11.查询**号码第3位、第5位为5的买家信息。
select*from买家表where**like'__5_5%'
select*from买家表where**like'__5%'or**like'__5%'
12.输出销售表中所有信息,按商品名升序排列,同一商品名按销售数量降序排列。
selecta.*,b.商品名称from销售表a,商品表bwherea.商品编号=b.商品编号orderby商品名称,销售数量desc
输出销售表中所有信息,按商品编号升序排列,同一商品编号按销售数量降序排列。
select*from销售表orderby商品编号,销售数量desc
13.将12题的结果保存到临时表#ttt中,并输出此临时表中的信息。
select*into#tttfrom销售表orderby商品编号,销售数量desc
goselect*from#ttt
二、汇总查询。
1.查询有多少个不同的买家。
selectcount(*)from买家表。
2.查询销售表中商品编号为's01'的实际销售**的最高值、最低值、平均值(不考虑销售数量)、加权平均值。
参考:select max(实际销售**),min(实际销售**),**g(实际销售**),sum(实际销售***销售数量)/sum(销售数量) from销售表where商品编号='s01'
3.查询销售表中各买家的销售笔数。
selectcount(*)买家编号from销售表groupby买家编号。
4.查询销售表中各商品的实际销售**的最高值、最低值。
参考:select max(实际销售**),min(实际销售**) from销售表group by商品编号。
5.查询商品表中,台式机中各品牌的库存总数。
参考:select品牌,sum(库存) from商品表where商品名称='台式机'group by品牌6.查询商品表中,台式机中各品牌库存总数在100台以上的库存信息。
参考:select品牌,sum(库存) from商品表where商品名称='台式机' group by品牌。
h**ing sum(库存)>=100
7.输出商品表中台式机的明细信息及库存总数。
参考:select*from商品表where商品名称='台式机'compute sum(库存)
8.输出商品表中,台式机中各品牌的库存总数,并显示明细信息。参考:select*from商品表where商品名称='台式机'order by品牌。
compute sum(库存) by品牌。
三、连接查询和子查询。
1.查询台式机2023年下半年的销售情况。
select*from销售表where商品编号in
select商品编号from商品表where商品名称='台式机')and销售日期between'2013-06-01'and'2013-12-31'
2.查询电子校所购电脑(含笔记本、台式机)的详细记录情况。
select*from销售表where买家编号=
select买家编号from买家表where买家名称='电子校')
and商品编号in(select商品编号from商品表where商品名称in('笔记本','台式机'))
3.查询商品表中每种商品(根据商品名区别)库存最多的商品情况。
分步走:select商品名称,sum(库存)from商品表groupby商品名称orderbysum(库存)desc
selecttop1商品名称,sum(库存)from商品表groupby商品名称orderbysum(库存)desc最后结果:
select*from商品表where商品名称in
selecttop1商品名称from商品表groupby商品名称orderbysum(库存)desc)
4.查询商品表中商品销售价远高于进价最悬殊的商品情况。
selecttop1a.*,b.实际销售**from商品表a,销售表bwherea.商品编号=b.商品编号orderby实际销售**-进价desc
5.查询商品表中每种商品(根据商品名区别)所占用资金最多的商品情况。
分步:select商品名称,sum(进价*库存)from商品表groupby商品名称--会有错误提示。
select商品名称,sum(convert(money,进价)*库存)from商品表groupby商品名称。
select商品名称,sum(convert(money,进价)*库存)from商品表groupby商品名称orderbysum(convert(money,进价)*库存)desc
最后结果:select*from商品表where商品名称=
selecttop1商品名称from商品表groupby商品名称orderbysum(convert(money,进价)*库存)desc)
6.查询销售表中商品销售单价最贵的商品去向,要求输出买家详细信息。
select*from买家表where买家编号=
selecttop1买家编号from销售表orderby实际销售**desc)
7.查询进价比实际销售价还高的商品销售记录。
selecta.*,b.实际销售**from商品表a,销售表bwherea.商品编号=b.商品编号and实际销售**《进价。
8.输出销售表中每种商品销售金额最多的那些商品的记录信息。
分步:select商品编号,sum(实际销售***销售数量)from销售表groupby商品编号orderbysum(实际销售***销售数量)desc最后结果:
select*from销售表where商品编号=
selecttop1商品编号from销售表groupby商品编号orderbysum(实际销售***销售数量)desc)
9.查询销售表中同一商品被同一买家刚好买过2次的记录信息。参考:
select * from销售表a,select商品编号,买家编号,count(*)as次数from销售表group by商品编号,买家编号h**ing count(*)2) b
where a.商品编号=b.商品编号and a.买家编号=b.买家编号或:select * from销售表where商品编号+买家编号in
select商品编号+买家编号from销售表group by商品编号,买家编号h**ing count(*)2)
10.要求查询电子校所购商品的详细记录,输出内容包括:商品编号,商品名称,型号,进价,实际销售**,销售日期,销售数量,买家名称,**。
SQL习题答案
第一章。选择题 a c d a 二 填空题。1 层次 网状 关系 关系。2 数据结构 数据操作 完整性约束。3 模式 外模式 外模式 模式映象 模式 内模式映象。4 选择 投影 连接。5 水平 垂直。6 实体 域 参照。7 一张二维表 行 列。8 插入 修改 删除。9 客户 浏览器。第二章。选择题 ...
sql查询举例 含答案
查询练习。一 简单查询 无条件查询 1 查询 学生档案 表中所有的记录。select form 学生档案。2 查询 学生档案 表中全体学生的姓名 学号 家庭地址。select 姓名,学号,家庭地址 from 学生档案。二 有条件查询。1 查询 成绩管理 表中语文成绩在80分以下的学生的学号。sele...
SQL习题有答案
一 选择。1 根据关系数据基于的数据模型 关系模型的特征判断下列正确的一项 b a 只存在一对多的实体关系,以图形方式来表示。b 以二维 结构来保存数据,在关系表中不允许有重复行存在。c 能体现一对多 多对多的关系,但不能体现一对一的关系。d 关系模型数据库是数据库发展的最初阶段。2 a 如果要让w...