`
skambc
  • 浏览: 46033 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库学习笔记

SQL 
阅读更多
1、union union区别 
在数据库中,union和union all关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

如:
select * from test_union1
   union
select * from test_union2
      这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
    而union all只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
     从效率上说,union all要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用union all,如下:
select * from test_union1
union all
select * from test_union2

使用 union 组合查询的结果集有两个最基本的规则:

a、所有查询中的列数和列的顺序必须相同。

b、数据类型必须兼容
2、利用minus函数生成最小序列号:具体例子如下,
select
        decode(min(id),
        null,
        '0001',
        substr('0000'||min(id),
        -4)) as onecolumn13880_0_
    from
        ( ( select
            to_number(substr(lsh,
            -4)) + 1 as id 
        from
            test t1
        where
            t1.lsh like '1200%')  
    union
    all (
        select
            1 as id 
        from
           test t1 
    ) minus   select
        to_number(substr(lsh,
        -4) )        as id
    from
        test   t2
    where
        t2.lsh like '1200%'
)
minus原理如下:
//创建表1
create table test1
(
name varchar(10),
sex varchar(10),
age int
);
insert into test1 values('luxin','female',25);
insert into test1 values('tom','female',26);
insert into test1 values('mary1','male',27);
insert into test1 values('money','male',27);
insert into test1 values('tony','male',28);
insert into test1 values('tony1','male',19);

//创建表2
create table test2
(
name varchar(10),
sex varchar(10),
age int
);

insert into test2 values('luxin','female',25);
insert into test2 values('tom','female',26);
insert into test2 values('mary2','male',27);
insert into test2 values('money','male',27);
insert into test2 values('tony','male',28);
insert into test2 values('tony2','male',19);

-------------------------------------------
select * from test1 minus select * from test2;
结果:
NAME       SEX               AGE
---------- ---------- ----------
mary1      male               27
tony1      male               19

-----------------------------------------------------------
select * from test2 minus select * from test1;
结果:
NAME       SEX               AGE
---------- ---------- ----------
mary2      male               27
tony2      male               19

结论:Minus返回的总是左边表中的数据,它返回的是差集。
用表1-表2中的数据,如果相同,则去掉,否则返回表1中的数据。

分享到:
评论

相关推荐

    DB2数据库学习笔记

    ### DB2数据库学习笔记知识点详解 #### 一、DB2系统架构及管理命令 ##### 1. DB2的层级概念 - **域**: 指的是DB2的管理范围,通常对应于一个物理服务器或者一组逻辑相关的服务器。 - **实例**: 实例是在一个操作...

    数据库学习笔记.docx

    数据库学习笔记 本资源是个人保留的学习笔记,记录了数据库学习过程中的笔记和实际操作的运行截图。在学习过程中,笔记中也记录了一些操作过程中的错误,以及后来纠察时错误的原因和改正。 数据库学习笔记的目录...

    数据库学习笔记.pdf

    数据库学习笔记.pdf 本资源摘要信息涵盖了数据库学习笔记的主要知识点,包括数据库基本操作、库操作、表操作和数据操作等。 库操作 库操作是数据库学习笔记的基础,包括创建数据库、查找数据库、更新数据库和删除...

    各种主流数据库学习笔记

    《韩顺平老师oracle视频教程听课笔记.pdf》将带你深入Oracle的世界,学习其高级特性,如PL/SQL编程、分区表、物质化视图、数据库链接、闪回技术、数据守护和RAC(实时应用集群)等。Oracle数据库的复杂性和灵活性使...

    2023年数据库学习笔记.docx

    数据库学习笔记SQL基本操作 数据库学习笔记是对数据库操作的详细记录,涵盖了基本操作的CRUD(增删改查)操作。下面是对笔记的详细解释: ### 库操作 库操作是对数据库的基本操作,包括创建、查看、更新和删除...

    数据库学习笔记.sql

    数据库学习笔记.sql

    Java数据库学习笔记一份

    java数据库学习过程的精力总结,适合初学者!对其帮助应该会很大

    郝宾数据库学习笔记

    郝宾的数据库学习笔记主要涵盖了数据库的基本概念、作用、安装与卸载,预备知识,以及数据库操作的基础。首先,数据库被定义为存储和管理数据的软件及其数据集合,包括表、关系和操作。数据库的存在是因为它能高效地...

    pl/sql数据库学习笔记

    PL/SQL数据库学习笔记 PL/SQL是一种高级的程序语言,主要用于Oracle数据库管理系统中。下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量...

    Oracle 11g数据库学习笔记三

    "Oracle 11g数据库学习笔记三" 本篇学习笔记主要讲解了Oracle 11g数据库中的数据伪列,包括ROWNUM和ROWID两种伪列的使用方法和应用场景。同时,也讨论了如何使用这些伪列来实现数据的分页功能和删除重复记录。 一...

    Microsoft SQL 数据库学习笔记

    【Microsoft SQL 数据库学习笔记】 在数据库领域,Microsoft SQL Server 是一种广泛使用的、关系型数据库管理系统,由微软公司开发和维护。SQL(Structured Query Language)是用于管理关系数据库的标准编程语言,...

    db2数据库学习笔记.pdf

    db2数据库学习笔记.pdf

    Redis数据库学习笔记

    Redis数据库学习笔记

    mysql 数据库学习笔记

    mysql 数据库学习笔记

    oracle数据库学习笔记

    总的来说,"Oracle数据库学习笔记"涵盖了Oracle数据库的基础知识、核心概念、管理和优化技巧。通过深入阅读和实践,读者可以逐步掌握这个强大的数据库管理系统,并应用于实际工作场景,解决各种数据库问题。

Global site tag (gtag.js) - Google Analytics