黑马程序员技术交流社区

标题: 【济南中心】PHP课程同步笔记day18:数据库操作语言-连表查询 [打印本页]

作者: 小鲁哥哥    时间: 2017-6-30 13:37
标题: 【济南中心】PHP课程同步笔记day18:数据库操作语言-连表查询
本帖最后由 小鲁哥哥 于 2017-6-30 13:39 编辑

【济南中心】PHP课程同步笔记day18:数据库操作语言-连表查询
连接(join)查询连接查询的概念
       连接查询,就是将两个或更多的表,以某种方式“连接起来”,成为一个整体(表),并作为数据源以供数据查询使用;
连接的方式,大致可以这样一句话描述:
       将一个表(A)的每一行,跟另一个表(B)的每一行,两两之间,以“横向对接”(并列)的方式,连接起来,成为一个更长的行,这样得到的所有行所构成的结果数据,就是连接结果(表);
假设:
       A表有m1行,n1列;
       B表有m2行,n2列;
则连接后,结果是:
       总共有n1+n2列,m1*m2行;
   
   
连接之后:
连接查询的基本语法形式:
       from  表1  【连接方式】 join  表2  【on  连接条件】
或者还可以连接更多,类似这样:
       from  表1  
       【连接方式】 join  表2  【on  连接条件】
       【连接方式】 join  表3  【on  连接条件】
       。。。。。
连接主要分为:

交叉连接:
       形式:
              from  表1  【cross】  join  表2          #即交叉连接是不设定连接条件
       含义与说明:
              1,其实就是将两个表以连接的基本概念的形式连接起来,不设定任何条件的结果数据;
              2,交叉连接又叫做“笛卡尔积”;
              3,在实际应用中,交叉连接的结果数据,几乎没有实用价值!
内连接:
       形式:
              from  表1  【inner】  join  表2  on 表1.某字段 = 表2.某字段
       说明:
              1,inner关键字可以省略,但不推荐省略;
              2,on条件的设定是必须的,表示其中一个表上的字段值,跟另一个表上的某个字段的值相等;
              3,其含义是:在交叉连接的结果数据基础上,只取出那些满足连接条件的行的数据!
              4,内连接的结果,通常就是各种应用中,找出表跟表之间的有意义有关联的数据的最常用形式;
左(外)连接:
       形式:
              from  表1  left 【outer】  join  表2  on 表1.某字段 = 表2.某字段
       说明:
              1,含义是:将内连接的连接结果数据,再加上,左边表中,那些“不能满足连接条件”的数据的结果,其中那些不能满足条件的左边表的数据行的“右边部分”,用null填充满。
右(外)连接:
       形式:
              from  表1  right 【outer】  join  表2  on 表1.某字段 = 表2.某字段
       说明:
              1,含义是:将内连接的连接结果数据,再加上,右边表中,那些“不能满足连接条件”的数据的结果,其中那些不能满足条件的右边表的数据行的“左边部分”,用null填充满。
全(外)连接:
       形式:
              from  表1  full 【outer】  join  表2  on 表1.某字段 = 表2.某字段
       说明:
              1,含义是:
                     将内连接的连接结果数据;
                     再加上,左边表中,那些“不能满足连接条件”的数据的结果;
                     再加上,右边表中,那些“不能满足连接条件”的数据的结果。
                     其中那些不能满足条件的左边表的数据行的“右边部分”,用null填充满
                     其中那些不能满足条件的右边表的数据行的“左边部分”,用null填充满。
              2,I am  sorry, mysql目前不支持该语法!



作者: yu44303    时间: 2017-7-9 20:07
66666666666666666666666
作者: willbe    时间: 2017-11-16 14:40





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2