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

  • 相关阅读:
    函数的调用惯例
    docker 强制删除镜像
    docker 安装 tomcat8
    阿里云 maven仓库地址配置
    ubuntu 18.04 安装搜狗输入法
    centos 监控进程,并自动重启
    intellj idea show "run dashboard" panel
    Centos7 服务器启动jar包
    maven centos7 环境变量
    linux关于IP,端口,防火墙相关命令
  • 原文地址:https://www.cnblogs.com/jgzh35/p/3296604.html
Copyright © 2011-2022 走看看