mysql的内连接和外连接小例子

转载 2016年08月29日 12:05:37

转载自:http://blog.csdn.net/zlxdream815/article/details/8208509

解释名词:

1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现

2、外连接: 包括

(1)左外连接(左边的表不加限制)

(2)右外连接(右边的表不加限制)

(3)全外连接(左右两表都不加限制)

3、创建student、score表如下

                                           (student表)

 

 


                                     (score表)

A:内连接sql
         select st.student_name,sc.object,sc.score,st.student_class
         from student st ,score sc where st.student_id=sc.student_id

        执行结果:

这个大家一般都司空见惯了。所以没什么可讲。内连接只是显示满足where后面的条件(st.student_id=sc.student_id)

B:左外连接sql

        select st.student_name,sc.object,sc.score,st.student_class
        from student st  left join score sc on st.student_id=sc.student_id
        执行结果:

左外连接是以左边的表(student st  left)student为主表,score为从表。在查询结果中全部展示主表的信息。
也就出现上图中Tom这个信息不全。因为从表中没有和Tom相匹配的信息,因此才会出现Null值填充。

C:右外连接

      select st.student_name,sc.object,sc.score,st.student_class
      from student st right  join score sc on st.student_id=sc.student_id

      执行结果:

   

   右连接刚好和做连接想法。因此就会出现上图的情况。

 

D:全外连接sql

    1. select st.student_name,sc.object,sc.score,st.student_class
     from student st  left join score sc on sc.student_id=st.student_id
    union
    select st.student_name,sc.object,sc.score,st.student_class
    from student st  RIGHT join score sc on sc.student_id=st.student_id

(本人使用mysql数据库,因为mysql暂时还不支持全外连接full的功能,但是可以用多个left来实现)

  2.select st.student_name,sc.object,sc.score,st.student_class
     from student st  full  join score sc on sc.student_id=st.student_id(此语句针对一般数据库)

MySQL 外连接、内连接与⾃连接的区别

内连接  连接的数据表相对应的匹配字段完全相等的连接。连接关键字是 inner join 外连接 分为左外连接与右外连接、全连接。 左连接的结果集包括指定的左表全部数据与匹配的右表数据,右表中...
  • ynw1990
  • ynw1990
  • 2016年09月08日 01:32
  • 2896

MySQL连接查询 内连接和外连接的区别

MySQL 连接查询 1.使用连接查询的场景 将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接); 进行数据的拼接(两张表的内容显示在一个结果表中 使用连接查询) ...
  • sunrainamazing
  • sunrainamazing
  • 2017年04月03日 21:59
  • 1241

数据库-内连接与外连接的区别(举例说明)

内连接,也被称为自然连接,只有两个表相匹配的行才能在结果集中出现。返回的结果集选取了两个表中所有相匹配的数据,舍弃了不匹配的数据。由于内连接是从结果表中删除与其他连接表中没有匹配的所有行,所以内连接可...
  • Dove_Knowledge
  • Dove_Knowledge
  • 2017年05月08日 15:58
  • 1418

深入理解MySQL的外连接、内连接、交叉连接

1、内联接(典型的联接运算,使用像 =  或 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。    ...
  • GarfieldEr007
  • GarfieldEr007
  • 2017年04月06日 22:41
  • 2661

【mysql】mysql的内连接和外连接小例子

解释名词: 1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2、外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3...
  • zlxdream815
  • zlxdream815
  • 2012年11月21日 16:38
  • 24033

数据库的内连接、外连接(左外连接、右外连接、全外连接)以及交叉连接

SQL数据库的连接:内连接、和外连接(左外连接、右外连接、和全连接) 本次实验在MySQL数据库中进行,数据库初始表如下: 一、内连接:结果仅包含符合连接条件的两表中的行。如下: 二、...
  • u012050154
  • u012050154
  • 2016年09月10日 22:30
  • 4641

MySQL内连接和外连接

MySQL内连接和外连接 MySQL的连接种类分为:内连接:只连接匹配的行 外连接: 左外连接:连接中左边的表不加限制,在结果集中保留连接表达式左表中非匹配记录。 右外连接:连接中右...
  • ysp_0607
  • ysp_0607
  • 2016年08月20日 20:01
  • 189

外连接与内连接有什么区别?

(一)内连接   内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的 列值。内连接分三种:   1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结 果中...
  • zhaow7
  • zhaow7
  • 2007年03月11日 14:46
  • 19040

MySQL学习笔记(二):内连接和外连接实现多表查询

注:内连接用的比较多 select a.studentno, a.studentname, b.classname from students a, classes b where ...
  • Jalon2015
  • Jalon2015
  • 2015年07月02日 11:25
  • 1331

sql中内连接与外连接的区别

你是要弄清楚区别在什么地方还是单纯想要文字说明 文字说明的楼上说了一大堆了,不说了。 弄个例题,直观一点。两个表: --表stu id name 1, Jack 2, Tom 3, K...
  • u012561308
  • u012561308
  • 2015年07月08日 09:48
  • 2029
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql的内连接和外连接小例子
举报原因:
原因补充:

(最多只允许输入30个字)