700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 交叉连接(笛卡尔积) 连接查询 内连接 外连接都有哪些 以及书写语法【详细】【有例

交叉连接(笛卡尔积) 连接查询 内连接 外连接都有哪些 以及书写语法【详细】【有例

时间:2022-06-06 20:04:37

相关推荐

交叉连接(笛卡尔积) 连接查询 内连接 外连接都有哪些 以及书写语法【详细】【有例

连接查询:

连接查询是指多表联合查询;

连接查询的分类:

根据表的连接方式分类:

内连接: 等值连接非等值连接自连接外连接: 左外连接(左连接)右外连接(右连接)全连接(这个不讲,很少用,并且MySQL也不支持)

笛卡尔积现象(交叉连接):

当两张表进行连接查询的时候,若没有任何条件进行限制,最终的查询结构条数是两张表记录条数的乘积

避免方式:增加条件进行过滤,但是并不会减少数据匹配次数,只不过显示的是有效记录

表匹配原理:表1中的一条数据与表2中的所有数据进行匹配

内连接是什么?

内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,也就是找到两个表中相同的字段进行返回;属于有条件的交叉连接;

内连接都有哪些方式?

内连接-等值连接:

语法:

...AjoinBon连接条件where...

举例:

// inner可以省略的,带着inner目的是可读性好一些。

selecte.ename,d.dnamefromemp einner joindept done.deptno = d.deptno;

执行结果:

就是把两张表值相等的直接连起来了;

内连接-非等值连接:

语法:同非等值连接;

举例:

// inner可以省略

selecte.ename,e.sal,s.gradefromemp einner joinsalgrade sone.sal between s.losal and s.hisal;

结果:

把两张表按照非等值的规则进行连接,连接规则用语句控制;

内连接-自连接:

特点:将一张表看作是两张表,自己连接自己

举例:

selecta.ename as '员工名',b.ename as '领导名'fromemp ainner joinemp bona.mgr = b.empno;

结果:

栗子用的数据表:

外连接是什么?

分为左外连接和右外连接;左外连接:又称左连接。左边是主表,这种连接方式会显示左表不符合条件的数据行,右边不符合条件的数据行直接显示NULL。右外连接:又称右连接,与左连接相对,这种连接方式会显示右表不符合条件的数据行,左表不符合条件的数据行直接显示NULL。这里的左右指的是join语句的左右,不懂的可以看下面的栗子;

外连接都有哪些方式?

外连接-左连接:表示左边的这张表是主表,显示左表不符合条件的数据行,右边不符合条件的数据行显示NULL。

// outer是可以省略的。selecta.ename '员工', b.ename '领导'fromemp aleft outer joinemp bona.mgr = b.empno;

外连接-右连接:表示右边的这张表是主表;

外连接:(右外连接/右连接)

selecta.ename '员工', b.ename '领导'fromemp bright joinemp aona.mgr = b.empno;

可以将左连接和右链接对比着看!

主表就是要全部查询的表格;

三张表查询也一样,先连上两个,再连接第三个;栗子用的数据表:

交叉连接(笛卡尔积) 连接查询 内连接 外连接都有哪些 以及书写语法【详细】【有例子】【有代码】【基础】【重点】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。