zoukankan      html  css  js  c++  java
  • 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使用,谢谢!

      

      

      

        

             

          

            

      

  • 相关阅读:
    解决listview在添加项闪烁的问题
    对于水晶报表,我欲哭无泪
    遗憾4年的.net学习和工作
    (转)字符编码笔记:ASCII,Unicode和UTF8
    关于将桌面扩展到监视器的问题 extended my windows desktop onto this monitor
    在win下mb_convert_encoding未定义的问题最终解决方案
    插入数据后, 获取该记录id的方法
    Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.
    感冒怎么办,少听音乐防止感冒 生活至上,美容至尚!
    2招按摩轻松解除黑眼圈 生活至上,美容至尚!
  • 原文地址:https://www.cnblogs.com/mmmmyblog/p/8043280.html
Copyright © 2011-2022 走看看