MySQL连接查询 内连接和外连接的区别
MySQL 连接查询
- @ sunRainAmazing
1.使用连接查询的场景
将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接);进行数据的拼接(两张表的内容显示在一个结果表中 使用连接查询)最终的结果是:记录数有可能变化,字段数一定会增加(至少两张表的合并)意义:在用户查看数据的时候,显示的数据来自于多张表
连接查询的分类 4类
内连接 inner join
内连接 【掌握】 ---拼接查询结果内部有联系,使用内连接格式: [inner] join ----inner可省结果:从左表中取出每一条记录,去右表中与所有的记录进行匹配;匹配必须是某个条件是左表中与右表中相同,才会保留结果,否则不保留;基本语法:左表 [inner] join 右表 on 左表.字段 = 右表.字段;注意事项:1、on 表示连接条件;条件字段代表相同的业务含义(如 stu.cid 和 cla.id) 学生stu表中的班级cid 和 班级cla表中的id2、内连接可以没有连接条件,没有on之后的内容,这时候系统会保留所有结果(笛卡尔集)3、内连接可以使用where 代替 on通常不用where,因为where没有on效率高on指匹配到第一条成功的就结束,其他不匹配; 若没有,不进行匹配而where会一直匹配,进行判断 4、通常使用字段别名 表别名在查询数据的时候,不同表有同名字段, 这时候需要加上表名才能区分,而若表名太长,使用表别名若不想使用默认的字段名 可以通过[as] 设置字段别名
外连接
外连接 【掌握】--以某一张表为基表 进行相关查询outer join 以某张表为主,取出里面的所有记录,然后每条与另外一张表进行连接,不管能不能匹配上条件,最终都会保留, 能匹配,正确保留;不能匹配其他表的字段都置空null分类:分为两种 左连接,右连接left join 左外连接---左连接,以左表为主right join 右外连接---右连接,以右表为主基本语法:左表 left/right join 右表 on 左表.字段 = 右表.字段;------条件必须有
交叉连接
交叉连接【几乎不用】基本不用这个连接查询cross join:从一张表中循环取出每一条记录,每条记录都会去另一张表中进行匹配;匹配结果一定保留(无条件匹配)------笛卡尔集;而连接就会增加(保留),形成的结果就是笛卡尔集;基本语法:左表 cross join 右表; 等价于 from 左表,右表;------没有条件笛卡尔集没有意义,应该尽量避免(交叉连接没用)存在的价值:保证连接的结构的完整性
自然连接
自然连接【很少用】natural join 自然连接 就是系统自动匹配连接条件系统以字段名字作为匹配模式(同名字段作为字段,多个同名字段都作为条件)自然连接:可以分为 自然内连接 和 自然外连接内连接 natural left join 自然左外连接 其实:内连接和外连接都可以模拟自然连接,使用同名字段,合并字段左表 left/ right inner join 右表 on using(字段名)-----使用同名字段,合并字段--自然内连接 select * from stu natural join cla;--自然左外连接select * from stu natural left join cla;--外连接模拟自然左外连接select * from stu left join cla using(id);
MySQL连接查询 内连接和外连接的区别相关推荐
- mysql连接查询(内联)_MySQL之连接查询
JavaScript面向对象与原型 工厂模式:无法识别对象 function createObject(name, age) { //集中实例化的函数 var obj = new Object(); ...
- oracle 连接查询--内连接与外连接
一.外连接 oracle 连接查询分为外链接和内连接,我们先看外连接[outer join].oracle 的外连接查询分为: 左外连接 (左边的表不加限制) left outer join: 右外连 ...
- MySql连接查询——内连接与外连接
引言 实际业务开发中,往往会涉及到多张表之间的数据交互,这时候单表查询已经不能满足复杂的业务需求了,所以就需要用到多表的连接查询: 连接查询主要分为以下三种: 内连接 等值连接 非等值连接 自连接 外 ...
- mysql连接查询 内连接查询 外连接查询
连接查询 连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据: t_book表: id bookName price author bookTypeId t_bookType表: ...
- MySQL数据库连接查询(内连接)
连接查询 1. 交叉连接(笛卡尔积)Cross Join 实例1.1:完成车辆表与线路表的交叉连接 代码如下: -- 1.1实现线路表与车辆表笛卡尔积 SELECT * FROM line CROSS ...
- 什么时候使用内连接,什么时候使用外连接
需要查找两张表同时存在的数据,使用内连接 需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接 内连接的查询结果都是满足连接条件的元组.但有时我们也希望输出那些不满足连接条件 ...
- 内链接与外连接的区别
两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链接而建立起来的.用来连接两张表的表达式组成了连接条件.当连接成功后,第二张表中的数据就同第一张表连接起来了,并形成了复合结果集--包括两张 ...
- 内网和外网的区别 连接不同设备上网
原来一直很疑惑,关于内网和外网的区别,看了好多博客,也没解决疑惑,但是看了书的定义,感觉豁然开朗.区别如下: 若计算机直接连接Modern并实现拨号上网时,利用百度查询到的ip地址是当前计算机在Int ...
- 两表连接查询 mysql_MySQL 中两表连接查询总结
在之前的学习中,筛选出来的列都是一张表中的,本篇开始是对连表查询的学习内容.先从以下场景开始: 生成一张报价单,报价单包含商品名称,栏目名称,商品库存,商品价格,栏目名称和商品信息放在两张表中. 传统 ...
- 内网和外网的区别+tcp协议ip协议详解
内网概念 即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. (连上WIFI,手机IP一般能在「设置」-「关于手 ...
最新文章
- 窗口之间传递消息的一个方法
- 新浪微博授权失败:applications over the unaudited use restrictions
- Java多线程中的Runnable和Thread
- centos7 安装 Minio
- 【pyqt5学习】——items view相关控件(list view、table view)
- linux vsftpd
- Hadoop——快速入门
- 创业挑战杯获奖作品范例_挑战杯创业计划大赛金奖作品1——【挑战杯获奖作品】...
- vncserver 设置过万的分辨率_修改vnc远程桌面分辨率,2种修改vnc远程桌面分辨率的方法...
- Nero刻录软件 nero8序列号
- 如何将qlv格式视频转换成mp4格式
- Ubuntu 18.04 安装搜狗拼音输入法出现乱码的
- java convexhull_android java opencv 2.4 convexhull convexdefect
- MATLAB科学绘图-MATLAB画图技巧与实例(一):常用函数
- php中date设置北京时区,PHP中设置时区方法小结
- K8S中的容器网络概述(编写中)
- idea中好用的git shelve changes和stash changes
- Cisco网站系统测试考试题目及答案
- 30天自制操作系统——第2天
- spark(kryo)、hadoop(writable)、jdk(serializable)-序列化
热门文章
- C++:图书管理系统
- 景观-活性污泥生态系统的构建及 氮磷转移规律的定量分析
- 看完这个你会掌握:50W年薪的AI算法工程师必备的工具
- 2016 UESTC Training for Data Structures J - 郭大侠与Rabi-Ribi 优先队列
- 25 致远OA修改页面参数值
- 微软服务器开启锐速,[Windows] 锐速 serverSpeeder 开心版
- Speedoffice(word)文档中如何添加评论
- AKH-0.66P系列保护型电流互感器
- 部署MySQL数据库到服务器
- [Python]编码声明:是coding:utf-8还是coding=urf-8呢