iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL外连接语法是什么
  • 912
分享到

MySQL外连接语法是什么

2023-06-29 22:06:45 912人浏览 安东尼
摘要

这篇文章主要介绍了MySQL外连接语法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql外连接语法是什么文章都会有所收获,下面我们一起来看看吧。前言外连接可以分为左外连接和右外连接左外连接: 包含左

这篇文章主要介绍了MySQL外连接语法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql外连接语法是什么文章都会有所收获,下面我们一起来看看吧。

前言

外连接可以分为左外连接和右外连接

左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行

右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行

左连接

左外连接又称为左连接,使用 LEFT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件。

左连接的语法格式如下:

SELECT <字段名> FROM <表1> LEFT OUTER JOIN <表2>

语法说明如下:

字段名:需要查询的字段名称。

<表1><表2>:需要左连接的表名。

LEFT OUTER JOIN:左连接中可以省略 OUTER 关键字,只使用关键字 LEFT JOIN。

ON 子句:用来设置左连接的连接条件,不能省略。

上述语法中,“表1”为基表,“表2”为参考表。左连接查询时,可以查询出“表1”中的所有记录和“表2”中匹配连接条件的记录。如果“表1”的某行在“表2”中没有匹配行,那么在返回结果中,“表2”的字段值均为空值(NULL)。

例 1

在进行左连接查询之前,我们先查看 tb_course 和 tb_students_info 两张表中的数据。sql 语句和运行结果如下。

mysql> SELECT * FROM tb_course;+----+-------------+| id | course_name |+----+-------------+|  1 | Java        ||  2 | MySQL       ||  3 | python      ||  4 | Go          ||  5 | c++         ||  6 | html        |+----+-------------+6 rows in set (0.00 sec)mysql> SELECT * FROM tb_students_info;+----+--------+------+------+--------+-----------+| id | name   | age  | sex  | height | course_id |+----+--------+------+------+--------+-----------+|  1 | Dany   |   25 | 男   |    160 |         1 ||  2 | Green  |   23 | 男   |    158 |         2 ||  3 | Henry  |   23 | 女   |    185 |         1 ||  4 | Jane   |   22 | 男   |    162 |         3 ||  5 | Jim    |   24 | 女   |    175 |         2 ||  6 | John   |   21 | 女   |    172 |         4 ||  7 | Lily   |   22 | 男   |    165 |         4 ||  8 | Susan  |   23 | 男   |    170 |         5 ||  9 | Thomas |   22 | 女   |    178 |         5 || 10 | Tom    |   23 | 女   |    165 |         5 || 11 | LiMing |   22 | 男   |    180 |         7 |+----+--------+------+------+--------+-----------+11 rows in set (0.00 sec)

在 tb_students_info 表和 tb_course 表中查询所有学生姓名和相对应的课程名称,包括没有课程的学生,SQL 语句和运行结果如下。

mysql> SELECT s.name,c.course_name FROM tb_students_info s LEFT OUTER JOIN tb_course c    -> ON s.`course_id`=c.`id`;+--------+-------------+| name   | course_name |+--------+-------------+| Dany   | Java        || Henry  | Java        || NULL   | Java        || Green  | MySQL       || Jim    | MySQL       || Jane   | Python      || John   | Go          || Lily   | Go          || Susan  | C++         || Thomas | C++         || Tom    | C++         || LiMing | NULL        |+--------+-------------+12 rows in set (0.00 sec)

可以看到,运行结果显示了 12 条记录,name 为 LiMing 的学生目前没有课程,因为对应的 tb_course 表中没有该学生的课程信息,所以该条记录只取出了 tb_students_info 表中相应的值,而从 tb_course 表中取出的值为 NULL。

右连接

右外连接又称为右连接,右连接是左连接的反向连接。使用 RIGHT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件。

语法说明如下:

字段名:需要查询的字段名称。

<表1><表2>:需要右连接的表名。

RIGHT OUTER JOIN:右连接中可以省略 OUTER 关键字,只使用关键字 RIGHT JOIN。

ON 子句:用来设置右连接的连接条件,不能省略。

与左连接相反,右连接以“表2”为基表,“表1”为参考表。右连接查询时,可以查询出“表2”中的所有记录和“表1”中匹配连接条件的记录。如果“表2”的某行在“表1”中没有匹配行,那么在返回结果中,“表1”的字段值均为空值(NULL)。

例2

在 tb_students_info 表和 tb_course 表中查询所有课程,包括没有学生的课程,SQL 语句和运行结果如下。

mysql> SELECT s.name,c.course_name FROM tb_students_info s RIGHT OUTER JOIN tb_course c    -> ON s.`course_id`=c.`id`;+--------+-------------+| name   | course_name |+--------+-------------+| Dany   | Java        || Green  | MySQL       || Henry  | Java        || Jane   | Python      || Jim    | MySQL       || John   | Go          || Lily   | Go          || Susan  | C++         || Thomas | C++         || Tom    | C++         || NULL   | HTML        |+--------+-------------+11 rows in set (0.00 sec)

可以看到,结果显示了 11 条记录,名称为 HTML 的课程目前没有学生,因为对应的 tb_students_info 表中并没有该学生的信息,所以该条记录只取出了 tb_course 表中相应的值,而从 tb_students_info 表中取出的值为 NULL。

多个表左/右连接时,在 ON 子句后连续使用 LEFT/RIGHT OUTER JOIN 或 LEFT/RIGHT JOIN 即可。

使用外连接查询时,一定要分清需要查询的结果,是需要显示左表的全部记录还是右表的全部记录,然后选择相应的左连接和右连接。

