SQL数据库表连接图文详解
来源:互联网 发布:淘宝个人信息资料出售 编辑:程序博客网 时间:2024/06/05 18:03
sql数据库表连接,主要分为:内连接、外连接(左连接、右连接 、全连接)、交叉连接,今天统一整合一下,看看他们的区别。
首先建表填充值。
学生表:student(id,姓名,年龄,性别 )
成绩表:score(id,学生id,成绩)
一、内连接(inner join……on)
select student.* ,Score.* from student inner join Score on student.id=Score.sid查询结果如下:
关系如下图:
总结:inner join取两表的交集。
二、外连接
外连接包括 左连接、右连接、全连接 (left|right | full outer join ……on),其中outer可以省略
(1)左连接(left join ……on)
select student.* ,Score.* from student left join Score on student.id=Score.sid查询结果如下:
关系如下图:
总结:left join 以左表为准,查询出左表的所有数据,右表中有对应的则显示出来,没有对应的则显示为null.
注:A left join B on 与 A,B where 有相同效果,如下:
select student.* ,Score.* from student inner join Score on student.id=Score.sidselect student.* ,Score.* from student,Score where student.id=Score.sid
(2)右连接(right join ……on)
select student.* ,Score.* from student right join Score on student.id=Score.sid
关系如下图:
总结:right join 以右表为准,查询出右表的所有数据,左表中有对应的则显示出来,没有对应的则显示为null.
(3)全连接(full join ……on)
select student.* ,Score.* from student full join Score on student.id=Score.sid
总结:full join 是为left和right的集合,某表中某一行在另一表中无匹配行,则相应列的内容为NULL。
三、交叉连接(cross join),注意没有on条件
select student.* ,Score.* from student cross join Score
叉联接也称作笛卡尔积。相当于两个表中的所有行进行排列组合。
若表a有X行,表b有Y行,则将返回XY行记录。
阅读全文
1 0
- SQL数据库表连接图文详解
- jdbc连接sql数据库详解
- 远程桌面连接图文详解
- JDBC连接sql server2000数据库详解
- java 连接 sqlServer2008 图文详解
- java 连接 sqlServer2008 图文详解
- sql数据库多表连接
- 通达OA 2015版使用PHP调试连接SQL server数据库(图文)
- SQL表连接方式详解
- SQL表连接方式详解
- SQL表连接方式详解
- Windows 下Oracle数据库安装以及Oracle SQL Developer(图文详解)
- ASP.NET2.0连接SQL Server数据库详解
- ASP.NET 2.0 连接SQL Server数据库详解
- 连接SQL Server数据库,Data Source属性详解
- ASP.NET2.0连接SQL Server数据库详解
- ASP.NET2.0连接SQL Server数据库详解
- ASP.NET 2.0 连接SQL Server数据库详解
- 机房管理遇到过的问题 & 经验谈
- surface pro 4恢复问题解决方案
- C++实现多种排序算法的排序类,并比较几种排序算法所用时间
- 第四章
- 指针数组和数组指针及延伸
- SQL数据库表连接图文详解
- 2017.6.24~6.25模拟总结
- Spark ML机器学习算法svm,als,线性回归,逻辑回归简单试验
- HTML语法的概念和架构
- easyui ueditor 整合解决不能编辑的问题
- 移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)
- LeetCode----241. Different Ways to Add Parenthese(M)分治
- Pandas(Serises)
- 函数数组参数解构