• 数据库中左右连接


    学生表   
              学号   姓名   
              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

  • 相关阅读:
    fiddler配置及使用教程
    获取字符串中出现次数最少的字符
    引用数据类型的深拷贝
    jquery一些方法
    常用字体
    图片模拟
    返回上一页并刷新
    移动端网页调试神器
    input一些限制
    使用transform后z-index失效的解决方法
  • 原文地址:https://www.cnblogs.com/jgzh35/p/3296604.html
Copyright © 2020-2023  润新知