作业记录

先建立 users表

MySQL外连接语法是什么

orders表

MySQL外连接语法是什么

-- 查询每个用户的订单购买数量,列出uID,uName,buyNumSELECT s.uid,s.uName,buyNumFROM users s LEFT JOIN orders t        ON s.uID=t.uID;

MySQL外连接语法是什么

--查询每个用户的订单数,列出uID,uName,ordernum(订单数)SELECT s.uid,s.uName,count(t.uid) as ordernumFROM orders t RIGHT JOIN users sON s.uid=t.uidGROUP BY s.uid;-- 王麻子有两次订单数 其余都是一次

MySQL外连接语法是什么

关于“MySQL外连接语法是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“MySQL外连接语法是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL外连接语法是什么

本文链接: https://www.lsjlt.com/news/326657.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL外连接语法是什么
    这篇文章主要介绍了MySQL外连接语法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL外连接语法是什么文章都会有所收获,下面我们一起来看看吧。前言外连接可以分为左外连接和右外连接左外连接: 包含左...
    99+
    2023-06-29
  • 什么是mysql全外连接
    下文给大家带来关于什么是mysql全外连接,感兴趣的话就一起来看看这篇文章吧,相信看完什么是mysql全外连接对大家多少有点帮助吧。#全外连接:主从表的交集+主表有从表没有+从表有主表没有,但不分主从表SE...
    99+
    2022-10-18
  • sql语句中左外连接、右外连接、内连接是什么
    小编给大家分享一下sql语句中左外连接、右外连接、内连接是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!以下的代码演示均基于name表和country表展开。name表idname1西...
    99+
    2022-10-18
  • MySQL内连接、外连接及SQL JOINS的实现方法是什么
    这篇文章主要讲解了“MySQL内连接、外连接及SQL JOINS的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL内连接、外连接及SQL JOINS...
    99+
    2023-07-05
  • MySQL案例分析讲解外连接语法
    目录前言左连接例 1右连接例2作业记录前言 外连接可以分为左外连接和右外连接 左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行 右外连...
    99+
    2022-11-13
  • lyt经典版MySQL基础——进阶6:连接查询-sql99语法-内连接、外连接、交叉连接
    1 #二、sql99语法 2 21 22 #(一)内连接 23 42 43 #1.等值连接 44 #案例1:查询员工名、部门名 45 SELECT last_name,department_name ...
    99+
    2015-03-20
    lyt经典版MySQL基础——进阶6:连接查询-sql99语法-内连接 外连接 交叉连接 数据库入门 数据库基础教程 数据库 mysql
  • django连接mysql的方法是什么
    连接MySQL数据库的方法可以通过以下步骤实现:1. 安装MySQL驱动:在Django项目的虚拟环境中安装MySQL驱动,如`my...
    99+
    2023-10-11
    django mysql
  • Navicat连接MySQL的方法是什么
    这篇文章主要介绍“Navicat连接MySQL的方法是什么”,在日常操作中,相信很多人在Navicat连接MySQL的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-18
  • IDEA连接mysql的方法是什么
    本文小编为大家详细介绍“IDEA连接mysql的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“IDEA连接mysql的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。任务管理器打开mysql服...
    99+
    2023-07-05
  • go连接mysql的方法是什么
    今天小编给大家分享一下go连接mysql的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、mysql建表创建us...
    99+
    2023-07-05
  • mysql中外连接与内连接查询有什么区别
    mysql中外连接与内连接查询有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。左外连接左外连接的结果集包含左表的所有记录和右表中满足连接条件的记录,结果...
    99+
    2023-06-15
  • mysql sql99语法 内连接非等值连接
    #案例:查询员工的工资级别 SELECT salary,grade_level FROM employees e JOIN job_grades g ON e.`sa...
    99+
    2022-10-18
  • mysql中外连接怎么写
    小编给大家分享一下mysql中外连接怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中外连接可以分为左外连接和右外...
    99+
    2022-10-18
  • MySQL连接查询的方法是什么
    这篇文章主要介绍“MySQL连接查询的方法是什么”,在日常操作中,相信很多人在MySQL连接查询的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL连接查询的...
    99+
    2022-10-19
  • PHP与MySQL连接的方法是什么
    本文小编为大家详细介绍“PHP与MySQL连接的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP与MySQL连接的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、MySQL扩展PHP的...
    99+
    2023-07-04
  • 局域网内连接MySQL的语句是什么
    本篇内容介绍了“局域网内连接MySQL的语句是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们都知道...
    99+
    2022-10-18
  • mysql连接数是什么
    mysql连接数是指在一定时间内可以同时连接到MySQL服务器的客户端数量。设置连接数需要考虑以下几个因素:1、硬件资源,如果服务器的硬件资源较低,连接数需要相应调低;2、应用程序需求,对于并发请求数较少的应用程序,较低的连接数可能足够;3...
    99+
    2023-07-18
  • MySQL内连接查询的方法是什么
    本篇内容介绍了“MySQL内连接查询的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!内连接也叫连接,是最早的一种连接。还可以被称为...
    99+
    2023-06-27
  • mysql外连接查询怎么用
    本篇内容主要讲解“mysql外连接查询怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql外连接查询怎么用”吧!说明外连接不仅返回符合连接和查询条件的数据行,还返回一些不符合条件的行。...
    99+
    2023-06-20
  • mysql 中怎么实现外连接
    这篇文章将为大家详细讲解有关mysql 中怎么实现外连接,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先my sql 不支持oracle的(+) ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作