zoukankan      html  css  js  c++  java
  • sql关键字 左连接 右连接 外连接 交叉连接 交集 并集 差集 批量更新/删除

    测试表A                          测试表B

         


    1 left join(left outer join)
    --左连接包含左侧表中的所有数据 及按where条件查出的右表中的数据。不存在则显示空值
    select * from A left join B on a.name=b.name 

    2 right join(right outer join)
     select * from A right join B on a.name=b.name
    --右连接与左连接恰好相反

    3 full join (full outer join)
     select * from A full join B on a.name=b.name
    左连接和右连接的合集

    4 inner join (默认情况为inner join)
    --并不以谁为基础,它只显示符合条件的记录
    select * from A inner join B on a.name=b.name

    5 交叉连接  
    不能带参数,是两个表交叉组合的结果
    select * from A cross join B

    6 并集
    求两个表的name字段的并集
    select name from a union (select name from b)

    7 差集
    求两个表的name字段的差集,得出a表中有且b表中无的
    select name from a minus (select name from b)


    8 交集
    求两个表的name字段的交集
    select name from a intersect (select name from b)


    9 交集之外的
    求两个表中除交集之外的所有name值
    select name from a union (select name from b) minus (select name from a intersect (select name from b))

    10 批量更新/删除
    如果表中匹配了一组值的某些条件,则用这组值的部分数据来更新这个表,否则用这组值的数据为这个表新增一条数据
    Merge into A t1 using B t2 on (t1.id=t2.id)
    when matched then
    update set t1.name=t2.name when not matched then
    insert values (t2.id,t2.name)

  • 相关阅读:
    VS2012的恢复默认窗口的基本常用设置
    在 CentOS 6.4 上安装 CloudStack 4.2
    centos7上安装mysql
    myeclipse安装aptana插件
    访问WEB-INF下的JSP (转载)
    通过字节流复制大文件内容到指定的文件
    java 通过bufferedReader和bufferedWriter 拷贝文件
    Date类获取日期的方法失效的解决办法
    java中string 类型的对象间比较的学习笔记
    ubuntu下搭建nfs服务器
  • 原文地址:https://www.cnblogs.com/myparamita/p/2132745.html
Copyright © 2011-2022 走看看