SQL 连接(内连接,外连接)
内连接
现在有两张表,学生表student1,成绩表SC1,两张表的数据如下

现在要对两张表做连接查询,连接一般需要写条件,where 或者 on 后面 ,
select * from student,SC where student.sid=SC.sid from 后面直接写两个表名,这样写等价于内连接 如果不写 where 条件,相当于笛卡尔积。

带有 where 条件 相当于内连接

A(inner,left,right) join B on A.1=B.1 on 不写会报错
select * from student inner join SC on student.sid=SC.sid
外连接(左外连接,右外链接)
左联接,是包括 A,B 表的交集 和 A 表的数据 (A eft join B on A.1=B.1),如果 A 表中有的数据 B 表没有找到相等的,会显示A表的数据,B表中的部分会为 null ,下面的结果就是成绩表中没有赵六和田七的数据的结果

如果 and 写在 on 后面,表示的是在做关联时不关联被过滤掉的数据,比如上面的数据,写 and sc.score>60 条件之后,会过滤掉成绩<=60的数据,而张三丰每一门课的成绩都小于60,但是会有张三丰的数据,只是后面的为null,如下:

上面的数据是过滤掉成绩小于60的数据之后,张三丰的成绩都小于60,并不是没有张三丰这个数据了,而是他后面的为null,可以这样理解,on 后面的 and 条件是代表关联与否,不满足就不关联,但A表的数据还是要全部都有的。
如果成绩>60是写在where 里的,where 是对结果进行过滤的,所以会把上面的结果不满足成绩>60的数据过滤掉,即:

右外链接,同左外链接一样,包括并集和B表的数据。
学生表和成绩表做又外连接的时候,成绩表中有一条 1008 的数据在学生表中没有,结果如下:

对上面的结果进行 成绩 >60 的条件过滤


可以看到写在 on 后 和 where 后结果是不同的,可以理解为,写在 on 后面的条件如果不满足就不和另外一个表进行关联,但是他的数据还是会在结果中显示。对于要显示全部数据的那张表。
自连接,在这里就先不说了。以后再说。
SQL 连接(内连接,外连接)的更多相关文章
- SQL:内连接、左外连接、右外连接、全连接、交叉连接区别
有两个表A和表B.表A结构如下: Aid:int:标识种子,主键,自增ID Aname:varchar 数据情况,即用select * from A出来的记录情况如下图1所示: 图1:A表数据表B结构 ...
- mysql的内连接,外连接(左外连接,右外连接)巩固
1:mysql的内连接: 内连接(inner join):显示左表以及右表符合连接条件的记录: select a.goods_id,a.goods_name,b.cate_name from tdb_ ...
- Oracle内连接、外连接、右外连接、全外连接小总结
数据库版本:Oracle 9i 表TESTA,TESTB,TESTC,各有A, B两列 A B 001 10A 002 20A A B 001 10B 003 30B A B 001 10C 004 ...
- [转] 如何设置双网卡同时连接内网外网_bpao_新浪博客
已剪辑自: http://blog.sina.com.cn/s/blog_5d3e229c0100skwe.html 如何设置双网卡同时连接内网外网 . 通过无线网络连接外网,确保连接成功后开始第二步 ...
- 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...
- Oracle 左连接、右连接、全外连接、(+)号作用
分类: Oracle Oracle 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 外连接(Outer ...
- Oracle 左连接、右连接、全外连接、(+)号作用、inner join(等值连接) (转载)
Oracle 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 外连接(Outer Join) oute ...
- Oracle左连接、右连接、全外连接
Oracle 外连接 (1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制) 外连接(Outer Join) outer join则会返回每个满足 ...
- Oracle学习笔记—Oracle左连接、右连接、全外连接以及(+)号用法(转载)
转载自: Oracle左连接.右连接.全外连接以及(+)号用法 对于外连接,Oracle中可以使用“(+)”来表示. 关于使用(+)的一些注意事项: (+)操作符只能出现在WHERE子句中,并且不能与 ...
- SQL的四种连接(左外连接、右外连接、内连接、全连接)
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...
随机推荐
- centos7.4中安装docker
#!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...
- CSS3_边框 border 详解_一个 div 的阴阳图
(面试题) 怎么样通过 CSS 画一个三角形: 1. 元素的 width 和 height 设置为 0 2. 边框 足够大 3. 需要的三角形的部分, border-top-color 设置为 ...
- jQuery (02) 重点知识点总结
jQuery 如果用户未登录,当加入购物车,会将商品相关信息存入 cookie 或者 session,这两个都是可以标识用户信息的东西 是一个 JavaScript 库,封装了常用的开发功能,和一些需 ...
- OO第二次阶段性总结
前两次作业我都无效了……用了很久时间但还是没能弄明白多线程的写法,以后还是要学会即时的多问问会的同学吧…… 以及我的Mertrics在挣扎很久之后还是用不了……跪了 第七次作业 第七次作业能够完成的原 ...
- new image()
在js中 新建一个new image()对象,image.src图片地址,这个是io读取是异步的,解决方法 image.onload=function(){ }
- Express全系列教程之(一):Express的安装 和第一个程序
前言 ndoe.js,一个基于javsscript运行环境的服务器语言,它的出现使得javascript有能力去实现服务器操作.在gitHub上ndoe.js的star数已接近6万,可见其受欢迎程度: ...
- vlan分类简易解释
注:出自http://wushank.blog.51cto.com/3489095/1305510 收报文: Acess端口1.收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进 ...
- 关于ico图标
ico图标可以作为网页标签上显示的小logo,比如: 要获取一个网站的ico图标,只需要在url后输入/favicon.ico即可,比如 https://www.baidu.com/favicon ...
- Python title()、upper()、lower()方法--string
描述 title()方法: 将字符串中的单词“标题化”,即首字母大写,其余字母转化为小写. upper()方法:将字符串中的小写字母转化为大写字母. lower()方法:将字符串中的大写字母转化为小写 ...
- 【Python全栈-JavaScript】jQuery效果
jQuery效果 jQuery 效果函数: 方法 描述 animate() 对被选元素应用“自定义”的动画 clearQueue() 对被选元素移除所有排队的函数(仍未运行的) delay() 对被选 ...