MySQL5-连接查询
来源:互联网 发布:中国域名后缀 编辑:程序博客网 时间:2024/06/05 07:50
连接查询可以实现多个表的查询,一次取出多个表中的数据。
连接查询可分为四种:内连接,外连接,交叉连接,自然连接。
如果连接查询的不同表有同名字段,必须加表名或表名的别名来区分。
1.内连接[INNER] JOIN
数据库的默认查询方式,INNER可以省略不写。
从左表取出记录后,去匹配右表中的记录,如果满足条件则记录保留,否则舍弃。
语法:左表 INNER JOIN 右表 ON 左表.字段=右表.字段
ON后面跟的是条件,最终只保留满足条件的记录。可以用WHERE代替ON,但是ON效率更高。
2.外连接
以某张表为主,取表内所有记录,然后将每一条记录与另一张表进行连接,如果能匹配,则保留记录,如果不能匹配,则其他表的字段置空且保留记录(不管能不能匹配,主表对应的记录都会保留)。
外连接分为左连接(LEFT JOIN)和右连接(RIGHT JOIN)。
左连接和右连接可以互转,只要将左表和右表换位置,同时LEFT JOIN和RIGHT JOIN替换即可。
1.左连接
左表是主表,最终记录数至少不少于左表的记录数(匹配到多条记录时,最终记录数大于左表记录数)。
语法:左表 LEFT JOIN 右表 ON 左表.字段=右表.字段
2.右连接
右表是主表,最终记录数至少不少于右表的记录数(匹配到多条记录时,最终记录数大于右表记录数)。
语法:左表 RIGHT JOIN 右表 ON 左表.字段=右表.字段
3.交叉连接CROSS JOIN
没啥卵用。
交叉连接即笛卡儿积。最终得到表中所有记录的所有组合。
语法:左表 CROSS JOIN 右表
,等价于FROM 左表,右表
SELECT * FROM 左表 CROSS JOIN 右表;
4.自然连接NATURAL JOIN
实际项目很难保证字段名完全一致,所以一般不用。
系统用字段名作为匹配模式自动进行匹配。同名字段就是匹配条件。
自然连接分为自然内连接和自然外连接。
1.自然内连接
NATURAL INNER JOIN
默认就是自然内连接,INNER可以不写。
2.自然外连接
自然左外连接:NATURAL LEFT JOIN
自然右外连接:NATURAL RIGHT JOIN
3.用内/外连接模拟自然连接
LEFT/RIGHT/INNER JOIN USING(字段名);
- MySQL5-连接查询
- Mysql5.7常用查询
- QT4 连接 MySql5 (簡捷版)
- PHP 连接 mysql5 测试
- Java连接mysql5.0
- Delphi7连接mysql5数据库
- Delphi2006连接Mysql5.1
- SQLServer2012连接mysql5.5
- JDBC连接MySQL5.7.14
- JDBC连接MySQL5.7
- MYSQL5.6.17开启慢查询
- Mysql5 实现交叉表查询
- mysql5.7.10开启慢查询
- delphi7连接MySQL5的使用
- delphi中用dbexpress连接MySql5
- Qt4.8.5连接MySQL5.5
- Qt5连接Mysql5.7例子
- 设置mysql5.7远程连接
- 自动化登陆qq邮箱写信
- 蒟蒻养成记——简单的数组链表(1)
- C#类的属性遍历及属性值获取
- Java中配置文件的例子
- eventsystem源码分析 多线程框架
- MySQL5-连接查询
- 为什么add ax,1后 查看AX的数值没有改变???
- jQuery实现层叠式炫酷图片轮播组件
- 为什么在Python里推荐使用多进程而不是多线程?
- castep 编译安装说明
- cocos2d-x与ios内存管理分析(在游戏中减少内存压力)
- 【知识库】--mysql 不同系统的安装(195)
- spring boot(3)-Rest风格接口
- Android RSA加解密