原文地址:https://dwz.cn/6EgNf1bd连接是关系数据库模型的主要特点 。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等 。通过连接运算可以实现多个表查询 。当查询数据时,通过连接操作查询出存放在多个表中的不同实体信息 。当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询 。如下将介绍多表之间的内连接查询、外连接查询以及复合条件连接查询 。
作者:best.lei
内连接查询
内连接(inner join)使用比较运算符进行表间列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,并组合成新的记录 。新建学生表、班级表,在两个表之间实现连接查询 。其中tb_class中的主键id为tb_student的外键,表结构如下:

文章插图
表中数据如下:

文章插图

文章插图
表的连接查询语句为:SELECT tb_student.*,tb_class.name FROM tb_student,tb_class WHERE tb_student.classID=tb_class.id; 或 SELECT tb_student.*,tb_class.name FROM tb_student INNER JOIN tb_class ON tb_student.classID=tb_class.id;

文章插图
如果在一个连接查询中,涉及到的两个表都是同一个表,这种查询称为自连接查询,自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表 。如下是对tb_student表的查询,查询和id为1的学生为同一个班的同学:

文章插图
【Mysql数据库连接查询】外连接查询
连接查询将查询多个表中相关联的行,内连接时,返回查询结果集合中的仅是符合查询条件和连接条件的行 。但有时需要包含没有关联的行中数据,即返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左连接)、右表(右连接)或两个边表中的所有数据行 。外连接分为左外连接和右外连接;
- LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录
- RIGHT JOIN(右连接):返回包括右表中所有记录和左表中连接字段相等的记录
- LEFT JOIN 左连接

文章插图

文章插图
左连接语句为:SELECT tb_student.name,tb_class.name FROM tb_student LEFT OUTER JOIN tb_class ON tb_student.classID=tb_class.id;

文章插图

文章插图
- RIGHT JOIN 右连接

文章插图
子查询
子查询是指一个查询语句嵌套在另一个查询语句内部的查询,在SELECT子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表 。子查询中常用的操作符有ANY(SOME)、ALL、IN、EXISTS 。子查询可以添加到SELECT、UPDATE和DELETE语句中,而且可以进行多层嵌套 。子查询中也可以使用比较运算符,如“<”、“<=”、“>”、“>=”和“!=”等 。本节将介绍如何在SELECT语句中嵌套子查询 。
- 带ANY、SOME关键字的子查询
推荐阅读
- mysql 数据分析如何实现日报、周报、月报和年报?
- MySQL 触发器
- ThinkPHP 5.0添加mysql存session驱动
- 将Php-fpm docker容器与Mongo DB docker容器连接
- 公司如何选择数据库?DynamoDB、Hadoop和MongoDB 大比拼
- Mysql 为什么要选择 B+Tree
- Mysql通讯协议分析
- 分享mysql配置文件my.cnf一键生成器
- Mysql中ACID的原理?
- 站长之家百度关键词数据库的更新对SEO有什么影响
