MYSQL-第七章

Posted EGG IXD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL-第七章相关的知识,希望对你有一定的参考价值。


7.1 表的加减法



表的加法-UNION(并集):

SELECT <列名>,……

FROM <表名>

UNION

SELECT <列名>,……

FROM <表名>

注:

集合运算符会除去重复记录。

作为运算对象的记录的列数必须相同。

作为运算对象的记录中列的类型必须一致(可用CAST转换类型)。

可以使用任何SELECT语句,但ORDER BY子句只能在最后使用一次。


包含重复行的集合运算-All选项:

SELECT <列名>,……

FROM <表名>

UNION ALL

SELECT <列名>,……

FROM <表名>

注:在集合运算符中使用ALL选项,可保留重复行。


选取表中公用部分-INTERSECT(交集):

注:mysql尚不支持INTERSECT,所以无法使用。


记录的减法——EXCEPT

注:MySQL还不支持EXCEPT,因此也无法使用



7.2 联结(以列为单位对表进行联结)



内联结——INNER JOIN:

SELECT < 别名 >.< 列名 >, < 别名>.< 列名 >, ...

FROM < 表名 > AS < 别名 > INNER JOIN  < 表的别名 > AS < 别名 >

ON < 别名 >.< 列名 > = < 别名>.< 列名 >

注:

进行联结时需要在FROM子句中使用多张表。

进行内联结时必须使用ON子句,并且要书写在FROM和WHERE之间。

使用联结时SELECT子句中的列需要按照“<表的别名>.<列名>”的格式进行书写。


外联结——OUTER JOIN:

SELECT < 别名 >.< 列名 >, < 别名>.< 列名 >, ...

FROM < 表名 > AS < 别名 > OUTER JOIN  < 表的别名 > AS < 别名 >

ON < 别名 >.< 列名 > = < 别名>.< 列名 >

注:

外联结选取出单张表中全部的信息。

外联结中使用LEFT、 RIGHT来指定主表。使用二者所得到的结果完全相同。使用 LEFT 时 FROM 子句中写在左侧的表是主表,使用 RIGHT时右侧的表是主表。


3张以上的表的联结:

SELECT < 别名 >.< 列名 >, < 别名>.< 列名 >, ...

FROM < 表名 > AS < 别名 > INNER JOIN  < 表的别名 > AS < 别名 >

ON < 别名 >.< 列名 > = < 别名>.< 列名 >

INNER JOIN  < 表的别名 > AS < 别名 >

ON < 别名 >.< 列名 > = < 别名>.< 列名 >;

注:想要把联结的表增加到 4 张、 5 张……使用 INNER JOIN 进行添加的方式也是完全相同的。


交叉联结——CROSS JOIN(笛卡儿积):

SELECT < 别名 >.< 列名 >, < 别名>.< 列名 >, ...

FROM < 表名 > AS < 别名 > CROSS JOIN   < 表的别名 > AS < 别名 >;

注:

交叉联结是对两张表中的全部记录进行交叉组合,因此结果中的记录数通常是两张表中行数的乘积。

交叉联结时无法使用内联结和外联结中所使用的 ON 子句。

交叉联结结果没有价值,结果行多,需要大量运算时间和高性能设备支持。




end




以上是关于MYSQL-第七章的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL-第七章

《mysql必知必会》学习_第七章_20180730_欢

日志分析 第七章 安装grafana

MySQL学习之第七章-JDBC

MySQL比知必会第七章 数据过滤

第七章MYSQL连接查询