• MySQL join和索引


    目录

     一、join

    二、on

    三、left join和right join

    left join

    right join 

    四、MySQL Workbench 图形化软件


     一、join

    join具有连接作用。当两个或以上的表有关系时,就可以使用jion来连接这些相关的表处理或分析数据。

    join的相关连接机制如下:

    会发现jion后的列名是两个表加起来后的结果(可能会出现相同的情况,就像上面例子中一样)。S1 jion S2 后,S1中的列会与S2中的列一一合并一次最后组成新的表。所以上面的例子中最后生成的新表有3 * 2 = 6个列。

    如果这时候对这个新生成的表不满意,想要相对应的选项合在一起,我们可以选择使用on。

    二、on

    on用来添加约束。例如在使用S1 join S2合并表的时,我们想要让S1中的l1列与S2中的l2列相等匹配时,我们可以将语句改成:S1 join S2 on S1.l1 = S2.l2

    在列名不重复的前提下,我们也可以直接不用.操作符。

    还是上面那个例子:

    可以看到合并时不再像之前那样“傻瓜式”合并了,而是将classid和id相等的列合并成一条而形成的新的表。 

    三、left join和right join

    两个语句是同一个性质,和join相比,left / right join的区别主要在于left / right  join必须要有on

    • left join

    left join语句会检查左边表的数据是否都包含在新的表中,如果缺少就用NULL填补上:

    要注意一点:对于left join来说左右表的位置很重要。在join中可以交换位置,最终生成的新表都是一样的;但是使用left join的话,交换左右表的位置最终合成的新表是完全不一样的。比如上面这个例子,如果将stu和class的位置交换:

     所以写的时候一定要注意。

    • right join 

    和left join同个性质相反:

    A right join B = B left join A --> 都是以B为基准的

    四、MySQL Workbench 图形化软件

    偶然发现的,下载之后连接上自己的库操作操作发现还挺方便的,可以在里面创建管理你的数据库。主要是可以图形化,设计的时候宏观看起来比较方便。但归根结底还是多用终端操作为好,这可以当个辅助。

    MySQL Workbench 使用教程 - 如何使用 Workbench 操作 MySQL / MariaDB 数据库中文指南 - 卡拉云说起终端操作,今天还装了一个插件可以自动补全sql语句,巨巨巨巨巨方便啊(咆哮,昨天还在为SQL语句总输错而烦恼。

    叫mycli,安装后使用时直接命令行打开相关库操作即可:

    还能给命令和表名列名标绿色,看起来舒服多了,我爱死。 

    看这可爱的自动补全
  • 相关阅读:
    python类内置隐式方法全解
    【Nacos】服务发现数据模型
    Springboot vue旅游资讯网站管理系统
    深入理解Java虚拟机
    基本的TCP套接字编程(详解)
    手把手带你学NLP
    部署docker仓库harbor
    问题 F: 逆序排列 两种方法
    07.自定义指令传参小窍门
    震惊!Cell:人肠道中鉴定出14万种病毒
  • 原文地址:https://blog.csdn.net/Yan__Ran/article/details/125893125