MySQL联盟
MySQL Union是一种运算符,它使我们可以将来自多个SELECT查询的两个或多个结果组合到单个结果集中。它具有默认功能,该功能可从结果集中删除重复的行。 MySQL总是在第一个SELECT语句中使用列名,这将是结果集(输出)的列名。
MySQL Union必须遵循以下基本规则:
在所有要使用的表中,列的数量和顺序应相同。
数据类型必须与每个选择查询的相应位置兼容。
在不同的SELECT查询中选择的列名必须具有相同的顺序。
MySQL联盟语法
以下是MySQL中的Union运算符的语法:
我们可以通过以下直观表示来理解Union运算符:
在上图中,我们可以看到Union运算符删除了重复的行并仅返回唯一的行。
联合与加入
Union和Join子句是不同的,因为联合总是将结果集垂直组合,而联接将输出水平附加。我们可以通过以下视觉表示理解它:
MySQL Union示例
让我们创建两个表,看看Union运算符如何在MySQL中工作。
表:student1
表:student2
以下语句通过组合两个表来返回包含学生姓名和学科的结果集。当您执行此语句时,您会注意到,如果两个表中的学生姓名和科目具有相同的字段,则每个学生名将被列出一次。这是因为Union运算符仅返回不同的值。
执行完上面的语句后,我们将得到以下输出。
在上面的输出中,您可以看到MySQL Union使用的结果集的列名的标题与第一个SELECT语句的列名相同。有时您想用另一个标题来更改输出的列名的标题。我们可以通过在第一个SELECT语句中显式使用列别名来做到这一点。
以下示例对其进行了更清晰的说明:
它将给出以下输出,其中列名的标题分别从“ stud_name”更改为“ student_name”,将“ subject”更改为“ course”。
MySQL与ORDER BY的结合
如果要使用union运算符对查询返回的结果进行排序,则需要在最后一个SELECT语句中使用ORDER BY子句。我们可以将每个SQL SELECT查询放在括号中,然后在最后一个SELECT语句中使用ORDER BY子句,如以下示例所示:
成功执行上述语句后,我们将获得以下输出,该输出根据获得的分数将学生姓名和学科按升序排序:
MySQL联盟全部
该运算符通过将来自多个SELECT查询的两个或多个结果组合到一个结果集中来返回所有行。它不会从结果集中删除重复的行。
我们可以通过以下图形表示来理解它:
Union和Union All运算符之间的区别在于,“ Union”将来自两个或更多表的所有不同的行(消除重复的行)返回到单个输出中。相反,“全部联合”返回所有行,包括重复的行。
句法
以下是MySQL中的Union运算符的语法:
例
让我们看一下我们先前创建的表(student1和student2),并了解Union All运算符如何在MySQL中工作。
以下语句返回所有学生的姓名,科目和成绩,包括单个结果中所有重复的行。它还根据使用ORDER BY子句获得的分数以升序对学生姓名进行排序。
执行上面的语句时,将获得以下输出,其中包含结果集中存在的所有重复行:
0
相关文章:Python MySQL-数据库连接 Python MySQL-数据库连接 & […]...
MySQL创建表 MySQL创建表 表格用于以行和列的形式组织数据,并用于以结构格式存储和显示记录。它类似于电子表格应用程序中的 […]...
MySQL查询 MySQL查询 下面列出了用于创建数据库,使用数据库,创建表,插入记录,更新记录,删除记录,选择记录,截断表和 […]...
MySQL Grant特权 MySQL授予权限 MySQL具有向数据库的管理员和用户提供许多控制选项的功能。我们已经学习了如何在MySQL […]...
MySQL LIKE条件 MySQL LIKE条件 在MySQL中,LIKE条件用于执行模式匹配以找到正确的结果。它与WHERE子句结合 […]...
MySQL聚合函数 MySQL聚合函数 MySQL的聚合函数用于对多个值执行计算,并将结果返回为单个值,如所有值的平均值,所有值的 […]...
MySQL子查询 MySQL子查询 MySQL中的子查询是一个查询,它嵌套在另一个SQL查询中,并与各种运算符一起嵌入SELEC […]...
MySQL存储功能 MySQL存储函数 MySQL中的存储函数是一组执行某些任务/操作并返回单个值的SQL语句。它是MySQL中存 […]...