• Mysql----关于内联,左联,右联,全联的使用和理解


    准备工作:新建两张表

         表一:student

            

           填充内容:编号,姓名,班级

             

          表二:school

            

            填充内容:编号,班级,专业

             

          这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联,右联,全联的实验

    一, 内联接.

        关键字:INNER JOIN

          语法:SELECT * from 表一  INNER JOIN 表二 on 表一.属性=表二.属性

          使用上面的语法来试一下:SELECT * from student  INNER JOIN school on student.class=school.class

          输出结果:

            

         这条sql语句用了内连接的关键字,并将两表中的class属性进行了链接,得出了以上的结果,发现结果的得出是有后面具体链接属性来控制的,我下面将数据修改看下得到什么结果

        修改数据:school,student没有更改

            

         继续执行上面的语句:

          

         现在得出的数据结果可以看出通过内联接,只有后面属性值对应时,才会显示出两表对应的数据,如果没有对应的属性值,其他数据就不会被显示,也就是student与school内联接,只会取出class相同的字段,而不会取出其他数据!

    二, 左联接.

      关键字:LEFT JOIN

       语法:SELECT * From 表一 LEFT JOIN 表二 ON 表一.属性=表二.属性

       测试:SELECT * from student LEFT JOIN school on student.class=school.class

       结果:

         

       可以看出左联接就是以左表为主,会显示出左表的全部数据,而与其连接的表会根据字段的匹配显示对应数据,也就是说首先取出student表中所有数据,然后再加上与student与school表class字段匹配的数据!

    三,右联接.

      关键字:RIGHT JOIN

       语法:SELECT * FROM 表一 RIGHT JOIN 表二 ON 表一.属性=表二.属性

       测试:SELECT * FROM student RIGHT JOIN school ON student.class=school.class

       结果

           

        可以看出,右链接与左联接雷同,会取出school中的全部数据,再取出与其class字段相匹配的数据,关于右链接不多解释!

    四,全联接.

      MySQL不支持完全链接,在这里可以通过 UNION ALL 将左联和右联的结果合并实现全联接

      测试:SELECT * from student LEFT JOIN school on student.class=school.class

         UNION ALL 

         SELECT * FROM student RIGHT JOIN school ON student.class=school.class

      结果:

        

        也就是说完全链接就是左联接和右连接的合并,两边都会通过字段匹配一遍获取数据,通过union all将结果和合并,这就是完全链接状态!

        关于建表,和sql语句已经在随笔中写出了,实验的话直接copy使用,谢谢!

      

      

      

        

             

          

            

      

  • 相关阅读:
    理解java的三大特性之封装
    Spring_事务-注解代码
    Spring_使用 NamedParameterJdbcTemplate
    C#多线程简单例子讲解
    C#多线程编程
    ASP.NET MVC 的URL路由介绍
    NHibernate二级缓存(第十一篇)
    NHibernate之配置文件属性说明
    NHibernate之映射文件配置说明
    NHibernate 延迟加载与立即加载 (第七篇)
  • 原文地址:https://www.cnblogs.com/mmmmyblog/p/8043280.html
Copyright © 2020-2023  润新知