博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件开发高手须掌握的4大SQL精髓语句(二)
阅读量:5222 次
发布时间:2019-06-14

本文共 3848 字,大约阅读时间需要 12 分钟。

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

                             马根峰

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

 

作者博客:

CSDN博客:

新浪博客: 

QQ空间: !

 

 

0     引言  

 

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

        在SQL(Structured Query Language)语言DML中,有四大语句堪称其精髓部分。下面就讲述一下其中之一,

Left Outer Join |  Left Join |  Right Outer Join |  Right Join |  Inner Join  语句的用法。

 

        内连接:当实现同等连接和非同等连接时,分别使用等于和不等于运算符表示的连接条件,匹配源表和目标表中的行,这些连接称为内连接(inner join)。这个和用select查询多表是一样的效果,所以很少用到;等同于 From a,b where a.X=b.X

语法如下:

        Select <要选择的字段>

        From <主要资料表> 

        inner join < 次要资料表> [On 规则 ] 

 

       外连接:当返回内连接没有包含的行时实现外连接(Outer Join)。外连接分为:左外连接,右外连接,全外连接。left join 是left outer join的简写,left join默认是outer属性的;right join 是right outer join的简写,right join默认是outer属性的。

 

        语法如下:

        Select <要查询的字段>

        From  <<资料表> 

        [Outer] Join <次要资料表>[On 规则 ]  

 

 

 

1     本例所用工具简单说明

 

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

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

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

 

        在OutJoin.mdb 中有三个数据表,本例中用到如下两个:

             Tb_road (AREANO, ROADNO, ROADNAME, STATUS)

               Tb_vehcount (ROADNO, MONTHS, ROADFLUX)

 

       另外:要先使用“控制面板”中“管理工具”下的“数据源(ODBC)”创建数据源OuterJoinAccess ;或者用《DB 查询分析器》/《DB Query Analyzer》中“工具/tools”菜单下的“ODBC数据源管理器/ODBC Data Source Manager”来创建数据源OuterJoinAccess

  

 

 

 

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

 

       下面就以MS ACCESS数据库为例,以“万能数据库查询分析器” 中文版本《DB 查询分析器》在Windows XP上运行,来为客户端工具来来演示一下Outer Join 、 Inner Join 语句的使用。请记住下面的两句话

            A  Left   join  B Left表明左边的表A是全集

            A  Right  join  B Right表明右边的表B是全集

 

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

select*

fromtb_road  

          1   tb_road表内容

 

select*

fromtb_ vehcount

          2   tb_vehcount表内容

 

SELECT a.AREANO, a.ROADNO, a.ROADNAME, a.STATUS, b.ROADNO, b.MONTHS, b.ROADFLUX

FROM tb_road AS a LEFT JOIN tb_vehcount AS b ON a.ROADNO = b.ROADNO;

          3   Left Join执行结果                        

 

SELECT a.areano, a.roadno, a.roadname, a.status, b.roadno, b.MONTHS, b.ROADFLUX

FROM tb_road AS a RIGHT JOIN tb_vehcount AS b ON a.roadno=b.roadno;

          4   Right Join执行结果                        

 

SELECT a.areano, a.roadno, a.roadname, a.status, b.roadno, b.MONTHS, b.ROADFLUX

FROM tb_road AS a INNER JOIN tb_vehcount AS b ON a.ROADNO=b.ROADNO;

          5   Inner Join执行结果                        

 

SELECT a.areano, a.roadno, a.roadname, a.status, b.roadno, b.MONTHS, b.ROADFLUX

FROM tb_road AS a, tb_vehcount AS b

where a.ROADNO=b.ROADNO;

          6   select查询多表执行结果                        

 

 

 

 

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

 

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

            A  Left   join  B Left表明左边的表A是全集

            A  Right  join  B Right表明右边的表B是全集

 

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

 

select*

fromtb_road

 

          1   tb_road表内容

 

select*

fromtb_ vehcount

           2   tb_vehcount表内容

 

SELECT a.AREANO, a.ROADNO, a.ROADNAME, a.STATUS, b.ROADNO, b.MONTHS, b.ROADFLUX

FROM tb_road AS a LEFT JOIN tb_vehcount AS b ON a.ROADNO = b.ROADNO;

          3   Left Join执行结果                        

 

SELECT a.areano, a.roadno, a.roadname, a.status, b.roadno, b.MONTHS, b.ROADFLUX

FROM tb_road AS a RIGHT JOIN tb_vehcount AS b ON a.roadno=b.roadno;

          4   Right Join执行结果                        

 

SELECT a.areano, a.roadno, a.roadname, a.status, b.roadno, b.MONTHS, b.ROADFLUX

FROM tb_road AS a INNER JOIN tb_vehcount AS b ON a.ROADNO=b.ROADNO;

          5   Inner Join执行结果                        

 

SELECT a.areano, a.roadno, a.roadname, a.status, b.roadno, b.MONTHS, b.ROADFLUX

FROM tb_road AS a, tb_vehcount AS b

where a.ROADNO=b.ROADNO;

          6   select查询多表执行结   

 

 

 

 

 

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

 

 

DB Query Analyzer 5.03下载地址: 

 

 

 

 

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

 

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

 

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

 

 

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

 

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

 

 

 

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

 

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

 

 

 

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

              万能数据库查询分析器

 马根峰的博客:

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

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

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

                                       

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

 

转载于:https://www.cnblogs.com/wuyida/archive/2012/09/21/6300810.html

你可能感兴趣的文章
高等代数习题课(手写)
查看>>
ARGV数组的作用
查看>>
除法运算
查看>>
2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)
查看>>
weixin.com域名易主 传交易价格仅次360.com
查看>>
常用开固定个数多线程的处理方法
查看>>
一个CSS3滤镜Drop-shadow阴影效果
查看>>
【原】实战-Java如何使用Redis
查看>>
【转】ASP.NET 防止同一用户同时登陆
查看>>
画矩形
查看>>
[置顶] 【游戏产业的5年之变】
查看>>
洗牌j
查看>>
适配全面屏手机尺寸
查看>>
Global.asax调试
查看>>
求职经验之综合岗位
查看>>
c++中常见概念、关键字等的区别
查看>>
Linux中的黑洞(black hole)-/dev/null
查看>>
linux下patch命令使用详解---linux打补丁命令
查看>>
快速阅读源码方法
查看>>
MYSQL在线注释文档--- 在gdb中显示源码(gdbtui使用方法)----赖明星的个人博客
查看>>