• SQL:1999基本语法(学习笔记)


    SQL:1999基本语法

    SELECT [DISTINCT] * | 列名称 [AS]别名,........
    FROM 表名称1 [别名1][CROSS JOIN表名称2 别名2]|
    [NATURAL JOIN表名称2 别名2]
    [ JOIN表名称2 别名2 USING (关联列名称)]
    [ JOIN表名称2 别名2 on (关联条件)]
    [LEFT | RIGHT | FULL OUTER JOIN 表2 ON (关联条件)]
    [WHERE 条件(s)]
    [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 
    • 交叉连接(CROSS IN)

    语法:

    SELECT [DISTINCT] * | 列名称 [AS]别名,........
    FROM 表名称1 [别名1][CROSS JOIN表名称2 别名2]|
    [WHERE 条件(s)]
    [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

    使用交叉连接门生笛卡尔积

    SELECT * 
    FROM emp e CROSS JOIN dept d; 

    使用where消除

    SELECT * 
    FROM emp e CROSS JOIN dept d
    WHERE e.deptno=d.deptno; 
    • 自然连接(NATURAL JOIN)

    语法:

     

    SELECT [DISTINCT] * | 列名称 [AS]别名,........
    FROM 表名称1 [别名1]
    [NATURAL JOIN表名称2 别名2]
    [WHERE 条件(s)]
    [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

     

    使用自然连接

    SELECT * 
    FROM emp  NATURAL JOIN dept;
    --自然连接可以直接消除笛卡尔积
    • USING子句

     

    语法:

     

    SELECT [DISTINCT] * | 列名称 [AS]别名,........
    FROM 表名称1 [别名1] [ JOIN表名称2 别名2 USING (关联列名称)]
    [WHERE 条件(s)]
    [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

     

    使用USING子句

    SELECT * 
    FROM emp JOIN dept USING (deptno);
    
    --USING后字段要用()
    • ON子句

    语法:

    SELECT [DISTINCT] * | 列名称 [AS]别名,........
    FROM 表名称1 [别名1] [ JOIN表名称2 别名2 on (关联条件)]
    [WHERE 条件(s)]
    [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

     使用ON子句:

    SELECT * 
    FROM emp e JOIN dept d ON (e.deptno=d.deptno) ;
    --ON后是条件
    --()可以省略
    • 外连接

    语法:

    SELECT [DISTINCT] * | 列名称 [AS]别名,........
    FROM 表名称1 [别名1][LEFT | RIGHT | FULL OUTER JOIN 表2 ON (关联条件)]
    [WHERE 条件(s)]
    [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

    左外连接:

    SELECT * 
    FROM emp e LEFT OUTER JOIN dept d
    ON(e.deptno=d.deptno);
    --使用ON消除笛卡尔积
    SELECT * 
    FROM emp e LEFT OUTER JOIN dept d
    USING (deptno);
    --使用USING消除笛卡尔积

    右外连接:

    SELECT * 
    FROM emp e RIGHT OUTER JOIN dept d
    ON(e.deptno=d.deptno);
    --使用ON消除笛卡尔积
    SELECT * 
    FROM emp e RIGHT OUTER JOIN dept d
    USING (deptno);
    --使用USING消除笛卡尔积

    全外连接:

    SELECT *
    FROM emp e FULL OUTER JOIN dept d
    ON(e.deptno=d.deptno);
    --使用ON消除笛卡尔积
    SELECT *
    FROM emp e FULL OUTER JOIN dept d
    USING (deptno);
    --使用USING消除笛卡尔积

     

  • 相关阅读:
    08-蓝图&单元测试
    07-多对多操作
    JAVA 判断字符串是否可转化为JSONObject、JSONArray
    git常用命令
    线程和进程的一些基本概念
    JavaWeb学习总结(七):通过Servlet生成验证码及其应用 (BufferedImage类)
    JavaWeb学习总结(十):Session简单使用
    Ubuntu16.04 安装maven
    Ubuntu16.04 安装redis
    Ubuntu16.04 下安装tomcat
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4214449.html
Copyright © 2020-2023  润新知