来自 新葡亰数据库 2019-11-06 19:36 的文章
当前位置: 澳门新葡亰app > 新葡亰数据库 > 正文

总是是关周全据库模型的要紧特色

在询问三个表时,大家平日会用“连接查询”。连接是关周详据库模型的要害特点,也是它有别于于任何项目数据库管理连串的二个标记。

  

什么样是三番五次查询呢?

  

    概念:依据多个表或几个表的列之间的涉及,从这么些表中查询数据。

    目标:达成多少个表查询操作。

 

理解了三番三回查询的定义之后,何时用一连查询呢?

     

    日常是用作关联两张或两张以上的数量表时用的。看起来有一点抽象,大家比方,做两张表:学子表(T_student卡塔 尔(英语:State of Qatar)和班级表(T_class)。

 

                                            T_student                                                                     T_class

       图片 1        图片 2

 

接二连三标准语法格式:

    

    SQL-92规范所定义的FROM子句的连天语法格式为:

    FROM  join_table join_type join_table[ON (join_condition)]

    其中join_table提议参加连接操作的表名,连接能够对同壹个表操作,也能够对多表操作,对同三个表操作的接二连三又称做自连接。join_type 提议连接类型。join_condition指接连条件。

 

连年类型:

   

    连接分为两种:内连接、外接连、交叉连接。

 

内连接(INNER JOIN)

   

    使用比较运算符(包蕴=、>、<、<>、>=、<=、!>和!<卡塔尔进行表间的可比操作,查询与连接条件相匹配的数量。依据比较运算符区别,内接连分为等值连接和莫衷一是连接二种。

1、等值连接

     概念:在三回九转条件中利用非凡号(=卡塔尔国运算符,其询问结果中列出被再三再四表中的全部列,包涵内部的重复列。

 

        [sql] view plain copy

 

  1. <span style="font-size:18px;"><span style="font-family:System;">       
  2. select * from T_student s,T_class c where s.classId = c.classId   
  3.      等于  
  4. select * from T_student s inner join T_class c on s.classId = c.classId</span></span>  

       结果是:

                 图片 3

                 

2、不等一连

 

   概念:在连年条件中接纳除等于号之外运算符(>、<、<>、>=、<=、!>和!<)

 

         [sql] view plain copy

 

  1. <span style="font-size:18px;"><span style="font-family:System;">       
  2.     select * from T_student s inner join T_class c on s.classId <> c.classId</span></span>  

       结果是:

 

                图片 4

 

外连接

 

   

    外连接分为左连接(LEFT JOIN卡塔 尔(阿拉伯语:قطر‎或左外连接(LEFT OUTEOdysseyJOIN卡塔尔国、右连接(宝马X3IGHT JOIN卡塔尔或右外连接(昂科拉IGHT OUTELX570 JOIN卡塔尔国、全连接(FULL JOIN卡塔尔或全外连接(FULL OUTE奥迪Q7JOIN卡塔尔。大家就总结的叫:左连接、右连接和全连接。

 

1、左连接:

 

    概念:重临左表中的全数行,假如左表中行在右表中尚无匹配行,则结果中右表中的列重临空值。

 

         [sql] view plain copy

 

  1. <span style="font-size:18px;"><span style="font-family:System;">      
  2.     select * from  T_student s left join T_class c on s.classId = c.classId</span></span>  

  结果是:
                图片 5

 

  总计:左连接展现左表全体行,和右表与左表相同行。

 

2、右连接:

 

   概念:恰与左连接相反,再次回到右表中的全数行,假如右表中央银行在左表中未有相配行,则结果中左表中的列重临空值。

         [sql] view plain copy

 

  1. <span style="font-size:18px;"><span style="font-family:System;">     
  2.    select * from  T_student s right join T_class c on s.classId = c.classId</span></span>  

   结果是:

 

              图片 6

  总括:右连接恰与左连接相反,显示右表全部行,和左表与右表相通行。

 

3、全连接:

 

  概念:再次回到左表和右表中的全数行。当某行在另一表中从未相配行,则另一表中的列重临空值

 

         [sql] view plain copy

 

  1. <span style="font-size:18px;"><span style="font-family:System;">      
  2.    select * from  T_student s full join T_class c on s.classId = c.classId</span></span>  

   结果是:

 

            图片 7

   计算:重临左表和右表中的全体行。

 

交叉连接(CROSS JOIN卡塔 尔(阿拉伯语:قطر‎:也称迪Carl积

 

    概念:不带WHERE条件子句,它将会重回被两次三番的多少个表的笛Carl积,重返结果的行数等于八个表行数的乘积(比方:T_student和T_class,返回4*4=16条记下卡塔尔,若是带where,重回或展示的是非常的行数。

 

1、不带where:

 

         [sql] view plain copy

 

  1. <span style="font-size:18px;"><span style="font-family:System;">     
  2.    select *from T_student cross join T_class  
  3.   ‘等于  
  4.    select *from T_student, T_class</span></span>  

    

结果是:

                           图片 8

       计算:格外与笛Carl积,左表和右表组合。

 

2、有where子句,往往会先生成四个表行数乘积的数据表,然后才遵照where条件从当中选取。

 

         [sql] view plain copy

 

  1. select * from T_student s cross join T_class c where s.classId = c.classId   
  2.    (注:cross join后加条件只可以用where,不可能用on)  

 

 

      查询结果跟等值连接的询问结果是同豆蔻年华。

 

 

      连接查询特别轻巧,只须求在项目中多么实行,不断总计。

 

转载自:

本文由澳门新葡亰app发布于新葡亰数据库,转载请注明出处:总是是关周全据库模型的要紧特色

关键词: