zoukankan      html  css  js  c++  java
  • 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消除笛卡尔积

     

  • 相关阅读:
    有一天人人都会变成程序猿
    mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較
    做程序员的老婆应该注意的一些事情
    人类科技的发展为什么会是加速度的(TRIZ方法再推荐)
    Unity5.0 RPG角色扮演历险类游戏之 森林历险记
    linux目录对照命令——meld
    iOS --- [持续更新中] iOS移动开发中的优质资源
    【spring bean】spring中bean的懒加载和depends-on属性设置
    【spring bean】 spring中bean之间的引用以及内部bean
    【spring set注入 注入集合】 使用set注入的方式注入List集合和Map集合/将一个bean注入另一个Bean
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4214449.html
Copyright © 2011-2022 走看看