软件开发高手须掌握的4大SQL精髓语句(二)
作者博客:
CSDN博客:http://blog.csdn.net/magenfeng
新浪博客:
QQ空间:
0
随着计算机在社会各领域应用的深入,软件开发人员不得不面临着或多或少的数据处理、数据库访问。
在SQL(Structured Query Language)语言DML中,有四大语句堪称其精髓部分。下面就讲述一下其中之一,
Left Outer 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位。
Tb_vehcount (ROADNO, MONTHS, ROADFLUX)
另外:要先使用“控制面板”中“管理工具”下的“数据源(ODBC)”创建数据源 OuterJoinAccess ;或者用《DB 查询分析器》/《DB Query Analyzer》中“工具/tools”菜单下的“ODBC数据源管理器/ODBC Data Source Manager”来创建数据源OuterJoinAccess 。
2
下面就以MS ACCESS数据库为例,以“万能数据库查询分析器” 中文版本《DB 查询分析器》在Windows XP上运行,来为客户端工具来来演示一下Outer Join 、 Inner Join 语句的使用。请记住下面的两句话
A
A
运行《DB 查询分析器》,连接上数据源 OuterJoinAccess ,用户名与口令均为空(MS ACCESS数据库可不用密码和口令),然后输入以下命令:
select*
fromtb_road
select*
fromtb_ 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;
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;
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;
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;
3
下面就以MS ACCESS数据库为例,以“万能数据库查询分析器” 英文版本《DB Query Analyzer》在Windows 2000上运行,来作为客户端工具来来演示一下Outer Join 、 Inner Join 语句的使用。请记住下面的两句话
A
A
运行《DB Query Analyzer》,连接上数据源 OuterJoinAccess ,用户名与口令均为空(MS ACCESS数据库可不用密码和口令),然后输入以下命令:
select*
fromtb_road
select*
fromtb_ 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;
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;
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;
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;