• 报表第一部分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.`地区`

  • 相关阅读:
    javascript ext 闭包
    Hibernate HQL from superclass 问题
    sql查询按in顺序排序显示数据 oracle
    Hibernate createSQLquery()
    sql 分页
    javasript 闭包测试
    Excel 批量快速导入mySQL 解决方案~~
    C# 注册COM+组件步骤~
    QT错误集锦~
    QuartzNet Test~~
  • 原文地址:https://www.cnblogs.com/qijiang123/p/14318088.html
Copyright © 2020-2023  润新知