zoukankan      html  css  js  c++  java
  • 数据库中左右连接

    学生表   
              学号   姓名   
              0001   小李   
              0002   小王   
              0003   小朱   
              0004   小黄   
      选课表   
              学号   课程   
              0001   高数   
              0002   线数   
              0004   英语   
              0005   电脑   
        
      --左(外)联接   
      SELECT   学生表.*,   选课表.课程   
      FROM   学生表,   选课表   
      WHERE   学生表.学号   =   选课表.学号(+)   
      查询的结果是:   
              学号   姓名   课程   
              0001   小李   高数   
              0002   小王   线数   
              0003   小朱   
              0004   小黄   电脑   
      学生表.学号   =   选课表.学号(+)表示   
      学生表(也就是左边的表)所有行都会被返回   
      即使选课表中没有相应的行与学生表中的行匹配   
        
      --右(外)联接   
      SELECT   学生表.*,   选课表.课程   
      FROM   学生表,   选课表   
      WHERE   学生表.学号(+)   =   选课表.学号   
      查询的结果是:   
              学号   姓名   课程   
              0001   小李   高数   
              0002   小王   线数   
              0004   小黄   电脑   
              0005             电脑   
      学生表.学号(+)   =   选课表.学号表示   
      选课表(也就是右边的表)所有行都会被返回   
      即使学生表中没有相应的行与选课表中的行匹配   
        
        
      不同的数据库系统对外联接有不同的表示   
      有些根本不兼容   
        
      如(还是以上例为基础)   
        
      MS   SQL   SERVER   外联接的SQL写法   
          --左(外)联接   -   第一种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表,   选课表   
          WHERE   学生表.学号   *=   选课表.学号   
          --左(外)联接   -   第二种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表   LEFT   OUTER   JOIN   选课表   ON   学生表.学号   =   选课表.学号   
          --右(外)联接   -   第一种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表,   选课表   
          WHERE   学生表.学号   =*   选课表.学号   
          --右(外)联接   -   第二种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表   RIGHT   OUTER   JOIN   选课表   ON   学生表.学号   =   选课表.学号   
          --注:在MS   SQL   SERVER中,OUTER关健字可以省略   
        
      ACCESS   外联接的SQL写法   
          --左(外)联接   -   第二种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表   LEFT   OUTER   JOIN   选课表   ON   学生表.学号   =   选课表.学号   
          --右(外)联接   -   第二种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表   RIGHT   OUTER   JOIN   选课表   ON   学生表.学号   =   选课表.学号   
          --注:在ACCESS中,关健字OUTER不可以省略   
        
      ORACLE   外联接的SQL写法   
          --左(外)联接   -   第一种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表,   选课表   
          WHERE   学生表.学号   =   选课表.学号(+)   
          --右(外)联接   -   第一种写法   
          SELECT   学生表.*,   选课表.课程   
          FROM   学生表,   选课表   
          WHERE   学生表.学号(+)   =   选课表.学号   
        
      ORACLE直到9i才支持SQL-92外联接语法   
      LEFT   (OUTER)JOIN和RIGHT   (OUTER)   JOIN   
      和MS   SQL   SERVER一样   
      关健字OUTER是可以省略的Top

  • 相关阅读:
    dubbo入门(一)
    java中文件操作《一》
    Unity 游戏框架搭建 2019 (七) 自定义快捷键
    凉鞋:我所理解的框架 【Unity 游戏框架搭建】
    Unity 游戏框架搭建 2019 (六) MenuItem 复用
    Unity 游戏框架搭建 2019 (五) 打开所在文件夹
    Unity 游戏框架搭建 2019 (四) 导出 UnityPackage
    Unity 游戏框架搭建 2019 (三) 生成文件名到剪切板
    Unity 游戏框架搭建 2019 (二) 文本复制到剪切板
    Unity 游戏框架搭建 2019 (一) 简介与第一个示例文件名的生成
  • 原文地址:https://www.cnblogs.com/jgzh35/p/3296604.html
Copyright © 2011-2022 走看看