暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL | 从零开始学SQL之四:子查询组合查询和表操作

数据化审计 2021-06-02
402

点蓝字关注  设为星标 ☆ 优先赏阅
数字化审计-SmartAudit:问题导向、应用至上、解决痛点

内容导读从零开始学SQL系列之四

引子

小树叶看见美女利剑,径直走向凉亭后,哪知此女虽笑意盈盈,实则阴险狡诈。走不到一米处,此女突然挥剑便刺,树叶只好与其打斗,一招闪躲不及,跌进旁边地牢之中。

也罢,只当寻一处僻静之所,继续研习武功。

起手式

今天学习乾坤大挪移第四层,第四层功法是二节,小树叶仍然循序渐进和大家一起学习。

第一节是子查询、组合查询,第二节是创建、插入、更新、删除表数据。

使用子查询和组合查询

先来学习第一节使用子查询和组合查询吧。

所谓子查询,就是嵌套在其他查询中的查询,主要是需要利用子查询过滤条件或者创建计算字段。

所谓组合查询就是一次执行对个查询,并将结果作为一个查询结果返回。

定义可能比较晦涩,我们还是来看看例子吧。

举个例子:

小树叶想看看方圆钱庄那些是交易大户得重点维护,比如检索出近期钱庄客户中单日交易笔数前10名的明细。(以钱庄客户号命名规则为客户号第6位不为数字8或9为例)。

例1:近期钱庄客户中单日交易笔数前10名的明细

select distinct a.交易机构名称,a.客户号,a.客户名称,a.对方账号,a.对方户名,
    a.交易日期,a.交易时间,a.借贷标志,a.金额,b.总笔数,b.总金额
from tbl_交易流水表 as a,
    (select 客户号,客户名称,交易日期,count(*) as 总笔数,sum(金额) as 总金额
            from tbl_交易流水表
            where substr(客户号,6,1not in ('8','9')
            group by 客户号,客户名称,交易日期
            order by count(*) desc
            fetch first 10 rows only
    ) as b
where a.客户号=b.客户号 and a.交易日期=b.交易日期

上述语句中就是将客户中单日交易笔数汇总查询结果作为一个子查询,并当成一个临时表b使用。

再举个例子:

鉴于方圆钱庄流水较大,2020年和2021年客户交易流水分开储存,但是小树叶想一次性看看2020年和2021年杨逍都为杨不悔转过多少生活费,该怎么处理呢?

例2:多表合并组合查询

select a.交易机构名称,a.客户号,a.客户名称,a.交易日期,a.交易时间,a.借贷标志,a.金额
from tbl_交易流水表2020
where 客户名称='杨逍' and 对方户名='杨不悔' and 借贷标志='借'
union
select a.交易机构名称,a.客户号,a.客户名称,a.交易日期,a.交易时间,a.借贷标志,a.金额
from tbl_交易流水表2021
where 客户名称='杨逍' and 对方户名='杨不悔' and 借贷标志='借'

创建、插入、更新、删除表数据

学完了第一节,那我们先来学习第二节创建、插入、更新、清空表数据吧,语句分别是create table、insert into、update、truncate table。

举个例子:

小树叶想创建一个钱庄客户信息概览表,并从原来的客户基础信息表中插入数据,该怎么操作呢?

例3:创建钱庄客户概览表

CREATE TABLE tbl_客户概览表  ( 
        客户名称            VARCHAR(100),
        客户类型            VARCHAR(10),
        工作单位            VARCHAR(200),
        联系方式            VARCHAR(300),
        联系地址            VARCHAR(400)
        )

那么插入数据呢?

例4:从原有的客户基础信息表中引入数据

insert into tbl_客户概览表
    select distinct a.客户名称,a.客户类型,a.工作单位,a.联系方式,a.联系地址
    from tbl_客户基础信息表 as a
    where substr(a.客户号,6,1)  in ('8','9')

简简单单,是不是又学了一招?其他语句更简单,后续小树叶在第五层给大家一并展示。

收式

小树叶收起秘籍,准备盘坐时,不远处传来呜呜咽咽的哭声音……

知后事如何,请看下回分解。


文章转载自数据化审计,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论