PostgreSQL Union psql commands PostgreSQL INTERSECT PostgreSQL Union 在本节中,我们将了解PostgreSQL UNION 运算符的工作原理,该运算符用于将各种命令的输出组合成单个输出。 而例子中的PostgreSQL的联合指挥与PostgreSQL的工会所有使用的条款顺序。 什么是 PostgreSQL UNION 运算符? 在PostgreSQL 中,UNION 运算符将一个或多个 SELECT 命令组合成一个输出。 PostgreSQL 联合运算符的语法 PostgreSQL 联合运算符的语法如下,它帮助我们将两个命令的输出关联起来: SELECT select_list_1 FROM table_expresssion_1 UNION SELECT select_list_2 FROM table_expression_2 如果我们想在 UNION 运算符的帮助下组合两个命令的输出,那么这些命令必须遵循以下说明: 指定的数据类型必须兼容。 两个命令的选择列表中的列顺序和数字必须相似。 注意:UNION 运算符还用于从组合数据集中删除所有匹配的行。我们可以使用 UNION ALL 代替 UNION 来重新收集重复的行。 在下图中,我们可以了解UNION Operator的工作: 带有 ORDER BY 子句的 PostgreSQL UNION 正如我们在上面了解到的,UNION 运算符可以将来自初始命令输出的行放在附加命令输出的行之前、之后或之间。 我们可以在第二个命令中使用ORDER BY 子句对最终输出中的行进行排序。 该UNION运算符经常使用的数据来自未归费力相同的表结合起来。 要了解PostgreSQL Union 运算符的工作原理,首先,我们将借助以下命令设置示例表: 在下面的命令中,我们将使用CREATE命令的帮助创建两个表作为top_rated_cars和most_reliable_cars,并使用INSERT命令插入一些值。 要将top_rated_cars创建到组织数据库中,我们使用CREATE命令。 但是,在创建top_rated_cars表之前,如果组织数据库中已经存在类似的表,我们将使用DROP TABLE**命令。 DROP TABLE IF EXISTS top_rated_cars; 输出 执行上述命令后,我们会得到如下窗口信息:top_rated_cars\表不存在。 该top_rated_cars\表包含各列如Car_name,launch_year列。 CREATE TABLE top_rated_cars( Car_name VARCHAR NOT NULL, launch_year SMALLINT ); 输出 执行上述命令时,我们将收到以下消息:top_rated_cars\表已成功创建到组织数据库中。 成功创建top_rated_cars\表后,我们将在INSERT命令的帮助下向其中输入一些值。 INSERT INTO top_rated_cars(Car_name,launch_year) VALUES ('Chevrolet Silveradon',2020), ('Nissan Rogue',2020), ('Mercedes-Benz GLB',2019); 输出 执行上述命令后,我们会得到如下消息窗口:三个值已经成功插入到top_rated_cars\表中。 要将most_reliable_cars创建到组织数据库中,我们使用CREATE命令。 但是,在创建most_reliable_cars表之前,如果组织数据库中已经存在类似的表,我们将使用DROP TABLE命令。 DROP TABLE IF EXISTS most_reliable_cars; 输出 执行上述命令后,我们会得到如下窗口信息:most_reliable_cars\表不存在。 表most_reliable_cars\包含各种列,例如Car_name、launch_year列。 CREATE TABLE most_reliable_cars ( Car_name VARCHAR NOT NULL, launch_year SMALLINT ); 输出 执行上述命令时,我们将收到以下消息,其中显示most_reliable_cars\表已成功创建到Organization数据库中。 成功创建most_reliable_cars表后,我们将在INSERT命令的帮助下向其中输入一些值。 INSERT INTO most_reliable_cars(Car_name,launch_year) VALUES ('Toyota Prius Prime',2020), ('Nissan Rogue',2020), ('Kia Forte',2019); 输出 执行上述命令后,我们会得到如下消息窗口,显示三个值已成功插入到most_reliable_cars表中。 如果我们想查看top_rated_cars表中的数据,我们将在下面的命令中使用SELECT命令。 SELECT * FROM top_rated_cars; 输出 执行上述命令后,我们将得到以下结果: 以下语句返回most_reliable_cars表中的数据: SELECT * FROM most_reliable_cars; 输出 执行上述命令后,我们将得到以下输出: PostgreSQL UNION 示例 让我们看一个示例来了解PostgreSQL Union命令的工作方式。 简单的 PostgreSQL UNION 示例 该UNION操作符是用来消除匹配的行。 在以下示例中,我们使用UNION 运算符合并来自两个表(top_rated_cars\和most_reliable_cars\)的数据。 SELECT * FROM top_rated_cars UNION SELECT * FROM most_reliable_cars; 输出 执行上述命令后,我们将得到以下输出,其中包含输出中的五行,因为UNION 运算符消除了一个匹配的行。 PostgreSQL 联合所有 UNION ALL操作者联合来自多个输出SELECT命令而不消除重复的行。 UNION ALL 运算符涉及每个SELECT 命令,以在相同数据类型的输出中具有相同数量的字段。 PostgreSQL UNION ALL 的语法 PostgreSQL UNION ALL 的语法如下: SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION ALL SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)]; 我们有以下参数,用于上图中: 参数 解释 expression_1, expression_2, ... expression_n 这些是我们要检索的计算或列。 Tables table 参数用于从各种表中检索记录。 Where condition 这些是保存值必须满足的条件。 注意:在上述语法中,两个表达式必须具有相同数量的表达式。 PostgreSQL UNION ALL 示例 在下面的示例中,我们将使用UNION ALL运算符来组合top_rated_cars\和most_reliable_cars\表的输出。 SELECT * FROM top_rated_cars UNION ALL SELECT * FROM most_reliable_cars; 输出 执行上述命令后,我们将得到以下输出,其中保留了匹配的行。 带有 ORDER BY 子句的 PostgreSQL UNION ALL 所述的PostgreSQL UNION操作者能够用ORDER BY子句订购的命令输出使用沿。 带有 ORDER BY 子句的 PostgreSQL UNION ALL 示例 在下面的命令中,我们使用带有 ORDER 子句的PostgreSQL UNION ALL对 UNION 运算符返回的输出进行排序。 我们在最后一个命令的末尾使用 ORDER BY 子句,如下例所示: SELECT * FROM top_rated_cars UNION ALL SELECT * FROM most_reliable_cars ORDER BY Car_name; 输出 执行上述命令后,我们将得到以下结果,显示两个表中的所有数据。 注意:如果我们在每个命令的末尾使用 ORDER BY 子句,组合输出将不会按我们预期的那样排序。 因为当 UNION 运算符合并所有命令的排序结果集时,它不保证最终输出中行的顺序。 概述 在 PostgreSQL UNION 部分,我们学习了以下主题: 我们使用PostgreSQL UNION 和 UNION ALL将来自各种命令的输出合并为一个输出。 我们还使用带有 ORDER By子句的PostgreSQL UNION ALL来对命令输出进行排序。 psql commands PostgreSQL INTERSECT