数据库——自然连接、内连接、外连接(左外连接、右外连接、全外连接)、交叉连接「建议收藏」

数据库——自然连接、内连接、外连接(左外连接、右外连接、全外连接)、交叉连接「建议收藏」1.自然连接(*naturaljoin)*自然连接不用指定连接列,也不能使用ON语句,它默认比较两张表里相同的列,`SELECT*FROMstudentNATURALJOINscore;`显示结果如下:2.内连接(innerjoin)和自然连接区别之处在于内连接可以自定义两张表的不同列字段。内连接有两种形式:显式…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. 自然连接(*natural join)*
学生表这里写图片描述
自然连接不用指定连接列,也不能使用ON语句,它默认比较两张表里相同的列,

 `SELECT*FROM student NATURAL JOIN score;`

显示结果如下:
这里写图片描述
2. 内连接(inner join
和自然连接区别之处在于内连接可以自定义两张表的不同列字段。
内连接有两种形式:显式和隐式。
例:以下语句执行结果相同。
这里写图片描述

①隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积。

SELECT student.name,score.codeFROM student,score WHERE score.code=student.code;

② 显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。

SELECT student.name,score.codeFROM student INNER JOIN score ON score.code=student.code;

3.外连接(outer join
①左外连接(left outer join):返回指定左表的全部行+右表对应的行,如果左表中数据在右表中没有与其相匹配的行,则在查询结果集中显示为空值。
例:SELECT student.name,score.codeFROM student LEFT JOIN score ON score.code=student.code;
查询结果如下:
这里写图片描述
②右外连接(right outer join):与左外连接类似,是左外连接的反向连接。

SELECT student.name,score.codeFROM student RIGHT JOIN score ON score.code=student.code;
这里写图片描述
②全外连接(full outer join):把左右两表进行自然连接,左表在右表没有的显示NULL,右表在左表没有的显示NULL。(MYSQL不支持全外连接,适用于Oracle和DB2。)

在MySQL中,可通过求左外连接与右外连接的合集来实现全外连接。
例:

SELECT student.name,score.codeFROM student LEFT JOIN score ON
score.
code=student.codeUNION SELECT student.name,score.code
FROM student RIGHT JOIN score ON score.
code=student.code;

4.交叉连接(cross join:相当与笛卡尔积,左表和右表组合。
SELECT student.name,score.code FROM student CROSS JOIN score ON score.code=student.code;
这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178803.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • laravel throttle 中间件「建议收藏」

    laravel throttle 中间件

    2022年2月15日
    52
  • 前端组件库_前端组件库有什么好处

    前端组件库_前端组件库有什么好处0.前端自动化(Workflow)前端构建工具Yeoman–asetoftoolsforautomatingdevelopmentworkflowgulp–Thestr

    2022年8月3日
    7
  • tensorflow(gpu) win10安装 1060显卡驱动[通俗易懂]

    tensorflow(gpu) win10安装 1060显卡驱动[通俗易懂]CUDA9.0+cuDNNv7+WIN10+1060显卡一.驱动文件下载1.上tensorflow官网。查看本机硬件和系统支持的tensorflow版本,以及对应的cuda和cuddnn版本。https://www.tensorflow.org/install/install_windows?hl=zh-cn2.百度进CUDA网站。查找相应的CUDA驱动。打开默认下载是9.2版本,如下…

    2022年5月9日
    209
  • MySQL 实现行转列SQL

    MySQL 实现行转列SQL概述好久没写SQL语句,今天看到问答中的一个问题,拿来研究一下。问题链接:关于Mysql的分级输出问题情景简介学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列。数据表里面数据如下图,使用姓名+课程作为联合主键(有些需求可能不需要联合主键)。本文以MySQL为基础,其他数据库会有些许语法不同。数据库表数据:处理后的结果(行转列):方法一:这里可以使用Max,也可…

    2022年6月10日
    37
  • 一个中文字符对应几个字节?

    一个中文字符对应几个字节?这个和字符编码有关。所谓字符编码,就是规定了如何将字符串转成byte[]。同一个汉字,在不同的字符编码下,得到的结果也不同。例如,”中国”GBK编码:D6D0B9FAUTF-8编码:E4B8ADE59BBD以GBK编码时,一个汉字得到2个字节。以UTF-8编码时,一个汉字得到2~3个字节。…

    2022年6月26日
    25
  • 连接共享打印机显示0x000bcb_0x00004005打印机连接

    连接共享打印机显示0x000bcb_0x00004005打印机连接以win7为例,在局域网中,安装共享打印机时,会出现安装失败,打开详细信息显示为0x000000bcb,重新安装也不行,具体操作如下:连接共享打印机出现0x000000bcb问题的解决方法1打开控制面板,点击卸载程序,如下:2点击”查看已安装的更新“如下:3点击右上角“搜索已安装更新”,输入:”KB4022722“,点击搜索,会在下面的找到”KB4022722“的更新,点击卸载就…

    2022年10月7日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号