zoukankan      html  css  js  c++  java
  • 重新认识数据库的链接查询

    来自:https://blog.csdn.net/lukabruce/article/details/80568796

     

    【注意】:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现

    查看mysql的版本;

    select
    version();

    初始化SQL语句:

    drop table if exists t1;
    create table t1 (id int not null,name1 varchar(20));
    insert into t1 values (1,'t1a');
    insert into t1 values (2,'t1b');
    insert into t1 values (3,'t1c');
    insert into t1 values (4,'t1d');
    insert into t1 values (5,'t1f');
    
    drop table if exists t2;
    create table t2 (id int not null,name2 varchar(20));
    insert into t2 values (2,'t2b');
    insert into t2 values (3,'t2c');
    insert into t2 values (4,'t2d');
    insert into t2 values (5,'t2f');
    insert into t2 values (6,'t2a')

    1、笛卡尔积

    两表关联,把左表的列和右表的列通过笛卡尔积的形式表达出来。

    select * from t1 join t2;
    select * from t1 cross join t2;

    这里写图片描述

    2、左连接

    两表关联,左表全部保留,右表关联不上用null表示。

    这里写图片描述

    select * from t1 left join t2 on t1.id = t2.id;

    这里写图片描述

    3、右连接

    右表全部保留,左表关联不上的用null表示。

    这里写图片描述

    select * from t1 right join t2 on t1.id = t2.id;

    这里写图片描述

    4、内连接

    两表关联,保留两表中交集的记录。

    select * from t1 join t2 on t1.id = t2.id;
    select * from t1 inner join t2 on t1.id = t2.id;

     

    这里写图片描述

    5、左表独有

    两表关联,查询左表独有的数据。

    这里写图片描述

    select * from t1 left join t2 on t1.id = t2.id where t2.id is null;

    这里写图片描述

    6、右表独有

    两表关联,查询右表独有的数据。

    这里写图片描述

    select * from t1 right join t2 on t1.id = t2.id where t1.id is  null;

    这里写图片描述

    7、全连接

    两表关联,查询它们的所有记录。

    这里写图片描述

    oracle里面有full join,但是在mysql中没有full join。我们可以使用union来达到目的。

    mysql:
    
    select * from t1 left join t2 on t1.id = t2.id
    union
    select * from t1 right join t2 on t1.id = t2.id;
    
    oracle:
    select * from t1 full join t2 on t1.id = t2.id
    • 这里写图片描述

    8、并集去交集

    两表关联,取并集然后去交集。

    这里写图片描述

     
    select * from t1 left join t2 on t1.id = t2.id where t2.id is null
    union
    select * from t1 right join t2 on t1.id = t2.id where t1.id is null;

    这里写图片描述

  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/brianlai/p/13679087.html
Copyright © 2011-2022 走看看