连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外链接等,通过连接运算符可以实现多个表查询。
内连接查询
内连接(INNER JOIN)是使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组合成新的记录。也就是说,在内连接查询中,只有满足条件的记录才能出现在结果关系中。
内连接语法:
SELECT 查询字段
->FROM 表1 [INNER] JOIN 表2
-ON 表1.关系字段 = 表2.关系字段
外连接查询
前面讲解的内连接查询中,返回的结果只包含符合查询条件和连接条件的数据,然而有时还需要包含没有关联的数据,即返回查询结果中不仅包含符合条件的数据,而且还包括左表(左连接或左外连接)、右表(右连接或右外连接)或两个表(全外连接)中的所有数据,此时就需要使用外连接查询,外连接分为左连接和右连接。
外连接的语法格式如下:
-> SELECT 所查字段
-> FROM 表1 LEFT|RIGHT [OUTER] JOIN 表2
-> ON 表1.关系字段=表2.关系字段 WHERE 条件
外连接的语法格式和内连接类似,只不过使用的是LEFT JOIN、RIGHT JOIN关键字,其中关键字左边的表被称为左表,关键字右边的表被称为右表。
在使用左连接和右连接查询时,查询结果是不一致的,具体如下。
- LEFT JOIN(左连接):返回包括左表中的所有记录和右表中符合连接条件的记录。
- RIGHT JOIN(右连接):返回包括右表中的所有记录和左表中符合连接条件的记录。
1.LIFT JOIN (左连接)
左连接的结果包括LEFT JOIN子句中指定的左表的所有记录,以及所有满足连接条件的记录。如果左表的某条记录在右表中不存在,则在右表中显示为空。
-> SELECT 所查字段
-> FROM 表1 LEFT [OUTER] JOIN 表2
-> ON 表1.关系字段=表2.关系字段 WHERE 条件
RIGHT JOIN(右连接)
右连接与左连接正好相反,返回右表中所有指定的记录和所有满足连接条件的记录。如果右表的某条记录在左表中没有匹配,则左表将返回空值。
-> SELECT 所查字段
-> FROM 表1 RIGHT [OUTER] JOIN 表2
-> ON 表1.关系字段=表2.关系字段 WHERE 条件