零基础快速自学SQL,1天足矣

151楼
发表于 2018-4-22 17:28:37
来自手机
152楼
发表于 2018-4-22 17:50:35
习惯用oracle,所以把传说哥提供的导入语句改成了oracle对应的语句。第一部分word习题:SQL查询语句的学习如下:

1.单表查询

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

select 订购日期, 订单ID, 客户ID,雇员ID
  from 订单
where to_char(订购日期, 'yyyy-mm-dd') between '1996-07-01' and '1996-07-15'

select 订购日期, 订单ID, 客户ID,雇员ID
  from 订单
where 订购日期 between to_date('1996-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') and
       to_date('1996-07-15 00:00:00', 'yyyy-mm-dd hh24:mi:ss')



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

select 供应商ID, 公司名称, 地区, 城市, 电话
  from 供应商
where 地区 = '华北'
   and 联系人职务 = '销售代表'



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

select 供应商ID, 公司名称, 地区, 城市, 电话
  from 供应商
where 地区 in ('华东', '华南')
    or 城市 = '天津'
order by 地区, 城市



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

select 供应商ID, 公司名称, 地区, 城市, 电话
  from 供应商
where 地区 in ('华东', '华南')
order by 地区



2.多表查询

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

select a.订购日期,
       a.订单ID,
       b.公司名称 as 客户公司名称,
       c.姓氏     as 雇员姓氏,
       c.名字     as 雇员名字
  from 订单 a
  left join 客户 b
    on a.客户ID = b.客户ID
  left join 雇员 c
    on a.雇员ID = c.雇员ID
where to_char(a.订购日期, 'yyyy-mm-dd') between '1996-07-01' and '1996-07-15'
order by c.姓氏, c.名字, a.订单ID desc



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

select a.订单ID, b.公司名称 as 运货商公司名称, 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')



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

select a.订单ID, c.产品名称, b.数量, b.单价, b.折扣
  from 订单 a
  left join 订单明细 b
    on a.订单ID = b.订单ID
  left join 产品 c
    on b.产品ID = c.产品ID
where a.订单ID in ('10248', '10254')



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

select a.订单ID, c.产品名称, b.单价 * b.数量 * (1 - b.折扣) as 销售金额
  from 订单 a
  left join 订单明细 b
    on a.订单ID = b.订单id
  left join 产品 c
    on b.产品ID = c.产品ID
where a.订单ID in ('10248', '10254')



3.综合查询

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

select 公司名称, 电话 from 运货商



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

select 公司名称, 电话, 传真, 地址, 联系人姓名, 联系人职务
  from 客户
order by 公司名称



3.3 查询单价介于1030元的所有产品的产品ID、产品名称和库存量

select 产品ID, 产品名称, 库存量
  from 产品
where 单价 between 10 and 30
order by 产品ID



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

select a.产品名称, a.单价, b.公司名称 as 供应商公司名称, b.电话
  from 产品 a
  left join 供应商 b
    on a.供应商ID = b.供应商id
where a.单价 > 20
order by a.产品ID



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

select a.订单ID, c.产品名称, b.数量
  from 订单 a
  left join 订单明细 b
    on a.订单ID = b.订单ID
  left join 产品 c
    on b.产品id = c.产品id
where a.货主城市 in ('上海', '北京')
   and to_char(a.订购日期, 'yyyy-mm-dd') like '1996%'
order by a.订单ID



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

select a.订单ID, c.产品名称, b.单价 * b.数量 * (1 - b.折扣) as 销售金额
  from 订单 a
  left join 订单明细 b
    on a.订单ID = b.订单ID
  left join 产品 c
    on b.产品id = c.产品id
where a.货主地区 = '华北'
order by a.订单ID



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

select b.公司名称 as 运货商公司名称, count(a.订单ID) as 订单总数
  from 订单 a
  left join 运货商 b
    on a.运货商 = b.运货商ID
group by b.公司名称
order by b.公司名称



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

select a.订单ID, sum(b.数量) as 产品总数量
  from 订单 a
  left join 订单明细 b
    on a.订单ID = b.订单ID
where to_char(a.订购日期, 'yyyy-mm') between '1997-01' and '1997-06'
group by a.订单ID
order by a.订单ID



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

select a.类别名称, avg(b.单价) as 平均价格
  from 类别 a
right join 产品 b
    on a.类别id = b.类别id
group by a.类别名称



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

select 地区, count(客户ID) as 客户总数量
  from 客户
group by 地区
order by 地区


编辑于 2018-4-22 18:12  

编辑于 2018-4-22 18:13  
参与人数 +1 F豆 +100 理由
传说哥 + 100 点个赞

查看全部评分

153楼
发表于 2018-4-22 18:23:42
为啥第二个销售额不是排第二的?
154楼
发表于 2018-4-22 19:22:44
基础的,看看
155楼
发表于 2018-4-23 21:55:25
非常 好
156楼
发表于 2018-4-24 00:07:17
厉害了厉害了
157楼
发表于 2018-4-24 00:19:58
学习下咯
158楼
发表于 2018-4-24 07:48:43
159楼
发表于 2018-4-24 10:13:23
学 看看看
160楼
发表于 2018-4-24 21:22:13
感谢分享@!
161楼
发表于 2018-4-25 08:35:56
感谢分享!
162楼
发表于 2018-4-25 11:09:36
密码1111234
163楼
发表于 2018-4-25 11:14:35
解压密码
164楼
发表于 2018-4-25 15:09:39
HUIWWWWWWWWWWWWWWW
165楼
发表于 2018-4-26 09:43:17
111111
166楼
发表于 2018-4-26 11:40:41
111111
167楼
发表于 2018-4-26 22:23:10
来自手机
好好学习
168楼
发表于 2018-4-26 22:47:15
交作业咯
参与人数 +1 F豆 +200 理由
传说哥 + 200 为交作业点个赞

查看全部评分

169楼
发表于 2018-4-27 09:43:03
sql语句没有什么难点,主要是思路清析;
170楼
发表于 2018-4-27 09:43:09
mima
171楼
发表于 2018-4-27 10:16:33
还有什么  看看~
172楼
发表于 2018-4-27 14:54:24
学习2
173楼
发表于 2018-4-28 12:56:41
174楼
发表于 2018-4-28 13:42:38
学习一下
175楼
发表于 2018-4-28 15:13:03
学习一下,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1326回帖数 45关注人数 190118浏览人数
最后回复于:2022-3-23 19:30

返回顶部 返回列表