专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

innerjoin怎么用,一文讲懂sql内连接innerjoin

来源:小易整编  作者:小易  发布时间:2023-03-06 11:59
摘要:innerjoin怎么用,一文讲懂sql内连接innerjoin前面的课程我们主要讲了SQL的基本语法,只涉及到单张表的增删改查。但在实际业务中,往往需要多张表联合查询,这个就是我们接下来几节课的主要内容。1、JOIN连接多张数据表联合查询...

innerjoin怎么用,一文讲懂sql内连接innerjoin

前面的课程我们主要讲了SQL的基本语法,只涉及到单张表的增删改查。

但在实际业务中,往往需要多张表联合查询,这个就是我们接下来几节课的主要内容。

1、JOIN连接

多张数据表联合查询,需要用到JOIN连接,JOIN连接分为好几种,先来简单介绍一下,看不懂也没关系,后面课程我们会举实例介绍的。

INNER JOIN:内连接,也可以只写JOIN。只有进行连接的两个表中,都存在与连接标准相匹配的数据才会被保留下来,相当于两个表的交集。如果前后连接同一张表,也叫自连接。

LEFT JOIN: 左连接,也称左外连接。操作符左边表中符合 WHERE 子句的所有记录将会被返回,操作符右边表中如果没有符合 ON 后面连接条件的记录时,那么从右边表指定选择的列的值将会是 NULL。

RIGHT JOIN: 右连接,也称右外连接。会返回右边表所有符合 WHERE 语句的记录。左表中匹配不上的宇段值用 NULL 代替。

FULL JOIN:全连接,返回所有表中符合 WHERE 语句条件的所有记录。如果任一表的指定宇段没有符合条件的值的话,那么就使用 NULL 替代。

innerjoin怎么用,一文讲懂sql内连接innerjoin

2、INNER JOIN 内连接

JOIN 语句就是告诉SQL,我们应该将哪几张表通过哪几个列连接起来。INNER JOIN 可以省略掉INNER直接写成JOIN,是一个意思。

基本语法:

SELECT

实例:将Students学生表和Teachers教师表通过教师编号Tid连接起来。

innerjoin怎么用,一文讲懂sql内连接innerjoin

innerjoin怎么用,一文讲懂sql内连接innerjoin

SELECT *FROM Students AS sJOIN Teachers AS tON s.Tid = t.Tid

innerjoin怎么用,一文讲懂sql内连接innerjoin

查看输出的结果,我们可以发现,FROM后面的Students表会作为基础表放在前面,后面在根据关联列Tid,拼接上JOIN后面的Teachers表。

如果两个表调换一下位置,会输出什么样的结果呢?我们来看看。

SELECT *FROM Teachers AS tJOIN Students AS sON t.Tid = s.Tid

innerjoin怎么用,一文讲懂sql内连接innerjoin

可以看到,Teachers表会作为基础表放在前面。

但是Teachers表中,老师有张三、李四、王五 3人,现在只输出了张三、李四 2人,这是因为王五没有对应的学生。

内连接,只有输出两个表中相互匹配的数据,相当于两个表的交集。

JOIN…ON 后面也可以跟多个连接条件,条件之间用AND连接就可以了。

3、多表内连接

JOIN不仅仅可以连接两个表,3个表,4个表都可以,真实业务中,连接十几个表也是常有的事。

基本语法:

SELECT

实例:Students学生表同时连接Teachers教师表和Courses课程表,通过教师字段Tid连接。

innerjoin怎么用,一文讲懂sql内连接innerjoin

SELECT *FROM Students AS sJOIN Teachers AS tON s.Tid = t.TidJOIN Courses AS cON s.Tid = c.Tid

innerjoin怎么用,一文讲懂sql内连接innerjoin

4、USING关键字

当JOIN…ON后面作为合并条件的列名,在两个表中相同时,可以用USING (……, ……) 取代 ON …… AND ……。

如果列名不一样,不能用USING关键字简化。这个知识点大家了解就好了,看到USING能知道是什么意思。

