前言
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在 一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带 来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。本文章就是介绍连接查询一、什么是连接查询
示例:连接查询是通过连接运算符可以实现多个表查询的一种查询方式。连接是关系数据库模型的主要特点,也是它区别于其它类型 数据库管理系统的一个标志。
1. 内连接查询
内连接也叫连接,是最早的一种连接。还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,分为交叉连接,相等连接和自然连接
语法:
select fieldlist from table1 [inner] join table2 on table1.column1=table2.column2【where condition】
代码如下(示例):
SELECT SNAME, S.DNAME, S.CNO, TNAME
FROM STUDENT AS S
INNER JOIN TEACHER AS T
ON S. CNO = T. CNO
ORDER BY SNAME
运行结果如下图所示
1.1 交叉连接(笛卡尔积)
交叉连接(Cross Join),又称"笛卡尔连接(Cartesian Join)“或"叉乘(Product)”,它是所有类型的内连接的基础。笛卡尔积就是两个集合钟的每一个成员都与对方集合中的任意一个成员有关联。
代码如下(示例):
SELECT * FROM table1, table2
SELECT * FROM table1 CROSS JOIN table2
下图是典型交叉连接示意图:
但是由于交叉连接没有将两张表进行关联连接,导致查询结果中会有大量重复数据,故交叉连接的查询效率非常低。
## 1.2 自然连接 自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。而等值连接并不去掉重复的属性列。 **语法**:
select columns from table1 natural join table2【where condition】
1.3 相等连接和自然连接比较
两者之间的区别和联系如下:
1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
二、多表连接查询
1.三表查询语法:
select fieldlist from table1 join table2 on table1.column1=table2.column2_1 join table3 on table2.column2_2=table3.column3【where condition】
注意:三表以上连接查询的方法与三表连接查询的方法一样,均是通过两两查询的方法实现。
2.简单多表查询语法:
select fieldlist from table1, table2 where table1.column1=table2.column2【and 其他条件】
以上就是今天要讲的内容,本文仅仅简单介绍了数据连接的相关知识,而连接操作给用户带 来很大的灵活性,他们可以在任何时候增加新的数据类型,提供了大量能使我们快速便捷地查询数据的函数和方法。