sql中什么时候用内连接查询,什么时候用外连接查询?用起来好像一样啊!
来源:互联网 发布:淘宝客网站源码破解版 编辑:程序博客网 时间:2024/04/30 00:30
我用内连接查询和外连接查询的结果是一样的,两者有什么不同?
需要查找两张表同时存在的数据,使用内连接
需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接
内连接的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足连接条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有选课的学生(这部分学生的学号在学生表中有,但在选课表中没有,不满足连接条件),这时就需要使用外连接。外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式。3种外连接:
1)左外连接(LEFTOUTER JOIN)
如果在连接查询中,连接管子左端的表中所有的元组都列出来,并且能在右端的表中找到匹配的元组,那么连接成功。如果在右端的表中,没能找到匹配的元组,那么对应的元组是空值(NULL)。这时,查询语句使用关键字LEFT OUTERJOIN,也就是说,左外连接的含义是限制连接关键字右端的表中的数据必须满足连接条件,而不关左端的表中的数据是否满足连接条件,均输出左端表中的内容。
例如:要查询所有学生的选课情况,包括已经选课的和还没有选课的学生,查询语句为
SELECT学生表.学号,姓名,班级,课程号,成绩
FROM学生表LEFT OUTER JOIN选课表ON学生表.学号=选课表.学号
左外连接查询中左端表中的所有元组的信息都得到了保留。
2)右外连接(RIGHTOUTERJOIN)
右外连接与左外连接类似,只是右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容。
例如:同上例内容,查询语句为
SELECT学生表.学号,姓名,班级,课程号,成绩
FROM学生表RIGHTOUTERJOIN选课表ON学生表.学号=选课表.学号
右外连接查询中右端表中的所有元组的信息都得到了保留。
3)全外连接(FULL OUTER JOIN)
全外连接查询的特点是左、右两端表中的元组都输出,如果没能找到匹配的元组,就使用NULL来代替。
例如:同左外连接例子内容,查询语句为
SELECT学生表.学号,姓名,班级,课程号,成绩
FROM学生表FULL OUTER JOIN选课表ON学生表.学号=选课表.学号
全外连接查询中所有表中的元组信息都得到了保留。
0 0
- sql中什么时候用内连接查询,什么时候用外连接查询?用起来好像一样啊!
- sql中什么时候用内连接查询,什么时候用外连接查询
- SQL子查询什么时候用
- SQL查询语句,内连接,外连接
- SQL 内连接,外连接数据查询
- 什么时候用sql什么时候用存储过程
- Swift 中什么时候用? 什么时候用!
- 在c++中, 什么时候用*什么时候用&?
- c++中关于什么时候用“->”什么时候用“.”
- 在SQL语言中,join什么时候用
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- SQL连接查询1 内联接查询
- sql查询相关技术-内连接查询
- linux设备驱动归纳总结(六):2.分享中断号
- 【Java】Java反射机制及Spring BeanWrapper
- 基于贪心算法的几类区间覆盖问题:
- 插值法
- 类型转换: 自动类型转换:数值范围小的转到数值范围大 强制类型转换:数值范围大的转到数值范围小 浮点类型的数据想其他类型转化时需要强制类型转换,同时可能发生精度丢失 当强制把数值范围大的转化为数值范
- sql中什么时候用内连接查询,什么时候用外连接查询?用起来好像一样啊!
- 字符集
- git fetch 更新远程仓库到本地
- gdb 打印变量时出现 "No symbol "i" in current context"
- Leetcode 215. Kth Largest Element in an Array
- Android 代码混淆 webview混淆
- eclipse设置自动生成注释
- ubuntu防火墙ufw
- zookeeper搭建