比如:

JOIN Teachers AS tON s.Tid = t.Tid AND s.Sname = t.Sname

可以简化成:

JOIN Teachers AS tUSING (Tid,Sname)

5、自连接

表格不仅可以跟其他表进行连接,也可以跟自己连接,就叫自连接。

我们举个非常经典的实例,作为我们的作业。

这个题是大厂经常出的连续登录问题,其中一种解法就是用的自连接。

作业:编写一个 SQL 查询,查找所有至少连续出现三次的数字,表名为:Num,表结构如下:

innerjoin怎么用,一文讲懂sql内连接innerjoin

作业解析:通过id+1的方式查找id下一次出现的数字,通过id+2的方式查找下下次出现的数字,只要下一次及下下次出现的数字和当前出现的数字相同,即为满足连续出现至少三次的数字。

SELECT DISTINCT a.numFROM Num aJOIN Num bON a.id+1 = b.idJOIN Num cON a.id+2 = c.idwhere a.num = b.numAND a.num = c.num

innerjoin怎么用,一文讲懂sql内连接innerjoin



本文地址:百科问答频道 https://www.neebe.cn/wenda/916539.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • SQL创建视图,查看视图

    SQL创建视图,查看视图

    视图为数据的表示提供了更为便捷的方式,选择性的对数据进行显示,更方便了对数据的管理创建视图01首先打开对象资源管理器展开数据库节点右击视图02选择新建视图...

  • SQLAlchemy是什么

    SQLAlchemy是什么

    SQLAlchemy是Python编程语言下的一款开源软件。提供SQL工具包及对象关系映射工具,使用MIT许可证发行。采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。SQLAlchemy是Pyt...

  • alisql配置安装,alisql安装教程

    alisql配置安装,alisql安装教程

    alisql配置安装,alisql安装教程AliSQL编译安装#查看是否存在MySQL软件包rpm-qa|grepmysql#安装依赖包yum-yinstallgccgcc-c++ncurses-develperlcmakebisonunz...

  • 外键约束怎么写,MySql外键约束教程

    外键约束怎么写,MySql外键约束教程

    外键约束怎么写,MySql外键约束教程学习目标掌握外键约束的添加方法知道外键约束字段的添加及删除规则1.多表查询概述l实际开发中,一个项目通常需要很多张表才能完成。l例如:一个商城项目就需要分类表(category)、商品表(product...

  • 如何防止sql注入,防止sql注入的方法有哪些

    如何防止sql注入,防止sql注入的方法有哪些

    如何防止sql注入,防止sql注入的方法有哪些什么是SQL注入?SQLi是一种基于Web的应用程序攻击,攻击者可以在网站的数据库中运行恶意查询。SQL是一种用于执行恶意SQL语句的代码注入技术。例如,如果你想登录网站,但忘记了用户名和密码,...

  • 数据库设计规范,mysql数据库设计规范

    数据库设计规范,mysql数据库设计规范

    数据库设计规范,mysql数据库设计规范规范背景与目的MySQL数据库与Oracle、SQLServer等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等...

  • 数据库索引怎么用,MySQL数据库索引用法详细介绍

    数据库索引怎么用,MySQL数据库索引用法详细介绍

    数据库索引怎么用,MySQL数据库索引用法详细介绍关于MySQL索引,对于研发同学,尤其是后端研发同学,一定不会陌生。我们工作中经常会用到MySQL数据库,就肯定会经常用到性能优化方面的设计和考量,常常用涉及到MySQL索引。但是关于MyS...

  • mysql触发器怎么用,mysql触发器作用及使用案例

    mysql触发器怎么用,mysql触发器作用及使用案例

    mysql触发器怎么用,mysql触发器作用及使用案例1.什么是触发器 触发器(trigger):监视某种情况,并进行某种操作,它的执行并不是程序调用,也不是手工启动,而是由事件来触发,例如:对一张表进行操作(插入,更新,删除)时,就会触...

  • 周排行
  • 月排行
  • 年排行

精彩推荐