深入浅出SQL之左连接、右连接和全连接
作者: dpriver, 出处:天极, 责任编辑: jinpu,
2006-11-28 08:00
上节我们介绍了表连接,更确切的说是inner joins內连接.连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。为更好的理解这个概念,我们介绍两个表作演示。
| 深入浅出SQL系列教程之SQL语言简介 |
| 深入浅出SQL系列教程之基本SELECT命令 |
| 深入浅出SQL教程之Group by和Having |
| 深入浅出SQL教程之子查询语句 |
| 深入浅出SQL教程之SELECT语句表连接 |
上节我们介绍了表连接,更确切的说是inner joins內连接.
內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。
为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表(msp)。
party(Code,Name,Leader)
Code: 政党代码
Name: 政党名称
Leader: 政党领袖
msp(Name,Party,Constituency)
Name: 议员名
Party: 议员所在政党代码
Constituency: 选区
在介绍左连接、右连接和全连接前,有一个数据库中重要的概念要介绍一下,即空值(NULL)。
有时表中,更确切的说是某些字段值,可能会出现空值, 这是因为这个数据不知道是什么值或根本就不存在。
空值不等同于字符串中的空格,也不是数字类型的0。因此,判断某个字段值是否为空值时不能使用=,<>这些判断符。必需有专用的短语:IS NULL 来选出有空值字段的记录,同理,可用 IS NOT NULL 选出不包含空值的记录。
例如:下面的语句选出了没有领导者的政党。(不要奇怪,苏格兰议会中确实存在这样的政党)
| SELECT code, name FROM party WHERE leader IS NULL |
又如:一个议员被开除出党,看看他是谁。(即该议员的政党为空值)
| SELECT name FROM msp WHERE party IS NULL |
好了,让我们言归正传,看看什么叫左连接、右连接和全连接。
- 本文关键词:

