MySQL数据操作与查询-连接查询


前言

 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在 一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带 来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。本文章就是介绍连接查询

一、什么是连接查询

示例:连接查询是通过连接运算符可以实现多个表查询的一种查询方式。连接是关系数据库模型的主要特点,也是它区别于其它类型 数据库管理系统的一个标志。

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

运行结果如下图所示从STUDENT表和TEACHER表中查询学生姓名、所在系、所修的所有课程的课程号以及开课教师姓名。

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 其他条件】

以上就是今天要讲的内容,本文仅仅简单介绍了数据连接的相关知识,而连接操作给用户带 来很大的灵活性,他们可以在任何时候增加新的数据类型,提供了大量能使我们快速便捷地查询数据的函数和方法。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值