sql中的连接查询详解函数,sql内连接查询

sql中的连接查询详解函数,sql内连接查询,SQL中的连接查询详解

本文详细解释了SQL中的join查询,并通过示例代码详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

Join连接(SQL Join)

SQL Join就是利用不同数据表之间字段的相关性来组合多个数据表的检索。

SQL Join是一个抽象的临时数据表,结合多个数据表进行数据查询,原数据表中的记录和结构不会被Join查询改变。

这是一个客户数据表"客户":

身份证

名字

城市

地址

电话

一个

张毅

台北市

XX 100路

02-12345678

2

王二

新竹县

YY路200号

03-12345678

李三

高雄县

ZZ路300号

07-12345678

这是产品订单的数据表“订单”:

身份证号码

订单号

身份证

一个

2572

2

7375

7520

一个

1054

一个

1257

其中,C_Id是客户数据表中的主键字段。如何根据相关字段将这两个不同的数据表连接组合起来进行查询呢?这是下一个话题加入!

SQL的Join查询有哪几种类型?

内部联接:内部联接

左(外)连接:左外连接

右(外)联接:右外联接

完全(外部)联接:所有外部联接

交叉连接:交叉连接

自然连接:自然连接

INNER JOIN内部连接

内连接(INNER JOIN)是一个等连接,所以必须指定等连接的条件,查询结果只会返回满足连接条件的数据。

INNER JOIN语法(SQL INNER JOIN Syntax)

选择表_列1,表_列2

来自表名1

内部连接表_名称2

ON table _ name 1 . column _ name=table _ name 2 . column _ name;

或者

选择表_列1,表_列2

来自表名1

内部连接表_名称2

使用(列名);

INNER JOIN查询实例(Example)

现在我们要列出所有客户的订单号数据。我们可以进行内部连接查询:

选择客户。名字,命令。订单编号

来自客户

内部联接顺序

对顾客。C _ Id=订单。C _ Id

“XXX在哪里。由点连接的“YYY”表示XXX数据表中的YYY字段。

查询结果如下:

名字

订单编号

李三

2572

李三

7375

张毅

7520

张毅

1054

查询结果只会返回符合连接条件的数据!

LEFT JOIN左外部连接

左连接可用于建立左外连接。SQL语句LEFT JOIN的左数据表(table_name1)中的所有记录都将被添加到查询结果中,即使右数据表(table_name2)的连接字段中没有匹配值。

LEFT JOIN语法(SQL LEFT JOIN Syntax)

选择表_列1,表_列2

来自表名1

左连接表名2

ON table _ name 1 . column _ name=table _ name 2 . column _ name;

一些数据库的语法将被左外连接。

LEFT JOIN查询实例(Example)

现在我们想查询所有客户的数据及其订单状态。我们可以做一个左连接查询:

选择客户。名字,命令。订单编号

来自客户

左连接顺序

对顾客。C _ Id=订单。C _ Id

查询结果如下:

名字

订单编号

张毅

7520

张毅

1054

王二

李三

2572

李三

7375

Left将返回左侧数据表中的所有数据行,即使不满足连接条件,如果右侧数据表中没有匹配的数据值,则显示为“NULL”。

RIGHT JOIN右外部连接

与左连接相比,右连接可用于建立右外连接。SQL语句RIGHT JOIN的右数据表(table_name2)中的所有记录都将被添加到查询结果中,即使左数据表(table_name2)的连接字段中没有匹配值。

RIGHT JOIN语法(SQL RIGHT JOIN Syntax)

选择表_列1,表_列2

来自表名1

右连接表_名称2

ON table _ name 1 . column _ name=table _ name 2 . column _ name;

一些数据库的语法是右外连接。

RIGHT JOIN查询实例(Example)

现在我们想查询所有的订单和相应的客户信息。我们可以进行右连接查询:

选择客户。名字,命令。订单编号

来自客户

右连接订单

对顾客。C _ Id=订单。C _ Id

查询结果如下:

名字

订单编号

李三

2572

李三

7375

张毅

7520

张毅

1054

1257

RIGHT JOIN将返回右侧数据表中的所有数据行,即使不满足连接条件,如果左侧数据表中没有匹配的数据值,将显示为“NULL”。

FULL JOIN全部外部连接

全联接是左联接和右联接的并集,它将返回左、右数据表中的所有记录,不管它们是否满足连接条件。

FULL JOIN语法(SQL FULL JOIN Syntax)

选择表_列1,表_列2

来自表名1

完全连接表名2

ON table _ name 1 . column _ name=table _ name 2 . column _ name;

FULL JOIN查询实例(Example)

让我们做一个完整的连接查询:

选择客户。名字,命令。订单编号

来自客户

完全加入订单

对顾客。C _ Id=订单。C _ Id

查询结果如下:

名字

订单编号

李三

2572

李三

7375

张毅

7520

张毅

1054

1257

王二

MySQL数据库中没有全联接,但是可以用UNION模拟。

CROSS JOIN交叉连接

交集是两个数据表之间的笛卡尔积。当两个数据表组合时,不指定任何条件,即组合两个数据表中所有可能的排列。在下面的示例中,交叉连接的结果数据的行数是35=15,因此当存在WHERE、on和USING条件时,不建议使用该方法。

CROSS JOIN语法(SQL CROSS JOIN Syntax)

选择表_列1,表_列2

来自表名1

交叉连接table _ name2

或者

选择表_列1,表_列2

从表名1,表名2;

或者

选择表_列1,表_列2

来自表名1

JOIN table _ name2

FULL JOIN查询实例(Example)

这是一个客户数据表"客户":

身份证

名字

城市

地址

电话

一个

张毅

台北市

XX 100路

02-12345678

2

王二

新竹县

YY路200号

03-12345678

李三

高雄县

ZZ路300号

07-12345678

这是产品订单的数据表“订单”:

身份证号码

订单编号

身份证

一个

2572

2

7375

7520

一个

1054

一个

1257

让我们创建一个交叉连接查询:

选择客户。名字,命令。订单编号

来自客户

交叉连接订单;

查询结果如下:

名字

订单编号

张毅

2572

王二

2572

李三

2572

张毅

7375

王二

7375

李三

7375

张毅

7520

王二

7520

李三

7520

张毅

1054

王二

1054

李三

1054

张毅

1257

王二

1257

李三

1257

NATURAL JOIN自然连接

自然有自然联接,自然左联接,自然右联接。当两个表合并时,添加关键字NATURAL后,两个数据表之间同名的字段会自动合并。

NATURAL JOIN语法(SQL NATURAL JOIN Syntax)

选择表_列1,表_列2

来自表名1

自然连接table _ name2

NATURAL JOIN查询实例(Example)

这是一个客户数据表"客户":

身份证

名字

城市

地址

电话

一个

张毅

台北市

XX 100路

02-12345678

2

王二

新竹县

YY路200号

03-12345678

李三

高雄县

ZZ路300号

07-12345678

这是产品订单的数据表“订单”:

身份证号码

订单编号

身份证

一个

2572

2

7375

7520

一个

1054

一个

1257

现在我们要列出所有客户的订单号数据。我们可以创建一个自然的连接查询:

选择客户。名字,命令。订单编号

来自客户

自然加入订单;

查询结果如下:

名字

订单编号

李三

2572

李三

7375

张毅

7520

张毅

1054

你注意到了吗?结果等效于以下内部联接查询:

选择客户。名字,命令。订单编号

来自客户

内部联接顺序

对顾客。C _ Id=订单。C _ Id

就是这样。这里介绍的是关于SQL连接查询的这篇文章。希望对大家的学习有帮助,也希望大家多多支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: