报表第一部分sql练习

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

单表查询

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

SELECT d.`订单ID`,d.`客户ID`,d.`雇员ID`,d.`订购日期` FROM `订单` d WHERE d.`订购日期` BETWEEN '1996-07-04 00:00:00' AND '1996-07-15 00:00:00'

ORDER BY `订购日期`


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

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

 

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

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

 

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

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

 

多表查询

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

SELECT

      d.`订购日期`,

      d.`订单ID`,

      k.`公司名称`,

      g.`姓氏`,

      g.`名字`

FROM

      `订单` d,

      `客户` k,

      `雇员` g

WHERE

      d.`客户ID` = k.`客户ID`

AND d.`雇员ID` = g.`雇员ID`

AND d.`订购日期` BETWEEN '1996-07-01'

AND '1996-07-15'

ORDER BY g.`姓氏` ,g.`名字`,d.`订单ID` DESC

 

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

SELECT

      d.`订单ID`,

      y.`公司名称`,

      c.`产品名称`

FROM

      `订单` d,

      `运货商` y,

      `产品` c,

      `订单明细` m

WHERE

      d.`运货商` = y.`运货商ID`

AND d.`订单ID` = m.`订单ID`

AND m.`产品ID` = c.`产品ID`

AND d.`运货商` = y.`运货商ID`

AND d.`订单ID` IN ('10248', '10254')

 

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

 

SELECT

      d.`订单ID`,

      c.`产品名称`,

      m.`单价`,

      m.`折扣`,

      m.`数量`

FROM

      `订单` d,

      `运货商` y,

      `产品` c,

      `订单明细` m

WHERE

      d.`运货商` = y.`运货商ID`

AND d.`订单ID` = m.`订单ID`

AND m.`产品ID` = c.`产品ID`

AND d.`运货商` = y.`运货商ID`

AND d.`订单ID` IN ('10248', '10254')

 

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

SELECT

      d.`订单ID`,

      c.`产品名称`,

      m.`单价`*m.`数量` AS 销售金额

FROM

      `订单` d,

      `运货商` y,

      `产品` c,

      `订单明细` m

WHERE

      d.`运货商` = y.`运货商ID`

AND d.`订单ID` = m.`订单ID`

AND m.`产品ID` = c.`产品ID`

AND d.`运货商` = y.`运货商ID`

AND d.`订单ID` IN ('10248', '10254')

 

综合查询

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

 

SELECT * FROM `运货商`

 

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

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

 

 

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

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

 

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

SELECT

      c.`产品名称`,

      c.`单价`,

      g.`公司名称`,

      g.`电话`

FROM

      `产品` c,

      `供应商` g

WHERE

      c.`供应商ID` = g.`供应商ID`

AND c.`单价` > 20

 

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

SELECT

      d.`订单ID`,

      c.`产品名称`,

      m.`数量`

FROM

      `客户` k,

      `订单` d,

      `产品` c,

      `订单明细` m

WHERE

      k.`客户ID` = d.`客户ID`

AND d.`订单ID` = m.`订单ID`

AND m.`产品ID` = c.`产品ID`

AND k.`城市` IN ('上海', '北京')

AND YEAR (订购日期) = 1996

 

 

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

SELECT

      d.`订单ID`,

      c.`产品名称`,

      m.`单价` * m.`数量`*(1-m.`折扣`) AS 销售金额

FROM

      客户 k,

      `订单` d,

      `产品` c,

      `订单明细` m

WHERE

      k.`客户ID` = d.`客户ID`

AND d.`订单ID` = m.`订单ID`

AND m.`产品ID` = c.`产品ID`

AND k.`地区` = '华北'

 

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

SELECT

      y.`公司名称`,

      COUNT(*) 总数量

FROM

      `运货商` y,

      `订单` d

WHERE

      y.`运货商ID` = d.`运货商`

AND YEAR (发货日期) = 1997

GROUP BY

      y.`公司名称`

 

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

SELECT

      d.`订单ID`,

      SUM(数量) AS 总数量

FROM

      `订单` d,

      `订单明细` m

WHERE

      d.`订单ID` = m.`订单ID`

AND 订购日期 BETWEEN '1997-01-01'

AND '1997-06-30'

GROUP BY

      d.`订单ID`

 

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

SELECT

      c.`产品ID`,

      l.`类别名称`,

      SUM(c.`单价` * c.`库存量`) / SUM(c.`库存量`) AS 平均值

FROM

      `产品` c,

      `类别` l

WHERE

      c.`类别ID` = l.`类别ID`

GROUP BY

      l.`类别名称`

 

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

SELECT

         k.`客户ID`,

         k.`地区`,

         COUNT(`客户ID`) 地区

FROM

         `客户` k

GROUP BY

         k.`地区`

原文地址:https://www.cnblogs.com/qijiang123/p/14318088.html