SQL中的JOIN和UNION的用法
2015-11-04 16:47
477 查看
SQL中的JOIN和UNION的用法
JOIN是两张表做交连后里面条件相同的部分记录产生一个记录集,
UNION是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。
JOIN用于按照ON条件联接两个表,主要有四种:
INNER JOIN:内部联接两个表中的记录,仅当行符合联接条件时,内联接才返回该行。
LEFT JOIN / LEFT OUTER JOIN:外部联接两个表中的记录,并包含左表中的全部记录。如果左表的某记录在右表中没有匹配记录,则在相关联的结果集中右表的所有选择列表列均为空值。
RIGHT JOIN / RIGHT OUTER JOIN:外部联接两个表中的记录,并包含右表中的全部记录。
FULL JOIN / FULL OUTER JOIN:完整外部联接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右两表的数据都全部显示。
UNION将两个或更多查询的结果集组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。
要求表具有相同的列结构,列数也要相同,列名可以不同,以第一个表的列名为新表的列名
其中两种不同的用法是UNION和UNION ALL,区别在于UNION从结果集中删除重复的行。如果使用UNION ALL 将包含所有行并且将不删除重复的行。
JOIN相当于多块积木并排放,UNION相当于多块积木摞起来。
JOIN是两张表做交连后里面条件相同的部分记录产生一个记录集,
UNION是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。
JOIN用于按照ON条件联接两个表,主要有四种:
INNER JOIN:内部联接两个表中的记录,仅当行符合联接条件时,内联接才返回该行。
LEFT JOIN / LEFT OUTER JOIN:外部联接两个表中的记录,并包含左表中的全部记录。如果左表的某记录在右表中没有匹配记录,则在相关联的结果集中右表的所有选择列表列均为空值。
RIGHT JOIN / RIGHT OUTER JOIN:外部联接两个表中的记录,并包含右表中的全部记录。
FULL JOIN / FULL OUTER JOIN:完整外部联接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右两表的数据都全部显示。
UNION将两个或更多查询的结果集组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。
要求表具有相同的列结构,列数也要相同,列名可以不同,以第一个表的列名为新表的列名
其中两种不同的用法是UNION和UNION ALL,区别在于UNION从结果集中删除重复的行。如果使用UNION ALL 将包含所有行并且将不删除重复的行。
JOIN相当于多块积木并排放,UNION相当于多块积木摞起来。
相关文章推荐
- spark sql
- PostgreSQL表的行数统计
- 【转】iOS开发—SQLite的简单使用
- MongoDB 查询非空数组
- Ibatis 动态条件SQL语句
- 不同数据库自增字段的创建实现举例
- 另一套Oracle SQL练习题,更新参考答案
- SQLite数据库的使用总结
- MyBatis SQL映射
- oracle向已有表增加字段、字段设置默认值、修改表字varchar类型的长度
- oracle谓词推进测试
- MySQL无法启动,报错2002,无法连接
- redis集群实战
- mysql表字符编码问题
- MySQL编译安装(单实例)
- linux安装cx_Oracle并连接oracle
- 打开外部数据库
- Mysql 5.7.9源代码安装
- 关于数据库的一些函数的使用
- Redis 缓存集群 (一)Redis3.0.5 集群搭建