教你快速掌握MySQL数据库——连接查询语句 内连接

Posted 鱼仔没人爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你快速掌握MySQL数据库——连接查询语句 内连接相关的知识,希望对你有一定的参考价值。

连接查询

查询信息的来源如果来自多张表,则必须对这些表进行连接查询。连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。

重点掌握

1.进行连接查询时返回的结果集,是两个表中所有相匹配的数据,而舍弃不匹配的数据,这种连接称为内连接

2.在自然连接中两张表的所有名称相同的列都将被比较,并且在结果集中吧重复的列去掉,结果集中两张表中名称相同的列仅出现一次

3.如果查询的信息来源于多张表,则可通过两两相连方式建立多表连接查询

4.左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为null

5.综合使用连接查询聚合函数分组查询可以实现很多复杂的查询需求

连接查询分为内连接外连接

一.内连接查询

1.概要:内连接是应用程序中非常常见的连接操作,它一般是默认的连接方式

2.内连接分三种:交叉连接、相等连接和自然连接

内连接的语句如下:

SELECT fieldlist FROM table1 [INNER] JOIN table2 ON table1.column1=table2.column2
[where condition]

(1)fieldlist:table1表和table2表中的字段列名。如果取用两张表所有列,则可用“*”代替,此时会出现连接依据列重复,即table1表的column1与table2表的column2为重复列

(2)table1 [INNER] JOIN table2:将table1表与table2进行内连接,INNER可省略

(3)table1.column1=table2.column2:连接条件,其中column1和column2为table1表与table2表的关系列,通常它们为外键列和主键列

(4)”where condition“可省略,他为查询条件表达式

注意:连接依据的列可能包含null值,null值不与任何值匹配(甚至和它本身)

示例

1、查询每件商品的商品名和分类名

 

SQL语句如下:

SELECT goods.GoodsName 商品,type.TypeName 分类 FROM goods,type WHERE goods.TypeID = type.TypeID

2、查询每个分类的分类名和有多少件商品

SQL语句如下:

SELECT type.TypeName 分类,count(*) 数量 FROM type,goods WHERE goods.TypeID = type.TypeID GROUP BY type.TypeName

 

以上是关于教你快速掌握MySQL数据库——连接查询语句 内连接的主要内容,如果未能解决你的问题,请参考以下文章

教你快速掌握MySQL数据库——连接查询语句 内连接

MySql表的内连和外连

快速掌握MySQL数据库中SELECT语句[2]

MySQL 表的内连和外连

MySQL基础中级进阶

阿里系统研发部数据库组教你一文搞懂 MySQL 单表查询的底层实现