图解Join

     在做机房收费系统中,涉及到多张表的查询时,用到了join,感觉很不错,学习了下join,顺便复习了下高中数学。

     

      现在,用机房收费系统中学生信息表和学生上机表做个小DEMO~ ,如图:

     

      表A:学生信息表:

  

   

   

   表B:学生上机表:

  

1,inner  join

  

     从结果看出,select的结果为表A和表B的交集。

       

2,full outer join

Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。

3,Left outer join

Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。同理,Right
join 可以类比left join。

4,cross join

  

由结果可以看出,两张表做笛卡尔积运算,产生3*5行,这个暂时还没用到。

小结:关于数据库的学习和实践还在进行中!!!

  

时间: 2024-09-20 02:55:42

图解Join的相关文章

mysql 开发技巧之JOIN 更新和数据查重/去重_Mysql

主要涉及:JOIN .JOIN 更新.GROUP BY HAVING 数据查重/去重 1 INNER JOIN.LEFT JOIN.RIGHT JOIN.FULL JOIN(MySQL 不支持).CROSS JOIN 这是在网上找到的非常好的一篇博文,图解 join 语句: CODING HORROR-A Visual Explanation of SQL Joins 下图可以很清楚的明白,join 的数据选取范围 [][1] [1]: yun_qi_img/160725-imooc-mysql

图解SQL的inner join、left join、right join、full outer join、union、union all的区别

SQL的Join语法有很多,inner join(等值连接) 只返回两个表中联结字段相等的行,left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,看到一篇图解文章,非常清楚简洁的说明了使用JOIN操作后的结果集是什么格式. 假设我们有两张表.Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同的,如下所示: A表 id name 1 P

SQL的Join使用图解教程_MsSql

对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams 解释了SQL的Join.我觉得清楚易懂,转过来. 假设我们有两张表. Table A 是左边的表. Table B 是右边的表. 其各有四条记录,其中有两条记录是相同的,如下所示

SQL的Join使用图解教程

对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams 解释了SQL的Join.我觉得清楚易懂,转过来. 假设我们有两张表. Table A 是左边的表. Table B 是右边的表. 其各有四条记录,其中有两条记录是相同的,如下所示

MySQL中Join算法实现原理分析

在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join.顾名思义,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果.如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复. 还是

图解各种SQL连接

图解各种SQL连接 连接的分类 内连接 等值连接(INNER JOIN) 自然连接(NATURAL JOIN) 交叉连接(CROSS JOIN) 不等连接 外连接 左外连接(LEFT OUTER) 右外连接(RIGHT OUTER) 全外连接(FULL OUTER) 连接类型 说明 图例 SQL示例 等值连接 只用等号进行连接 select * from A INNER JOIN B where A.key = B.key 自然连接 只用等号进行连接,且去掉重复的行 select * from

三十分钟MySQL快速入门(图解)_Mysql

一.MySQL安装 MySQL的下载 http://dev.mysql.com/downloads/mysql/ MySQL版本选择 MySQL功能自定义选择安装 功能自定义选择 路径自定义选择 设置root用户密码 安装完成,点击MySQL Workbench 6.3 CE进入MySQL客户端 二.SQL基础 SQL语句分类 1.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括

分布式数据库——从线性扩展谈分布式JOIN

在首届阿里巴巴中间件峰会上,来自阿里巴巴DRDS团队的梦实分享了<分布式数据库--从线性扩展谈分布式JOIN>.他主要从OLTP数据库的线性扩展.水平扩容.IN查询.分布式JOIN四个方面进行了分享.在分享中,他主要通过买家与订单场景.家庭与孩子场景介绍了IN查询,通过同维度的JOIN.广播表的JOIN.Nested Loop Join详细介绍了分布式JOIN的坑与填坑.   以下内容根据直播视频整理而成.   在数据库的使用过程中,我们难免会问到这样的问题,为什么分库分表?答案是为了达到线性

HybridDB PostgreSQL &quot;Sort、Group、distinct 聚合、JOIN&quot; 不惧怕数据倾斜的黑科技和原理 - 多阶段聚合

标签 PostgreSQL , Greenplum , JOIN , group by , distinct , 聚合 , 非分布键 , 数据倾斜 , 多阶段聚合 背景 对于分布式系统,数据分布存储,例如随机.哈希分布. Greenplum数据库支持两种数据分布模式: 1.哈希(指定单个.或多个字段) 2.随机分布(无需指定任何字段) 数据分布存储后,面临一些挑战: JOIN,排序,group by,distinct. 1.JOIN涉及非分布键字段 2.排序,如何保证输出顺序全局有序 3.gro