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

  • 相关阅读:
    C语言中的内存分配与释放
    CentOS下Mysql安装教程
    简单的理解deflate算法
    Memcache的一些学习
    Python学习入门基础教程(learning Python)--6.4 Python的list与函数
    Delphi Windows API判断文件共享锁定状态(使用OpenFile来判断)
    深刻:截获windows的消息并分析实例(DefWindowProc),以WM_NCHITTEST举例(Windows下每一个鼠标消息都是由 WM_NCHITTEST 消息产生的,这个消息的参数包含了鼠标位置的信息)
    WM_SYSCOMMAND消息命令整理 good
    Delphi 中 FindWindow 和 FindWindowEx 找到外部进程,然后发送消息(比如最大化)
    再来一个学历,理论与动手能力的讨论——结论是理论和实际都重要,但是上学期间应偏重理论
  • 原文地址:https://www.cnblogs.com/jgzh35/p/3296604.html
Copyright © 2011-2022 走看看