MySQL数据库连接查询

MySQL数据库连接查询  

连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算可以实现多个表查询。当查询数据时,通过连接操作查询出存放在多个表中的不同实体信息。当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询。如下将介绍多表之间的内连接查询、外连接查询以及复合条件连接查询。

内连接查询  

  内连接(inner join)使用比较运算符进行表间列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,并组合成新的记录。新建学生表、班级表,在两个表之间实现连接查询。其中tb_class中的主键id为tb_student的外键,表结构如下:

MySQL数据库连接查询

 

MySQL数据库连接查询

表中数据如下:

MySQL数据库连接查询

       

MySQL数据库连接查询

  表的连接查询语句为: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;

MySQL数据库连接查询

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

MySQL数据库连接查询

外连接查询  

  连接查询将查询多个表中相关联的行,内连接时,返回查询结果集合中的仅是符合查询条件和连接条件的行。但有时需要包含没有关联的行中数据,即返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左连接)、右表(右连接)或两个边表中的所有数据行。外连接分为左外连接和右外连接;

LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录

RIGHT JOIN(右连接):返回包括右表中所有记录和左表中连接字段相等的记录

LEFT JOIN 左连接

  左连接的结果包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果行中右表的所有选择列表列均为空值。如下是学生表和班级表,查询所有学生所在班级的名称,包括还没有给分配班级的学生。

MySQL数据库连接查询

     

MySQL数据库连接查询

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

MySQL数据库连接查询

MySQL数据库连接查询

RIGHT JOIN 右连接

  右连接是左连接的反向连接,将返回右表的所有行,如果右表的某行在左表中没有匹配项,左表将返回空值,如下图所示,tb_student表中没有计算机5班的学生,故计算机5班前学生名为空。

MySQL数据库连接查询

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1af482d8998e59b1f3b2d18ae29e839d.html