zoukankan      html  css  js  c++  java
  • 软件开发高手须掌握的4大SQL精髓语句(四)

     

     

    软件开发高手须掌握的4大SQL精髓语句(四)

                      马根峰

      ( 广东联合电子收费股份有限公司, 广州510300)

     

    作者博客:

    CSDN博客:http://blog.csdn.net/magenfeng

    新浪博客: http://blog.sina.com.cn/magenfeng

    QQ空间: http://user.qzone.qq.com/630414817/main#!

     

    0       引言  

    随着计算机在社会各领域应用的深入,软件开发人员不得不面临着或多或少的数据处理、数据库访问。

    SQLStructured Query Language)语言DML中,有四大语句堪称其精髓部分。下面就讲述一下其中之一,UNIONUNION ALL语句的用法。

    UNION 操作符用于合并两个或多个SELECT语句的结果集。

    请注意,UNION内部的SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT 语句中的列的顺序必须相同。

     

    UNION 语法如下:

    SELECT column1, column2,…, columnX

    FROM table_name1

    UNION

    SELECT column1, column2,…, columnX

    FROM table_name2

       

    UNION  ALL语法如下:

    SELECT column1, column2,…, columnX

    FROM table_name1

    UNION ALL

    SELECT column1, column2,…, columnX

    FROM table_name2

       

       UNIONUNION ALL区别

            UNION操作符选取不同的值,即UNION是去了重的。如果允许重复的值,请使用UNION ALL

       

     

     

    1       本例所用工具简单说明

    下面就以DB2数据库为例,以“万能数据库查询分析器”中文版本《DB查询分析器》、英文版本《DB Query Analyzer》作为客户端工具来来演示一下Inner JoinOuter Join 语句的用法。

    之所以选择“万能数据库查询分析器”作为客户端工具,主要是因为,一方面,“万能数据库查询分析器”具有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。在《程序员》20072期的“新产品&工具点评”部分,编辑“特别推荐”了“万能数据库查询分析器”发布。

    另一方面,截止到目前,中文版本DB查询分析器》在国内最著名的软件下载网站“中关村在线”中下载量近9万次,位居整个数据库类排行谤中前20位。

     

      

     

    2       建立MYSQL数据库的ODBC数据源UNION_MYSQL

       DB 查询分析器》是通过ODBC数据源来访问各种数据库及EXCEL的,所以首先要建立要访问的数据库或EXCELODBC数据源。如果您的主机上没有对应数据库的ODBC驱动程序,那您还要下载(通常该数据库厂家的官方网站上都提供有ODBC驱动程序下载)安装对应数据库的ODBC驱动程序,然后再建立相应的ODBC数据源。

     

     

     

     

    3       “万能数据库查询分析器”中文版本《DB查询分析器》为例

    下面就以MYSQL数据库为例,以“万能数据库查询分析器”中文版本《DB查询分析器》在Windows XP上运行,来作为客户端工具来来演示一下UNIONUNION ALL语句的使用。

    运行《DB Query Analyzer》,连接上数据源UnionAccess,用户名与口令均为空(MS ACCESS数据库可不用密码和口令),然后输入以下命令:

    需要注意的是,TB_area数据表本身就有重复记录

     

     

    SELECT    AREANO,AREANAME,AREASERVERIP

    FROM  `tb_area`   

      1     Tb_area表内容

     

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area2"  


              2      Tb_area2表内容

     

    SELECT    AREANO,AREANAME,AREASERVERIP

    FROM  `tb_area` 

    UNION

    SELECT    AREANO,AREANAME,AREASERVERIP

    FROM  `tb_area2`   


               3  两个表Union执行结果                        

        

    SELECT    AREANO,AREANAME,AREASERVERIP

    FROM  `tb_area` 

    UNION ALL

    SELECT    AREANO,AREANAME,AREASERVERIP

    FROM  `tb_area2`   


               4   Union all执行结果                        

     

    大家想一下tb_area本身就有重复记录那如果是tb_area自身Union结果会是怎么样???

     SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area" 

    UNION

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area" 


               5  同一个表Union执行结果                                      

     

     

     

     

    4       万能数据库查询分析器英文版本《DB Query Analzyer》为例

    下面就以MS ACCESS数据库为例,以“万能数据库查询分析器”英文版本《DB Query Analyzer》在Windows 2000上运行,来作为客户端工具来来演示一下UNIONUNION ALL语句的使用。

    运行《DB Query Analyzer》,连接上数据源UnionAccess,用户名与口令均为空(MS ACCESS数据库可不用密码和口令),然后输入以下命令:

    需要注意的是,TB_area数据表本身就有重复记录

     

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area"  


       1     Tb_area表内容

     

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area2"  


               2     Tb_area2表内容

     

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area" 

    UNION

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area2" 


               3  两个表Union执行结果                        

        

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area" 

    UNIONALL

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area2" 


               4   Union all执行结果                        

     

    大家想一下tb_area本身就有重复记录那如果是tb_area自身Union结果会是怎么样???

     SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area" 

    UNION

    SELECT    "AREANO", "AREANAME", "AREASERVERIP"

    FROM  "Tb_area" 


               5  同一个表Union执行结果                      

     

    由于篇幅原因,在OracleSybaseMS SQL ServerInformix数据库上的操作就不再赘述,有兴趣的朋友自己可以去操作一下。

     

     

     

     

    DB 查询分析器 5.03  下载地址:

    http://xiazai.zol.com.cn/detail/27/264455.shtml

     

     

    DB Query Analyzer 5.03下载地址: 

    http://xiazai.zol.com.cn/detail/43/420901.shtml

     

     

     

    软件开发高手须掌握的4SQL精髓语句 系列:

     

    软件开发高手须掌握的4SQL精髓语句(四)

    http://blog.csdn.net/magenfeng/article/details/8050612

     

    软件开发高手须掌握的4SQL精髓语句(三)

    http://blog.csdn.net/magenfeng/article/details/8015093

     

    软件开发高手须掌握的4SQL精髓语句(二)

    http://blog.csdn.net/magenfeng/article/details/8003558

     

    软件开发高手须掌握的4SQL精髓语句(一)

    http://blog.csdn.net/magenfeng/article/details/7969385

     

     

    《程序员》“特别推荐”了“万能数据库查询分析器”:

     

    在《程序员》20072期的“新产品&工具点评”部分,编辑“特别推荐”了“万能数据库查询分析器”发布。

    http://blog.csdn.net/magenfeng/article/details/7192368


                  马根峰本人的微信公众号:

                  万能数据库查询分析器

     马根峰的博客:

    CSDN博客:http://blog.csdn.net/magenfeng

    新浪博客:  http://blog.sina.com.cn/magenfeng

    官方网址:   http://www.unitedpowersoft.com/



                                           

                                                    更多精彩文章,技术分享,敬请期待




     

  • 相关阅读:
    JS中的call()和apply()方法和bind()
    reactjs入门到实战(十)----one-first_app
    49-Reverse Linked List II
    48-Merge Sorted Array
    47-Generate Parentheses
    46.Valid Parentheses
    45-Letter Combinations of a Phone Number
    44-Count and Say
    43-Reverse Nodes in k-Group
    42-Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300808.html
Copyright © 2011-2022 走看看