美文网首页
Mysql中的连接

Mysql中的连接

作者: 豌豆_b314 | 来源:发表于2020-04-09 16:26 被阅读0次

    知识点:
    交叉连接
    内连接
    外连接:左外连接、右外连接

    以下实验涉及到两张表,表a和表b如下


    表a.png
    表b.png

    交叉连接

    • 对两张表进行笛卡尔积 如果一个表有m行,一个表n行,两张交叉连接后产生m*n行
    • 交叉连接会差生很多无用数据,在现实生活中使用较少
    select *
    from a_table,b_table;
    

    查询后有30条记录


    交叉连接查询结果.png

    内连接

    思考如何去掉无用数据?--WHERE

    #写法一 方言
    select *
    from a_table,b_table
    where a_table.deptno = b_table.deptno
    
    #写法二 标准
    select *
    from a_table inner join  b_table
    on a_table.deptno = b_table.deptno
    

    【需求】希望打印出所有员工编号、姓名、部门名称
    此时内连接无法满足需求,把小红等人扔掉了


    内连接查询结果.png
    select id,name,deptname
    from a_table inner join  b_table
    on a_table.deptno = b_table.deptno
    

    左(外)连接

    • 关键字:left [outer] join
    • 左表是主表,都显示;右表不匹配部分用Null填充


      左外连接查询结果.png
    select *
    from a_table left outer join  b_table
    on a_table.deptno = b_table.deptno
    

    右(外)连接

    • 关键字:right [outer] join
    • 右表是主表,都显示;左表不匹配部分用Null填充


      右外连接查询结果.png
    select *
    from a_table right outer join  b_table
    on a_table.deptno = b_table.deptno
    

    总结:
    内连接只返回符合条件的记录;
    外连接除了返回符合条件的记录+不符合条件的记录(不匹配部分用null填充)

    相关文章

      网友评论

          本文标题:Mysql中的连接

          本文链接:https://www.haomeiwen.com/subject/xsicmhtx.html