sql查询语句学习测试答案.docx
- 文档编号:485890
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:30
- 大小:543.90KB
sql查询语句学习测试答案.docx
《sql查询语句学习测试答案.docx》由会员分享,可在线阅读,更多相关《sql查询语句学习测试答案.docx(30页珍藏版)》请在冰点文库上搜索。
sql查询语句学习测试答案
第一部分SQL查询语句的学习
单表查询
1、--查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值
useeee
SELECT订购日期,订单ID,客户ID,雇员ID
FROM订单
WHERE订购日期BETWEEN'1996-7-100:
00:
00'AND'1996-7-1523:
59:
59'
2、--查询“Northwind”示例数据库中供应商的ID、公司名称、地区、城市和电话字段的值。
条件是“地区等于华北”并且“联系人头衔等于销售代表”。
useeee
SELECT供应商ID,公司名称,地区,城市,电话
FROM供应商
WHERE地区='华北'AND联系人职务='销售代表'
3、--查询“Northwind”示例数据库中供应商的ID、公司名称、地区、城市和电话字段的值。
其中的一些供应商位于华东或华南地区,另外一些供应商所在的城市是天津
useeee
SELECT供应商ID,公司名称,地区,城市,电话
FROM供应商
WHERE地区IN('华东','华南')OR城市='天津'
4、--查询“Northwind”示例数据库中位于“华东”或“华南”地区的供应商的ID、公司名称、地区、城市和电话字段的值
useeee
SELECT供应商ID,公司名称,地区,城市,电话
FROM供应商
WHERE地区IN('华东','华南')
多表查询
5、--查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、相应订单的客户公司名称、负责订单的雇员的姓氏和名字等字段的值,并将查询结果按雇员的“姓氏”和“名字”字段的升序排列,“姓氏”和“名字”值相同的记录按“订单ID”的降序排列
useeee
SELECT订购日期,订单ID,公司名称,姓氏,名字
FROM订单,雇员,客户
WHERE订购日期BETWEEN'1996-7-100:
00:
00'AND'1996-7-1523:
59:
59'
AND订单.雇员ID=雇员.雇员ID
AND订单.客户ID=客户.客户ID
ORDERBY姓氏,名字ASC,订单IDDESC
6、--查询“10248”和“10254”号订单的订单ID、运货商的公司名称、订单上所订购的产品的名称
useeee
SELECT订单.订单ID,公司名称,产品名称
FROM订单,运货商,产品,订单明细
WHERE订单.订单IDIN('10248','10254')
AND订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
AND订单.运货商=运货商.运货商ID
7、--查询“10248”和“10254”号订单的订单ID、订单上所订购的产品的名称、数量、单价和折扣
useeee
SELECT订单.订单ID,产品名称,数量,订单明细.单价,折扣
FROM订单,产品,订单明细
WHERE订单.订单IDIN('10248','10254')
AND订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
8、--查询“10248”和“10254”号订单的订单ID、订单上所订购的产品的名称及其销售金额
useeee
SELECT订单.订单ID,产品名称,数量*订单明细.单价*(1-折扣)AS销售金额
FROM订单,产品,订单明细
WHERE订单.订单IDIN('10248','10254')
AND订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
综合查询
9、--查询所有运货商的公司名称和电话
useeee
SELECT公司名称,电话
FROM运货商
10、--查询所有客户的公司名称、电话、传真、地址、联系人姓名和联系人头衔
useeee
SELECT公司名称,电话,传真,地址,联系人姓名,联系人职务
FROM客户
11、--查询单价介于10至30元的所有产品的产品ID、产品名称和库存量
useeee
SELECT产品ID,产品名称,库存量
FROM产品
WHERE单价BETWEEN10AND30
12、--查询单价大于20元的所有产品的产品名称、单价以及供应商的公司名称、电话
useeee
SELECT产品名称,单价,公司名称,电话
FROM产品,供应商
WHERE单价>20
AND产品.供应商ID=供应商.供应商ID
13、--查询上海和北京的客户在1996年订购的所有订单的订单ID、所订购的产品名称和数量
useeee
SELECT订单.订单ID,产品名称,数量
FROM产品,订单,订单明细,客户
WHERE城市IN('上海','北京')ANDYEAR(订购日期)=1996
AND产品.产品ID=订单明细.产品ID
AND订单.订单ID=订单明细.订单ID
AND订单.客户ID=客户.客户ID
14、--查询华北客户的每份订单的订单ID、产品名称和销售金额
useeee
SELECT订单.订单ID,产品名称,数量*订单明细.单价*(1-折扣)AS销售金额
FROM产品,订单,订单明细,客户
WHERE地区='华北'
AND产品.产品ID=订单明细.产品ID
AND订单.订单ID=订单明细.订单ID
AND订单.客户ID=客户.客户ID
15、--按运货商公司名称,统计1997年由各个运货商承运的订单的总数量
useeee
SELECT公司名称,COUNT(订单ID)AS订单总数量
FROM订单,运货商
WHEREYEAR(发货日期)=1997
AND订单.运货商=运货商.运货商ID
GROUPBY公司名称
16、--统计1997年上半年的每份订单上所订购的产品的总数量
useeee
SELECT订单.订单ID,SUM(数量)AS总数量
FROM订单,订单明细
WHERE订购日期BETWEEN'1997-1-100:
00:
00'AND'1997-6-3023:
59:
59'
AND订单.订单ID=订单明细.订单ID
GROUPBY订单.订单ID
17、--统计各类产品的平均价格
useeee
SELECT类别名称,SUM(单价*库存量)/SUM(库存量)AS平均价格
FROM产品,类别
WHERE产品.类别ID=类别.类别ID
GROUPBY类别名称
18、--统计各地区客户的总数量
useeee
SELECT地区,COUNT(客户ID)AS客户数量
FROM客户
GROUPBY地区
第二部分SQL查询强化测试
1.找出供应商名称,所在城市
useeee
SELECT公司名称,城市
FROM供应商
2.找出华北地区能够供应海鲜的所有供应商列表。
useeee
SELECT公司名称
FROM供应商,类别,产品
WHERE地区='华北'
AND类别名称='海鲜'
AND产品.类别ID=类别.类别ID
AND产品.供应商ID=供应商.供应商ID
3.找出订单销售额前五的订单是经由哪家运货商运送的。
useeee
SELECTTOP(5)订单.订单ID,SUM(订单明细.单价*(1-折扣)*数量)AS销售额,公司名称
FROM订单,订单明细,运货商
WHERE订单.订单ID=订单明细.订单ID
AND订单.运货商=运货商.运货商ID
GROUPBY订单.订单ID,公司名称
ORDERBY销售额DESC
4.找出按箱包装的产品名称。
useeee
SELECT产品名称
FROM产品
WHERE单位数量LIKE'%箱%'
5.找出重庆的供应商能够供应的所有产品列表。
useeee
SELECT产品名称
FROM产品,供应商
WHERE产品.供应商ID=供应商.供应商ID
AND城市='重庆'
6.找出雇员郑建杰所有的订单并根据订单销售额排序。
useeee
SELECT订单.订单ID,SUM(单价*数量*(1-折扣))AS销售额
FROM订单,订单明细,雇员
WHERE姓氏+名字='郑建杰'
AND订单.订单ID=订单明细.订单ID
AND雇员.雇员ID=订单.雇员ID
GROUPBY订单.订单ID
ORDERBY销售额DESC
7.找出订单10284的所有产品以及订单金额,运货商。
useeee
SELECT订单.订单ID,产品名称,订单明细.单价*数量*(1-折扣)AS订单金额,公司名称
FROM订单,订单明细,产品,运货商
WHERE订单.订单ID=10284
AND订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
AND订单.运货商=运货商.运货商ID
8.建立产品与订单的关联。
useeee
SELECT产品.*,订单.*
FROM产品,订单,订单明细
WHERE订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
9.计算销量前10位的订单明细,结果集返回订单ID,订单日期,公司名称,发货日期,销售额,并排序
useeee
SELECT订单.订单ID,订购日期,公司名称,发货日期,SUM(单价*数量*(1-折扣))AS销售额
FROM订单,订单明细,客户
WHERE订单.订单ID=订单明细.订单ID
AND订单.订单IDIN(SELECTTOP(10)订单ID
FROM订单明细
GROUPBY订单ID
ORDERBYSUM(数量)DESC)
AND订单.客户ID=客户.客户ID
GROUPBY订单.订单ID,订购日期,公司名称,发货日期
ORDERBY销售额DESC
10.按年度统计销售额
useeee
SELECTYEAR(订购日期)AS年份,SUM(单价*数量*(1-折扣))AS销售额
FROM订单,订单明细
WHERE订单.订单ID=订单明细.订单ID
GROUPBYYEAR(订购日期)
11.查询供应商中能够供应的产品样数最多的供应商。
SELECTTOP
(1)公司名称,COUNT(产品ID)AS提供产品种类数量
FROM产品,供应商
WHERE产品.供应商ID=供应商.供应商ID
GROUPBY公司名称
ORDERBYCOUNT(产品ID)DESC
12.查询产品类别中包含的产品数量最多的类别。
SELECTTOP
(1)类别名称,COUNT(产品ID)AS产品种类数量
FROM产品,类别
WHERE产品.类别ID=类别.类别ID
GROUPBY类别名称
ORDERBYCOUNT(产品ID)DESC
13.找出所有的订单中经由哪家运货商运货次数最多。
SELECTTOP
(1)公司名称,COUNT(运货商ID)AS运货次数
FROM订单,运货商
WHERE订单.运货商=运货商.运货商ID
GROUPBY公司名称
ORDERBYCOUNT(运货商ID)DESC
14.按类别,产品分组,统计销售额。
useeee
SELECT产品名称,类别名称,SUM(订单明细.单价*数量*(1-折扣))AS销售额
FROM产品,类别,订单明细
WHERE产品.产品ID=订单明细.产品ID
AND产品.类别ID=类别.类别ID
GROUPBY产品名称,类别名称
15.查询海鲜类别最大的一笔订单。
SELECTTOP
(1)订单ID,SUM(订单明细.单价*数量*(1-折扣))AS销售额
FROM产品,类别,订单明细
WHERE类别名称='海鲜'
AND产品.产品ID=订单明细.产品ID
AND产品.类别ID=类别.类别ID
GROUPBY订单ID
ORDERBY销售额DESC
16.按季度统计销售量
SELECTYEAR(订购日期)AS年度,datename(quarter,订购日期)AS季度,SUM(订单明细.单价*数量*(1-折扣))AS销售额
FROM订单,订单明细
WHERE订单.订单ID=订单明细.订单ID
GROUPBYYEAR(订购日期),datename(quarter,订购日期)
ORDERBY年度,季度
17.查出订单总额超出5000的所有订单,客户名称,客户所在地区。
SELECT订单.订单ID,公司名称,地区
FROM订单,订单明细,客户
WHERE客户.客户ID=订单.客户ID
AND订单.订单ID=订单明细.订单ID
GROUPBY订单.订单ID,公司名称,地区
HAVINGSUM(单价*数量*(1-折扣))>5000
18.查询哪些产品的年度销售额低于2000
SELECTYEAR(订购日期),产品名称,SUM(订单明细.单价*数量*(1-折扣))AS销售额
FROM订单,产品,订单明细
WHERE订单.订单ID=订单明细.订单ID
AND产品.产品ID=订单明细.产品ID
GROUPBYYEAR(订购日期),产品名称
HAVINGSUM(订单明细.单价*数量*(1-折扣))<2000
19.查询所有订单ID开头为102的订单
SELECT订单.*
FROM订单
WHERE订单IDLIKE'102%'
20.查询所有“中硕贸易”,“学仁贸易”,“正人资源”,“中通”客户的订单,(要求使用in函数)
SELECT订单.*
FROM订单,客户
WHERE订单.客户ID=客户.客户ID
AND公司名称IN('中硕贸易','学仁贸易','正人资源','中通')
-----以上考试时间一个半小时
21.查询所有订单中月份不是单数的订单。
SELECT订单ID,订购日期
FROM订单
WHEREMONTH(订购日期)%2=0
22.分别各写一个查询,得到订单中折扣为15%,20%的所有订单,并将两个查询再组成一个。
SELECT订单.*
FROM订单,订单明细
WHERE折扣IN('0.15','0.2')
AND订单.订单ID=订单明细.订单ID
23.找出在入职时已超过30岁的所有员工信息
useeee
SELECT雇员.*
FROM雇员
WHEREYEAR(雇用日期)-YEAR(出生日期)>=30
24.找出所有单价大于30的产品(附加要求,产品类别,供应商作为参数,当产品类别和供应商都为空的时候,nofilter)
SELECT产品名称,类别名称,公司名称
FROM产品,类别,供应商
WHERE单价>30
AND产品.类别ID=类别.类别ID
AND产品.供应商ID=供应商.供应商ID
AND类别名称ISNOTNULL
AND公司名称ISNOTNULL
25.查询所有库存产品的总额,并按照总额排序
SELECT产品ID,产品名称,SUM(单价*库存量)AS库存总额
FROM产品
GROUPBY产品ID,产品名称
ORDERBY库存总额DESC
26.检索出职务为销售代表的所有订单中,每笔订单总额低于2000的订单明细,以及相关供应商名称。
SELECT订单明细.*,公司名称
FROM订单,订单明细,供应商,产品,雇员
WHERE雇员.职务='销售代表'
AND订单明细.单价*数量*(1-折扣)<2000
AND订单明细.订单ID=订单.订单ID
AND订单.雇员ID=雇员.雇员ID
AND产品.产品ID=订单明细.产品ID
AND产品.供应商ID=供应商.供应商ID
27.检索出向艾德高科技提供产品的供应商所在的城市。
useeee
SELECT客户.公司名称,供应商.公司名称AS供应商,供应商.城市
FROM供应商,客户,订单明细,产品,订单
WHERE客户.公司名称='艾德高科技'
AND订单.客户ID=客户.客户ID
AND产品.供应商ID=供应商.供应商ID
AND订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
28.计算每一笔订单的发货期(从订购到发货),运货期(从发货到到货)的时常,并按照发货期从长到短的顺序进行排序。
useeee
SELECT订单ID,datediff(day,订购日期,发货日期)AS发货期时常,datediff(day,发货日期,到货日期)AS运货期时常
FROM订单
GROUPBY订单ID,订购日期,发货日期,到货日期
ORDERBY发货期时常DESC
29.将产品表和运货商两个无关的表整合为一个表
SELECTDISTINCT运货商.*,产品.*
FROM订单,运货商,产品,订单明细
WHERE订单.订单ID=订单明细.订单ID
AND订单明细.产品ID=产品.产品ID
AND订单.运货商=运货商.运货商ID
ORDERBY运货商ID,产品ID
USEeee
SELECTDISTINCT运货商ID,公司名称,COUNT(订单明细.订单ID)AS运送次数,产品.产品名称,产品.产品ID
FROM订单,订单明细,产品,运货商
WHERE订单.运货商=运货商.运货商IDAND订单.订单ID=订单明细.订单IDAND订单明细.产品ID=产品.产品ID
GROUPBY运货商ID,公司名称,产品.产品名称,产品.产品ID
ORDERBY运货商ID,产品.产品ID
30.获取在北京工作并向福星制衣厂股份有限公司发送过订单的职工名称。
useeee
SELECTDISTINCT姓氏+名字AS职工
FROM雇员,订单,客户
WHERE雇员.城市='北京'
AND客户.公司名称='福星制衣厂股份有限公司'
AND雇员.雇员ID=订单.雇员ID
AND订单.客户ID=客户.客户ID
GROUPBY姓氏,名字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 查询 语句 学习 测试 答案