MySQL连接查询 内连接和外连接的区别
2017-04-03 21:59
211 查看
MySQL 连接查询
@ sunRainAmazing1.使用连接查询的场景
将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接); 进行数据的拼接(两张表的内容显示在一个结果表中 使用连接查询) 最终的结果是:记录数有可能变化,字段数一定会增加(至少两张表的合并) 意义:在用户查看数据的时候,显示的数据来自于多张表
连接查询的分类 4类
内连接 inner join
内连接 【掌握】 ---拼接查询结果 内部有联系,使用内连接 格式: [inner] join ----inner可省 结果: 从左表中取出每一条记录,去右表中与所有的记录进行匹配; 匹配必须是某个条件是左表中与右表中相同,才会保留结果,否则不保留; 基本语法: 左表 [inner] join 右表 on 左表.字段 = 右表.字段; 注意事项: 1、on 表示连接条件;条件字段代表相同的业务含义 (如 stu.cid 和 cla.id) 学生stu表中的班级cid 和 班级cla表中的id 2、内连接可以没有连接条件,没有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 数据库查询语句 左外连接 右外连接 和内连接区别
- 使用连接(JOIN)来代替子查询(Sub-Queries) mysql优化系列记录
- 连接查询_内连接/外连接/交叉连接_区别
- SQL操作,连接查询_左连接/右连接/全连接的区别 http://www.sqlzoo.cn/
- C/C++连接查询MYSQL
- 查询数据库当前用户连接信息(MySQL,Oracle)
- c与mysql连接和一个简单查询的例子
- php入门学习知识点一 PHP与MYSql连接与查询
- JAVA连接MYSQL,查询 ,添加,删除,语句
- 连接查询,左连接,右连接和全连接的区别.
- mysql多表连接查询inner join, left join , right join ,full join ,cross join
- 连接查询_内连接/外连接/交叉连接_区别(转载)
- JSP连接mysql进行查询
- JSP连接MYSQL查询编码问题解决
- perl连接查询mysql
- 连接查询_左连接/右连接/全连接的区别
- mysql基本连接,mysqli,pdo,adodb,pearDB之间的区别,速度测试
- mysql与mssql连接字符串的区别。
- 关于SQLServer和MySQL 查询分页语句区别