【习题】FineReport零基础快速学习SQL

如有错误欢迎及时指正,谢谢!

第一部分:SQL查询语句学习

单表查询

–查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值

SELECT 订购日期, 订单ID, 客户ID, 雇员ID 
FROM 订单
WHERE 订购日期 BETWEEN STR_TO_DATE('19960701','%Y%m%d') AND STR_TO_DATE('19960715','%Y%m%d');

在这里插入图片描述

–查询供应商的ID、公司名称、地区、城市和电话字段的值。条件是“地区等于华北”并且“联系人头衔等于销售代表”。

SELECT 供应商ID, 公司名称, 地区, 城市, 电话 
FROM 供应商
WHERE 地区 = '华北' AND 联系人职务 = '销售代表';

在这里插入图片描述

–查询供应商的ID、公司名称、地区、城市和电话字段的值。其中的一些供应商位于华东或华南地区,另外一些供应商所在的城市是天津

SELECT 供应商ID, 公司名称, 地区, 城市, 电话 
FROM 供应商
WHERE 地区 IN ('华东', '华南') OR 城市 = '天津';

在这里插入图片描述

–查询位于“华东”或“华南”地区的供应商的ID、公司名称、地区、城市和电话字段的值

SELECT 供应商ID, 公司名称, 地区, 城市, 电话 
FROM 供应商
WHERE 地区 IN ('华东', '华南');

在这里插入图片描述

多表查询

–查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、相应订单的客户公司名称、负责订单的雇员的姓氏和名字等字段的值,并将查询结果按雇员的“姓氏”和“名字”字段的升序排列,“姓氏”和“名字”值相同的记录按“订单 ID”的降序排列

SELECT A.订购日期, A.订单ID, B.公司名称, C.姓氏, C.名字
FROM 订单 A
LEFT JOIN 客户 B
ON A.客户ID = B.客户ID
LEFT JOIN 雇员 C
ON A.雇员ID = C.雇员ID
WHERE 订购日期 BETWEEN STR_TO_DATE('19960701','%Y%m%d') AND STR_TO_DATE('19960715','%Y%m%d')
ORDER BY C.姓氏, C.名字, A.订单ID DESC

在这里插入图片描述

–查询“10248”和“10254”号订单的订单ID、运货商的公司名称、订单上所订购的产品的名称

SELECT A.订单ID, B.公司名称, D.产品名称
FROM 订单 A
LEFT JOIN 运货商 B
ON A.运货商 = B.运货商ID
LEFT JOIN 订单明细 C
ON A.订单ID = C.订单ID
LEFT JOIN 产品 D
ON C.产品ID = D.产品ID
WHERE A.订单ID IN ('10248','10254');

在这里插入图片描述

–查询“10248”和“10254”号订单的订单ID、订单上所订购的产品的名称、数量、单价和折扣

SELECT A.订单ID, B.产品名称, A.数量, A.单价, A.折扣
FROM 订单明细 A
LEFT JOIN 产品 B
ON A.产品ID = B.产品ID
WHERE A.订单ID IN ('10248','10254');

在这里插入图片描述

–查询“10248”和“10254”号订单的订单ID、订单上所订购的产品的名称及其销售金额

SELECT A.订单ID, B.产品名称, 
ROUND(A.数量 * A.单价 * (1 - A.折扣), 2) AS 销售金额
FROM 订单明细 A
LEFT JOIN 产品 B
ON A.产品ID = B.产品ID
WHERE A.订单ID IN ('10248','10254');

在这里插入图片描述

综合查询

–查询所有运货商的公司名称和电话

SELECT 公司名称, 电话 FROM 运货商;

在这里插入图片描述

–查询所有客户的公司名称、电话、传真、地址、联系人姓名和联系人头衔

SELECT 公司名称, 电话, 传真, 地址, 联系人姓名, 联系人职务 FROM 客户;

在这里插入图片描述

–查询单价介于10至30元的所有产品的产品ID、产品名称和库存量

SELECT 产品ID, 产品名称, 库存量 FROM 产品 WHERE 单价 BETWEEN 10 AND 30;

在这里插入图片描述

–查询单价大于20元的所有产品的产品名称、单价以及供应商的公司名称、电话

SELECT A.产品名称, A.单价, B.公司名称, B.电话
FROM 产品 A
LEFT JOIN 供应商 B
ON A.供应商ID = B.供应商ID
WHERE 单价 > 20;

在这里插入图片描述

–查询上海和北京的客户在1996年订购的所有订单的订单ID、所订购的产品名称和数量

SELECT B.订单ID, D.产品名称, C.数量
FROM 客户 A
LEFT JOIN 订单 B
ON A.客户ID = B.客户ID
LEFT JOIN 订单明细 C
ON B.订单ID = C.订单ID
LEFT JOIN 产品 D
ON C.产品ID = D.产品ID
WHERE A.城市 IN ('上海', '北京')

在这里插入图片描述

–查询华北客户的每份订单的订单ID、产品名称和销售金额

SELECT B.订单ID, D.产品名称, 
ROUND((C.单价 * C.数量 * (1 - C.折扣)),2) AS 销售金额
FROM 客户 A
LEFT JOIN 订单 B
ON A.客户ID = B.客户ID
LEFT JOIN 订单明细 C
ON B.订单ID = C.订单ID
LEFT JOIN 产品 D
ON C.产品ID = D.产品ID
WHERE A.地区 = '华北';

在这里插入图片描述

–按运货商公司名称,统计1997年由各个运货商承运的订单的总数量

SELECT A.公司名称, COUNT(*) AS 承运订单总数量
FROM 运货商 A
LEFT JOIN 订单 B
ON A.运货商ID = B.运货商
WHERE DATE_FORMAT(B.发货日期,'%Y') = '1997'
GROUP BY A.公司名称

在这里插入图片描述

–统计1997年上半年的每份订单上所订购的产品的总数量

SELECT A.订单ID, SUM(数量) AS 订购产品总数量
FROM 订单 A
LEFT JOIN 订单明细 B
ON A.订单ID = B.订单ID
WHERE DATE_FORMAT(订购日期,'%Y') = '1997' AND QUARTER(订购日期) BETWEEN 1 AND 2 
GROUP BY A.订单ID

在这里插入图片描述

–统计各类产品的平均价格

SELECT A.类别名称, ROUND(AVG(B.单价),2) AS 平均价格
FROM 类别 A
LEFT JOIN 产品 B
ON A.类别ID = B.类别ID
GROUP BY A.类别名称

在这里插入图片描述

–统计各地区客户的总数量

SELECT 地区, COUNT(*) AS 客户数量
FROM 客户
GROUP BY 地区

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值