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消除笛卡尔积
  • 相关阅读:
    CSS margin的一些让你模糊的点
    VUE中CSS样式穿透
    如何给img标签里的请求添加自定义header?
    iframe的父子页面进行简单的相互传值
    Docker部署网站之后映射域名
    机器学习笔记(九)---- 集成学习(ensemble learning)【华为云技术分享】
    鲲鹏性能优化十板斧之前言 | 鲲鹏处理器NUMA简介与性能调优五步法
    【我的物联网成长记8】超速入门AT指令集【华为云技术分享】
    【直播分享】实现LOL小地图英雄头像分析案例【华为云分享】
    MongoDB一次节点宕机引发的思考(源码剖析)【华为云分享】
  • 原文地址:https://www.cnblogs.com/Soprano/p/10659012.html
Copyright © 2011-2022 走看看