PostgreSQL EXCEPT PostgreSQL INTERSECT MongoDB 与 PostgreSQL PostgreSQL EXCEPT 在本节中,我们将了解PostgreSQL EXCEPT 运算符的工作原理,该运算符用于返回初始命令中未出现在第二个命令的输出中的行。 以及带有单个和多个Expression 以及order by 子句的PostgreSQL EXCEPT运算符的示例。 什么是 PostgreSQL EXCEPT运算符? 在PostgreSQL 中,EXCEPT运算符用于通过将两个或多个命令的输出相等来检索行,就像 UNION 和INTERSECT运算符一样。 换句话说,我们可以说PostgreSQL EXCEPT运算符从左侧(第一个 SELECT)命令检索不同的行,这些行不在右侧(第二个 SELECT)命令的结果集中。并且所有的SELECT 命令都会定义一个数据集。 该EXCEPT运算符会从最初的数据集返回的所有记录,然后从第二个数据集消除所有值。 下图表示由 EXCEPT 运算符生成的最终输出。 上图中,芥末黄色区域代表执行EXCEPT命令后检索到的记录。并且这些记录存在于圆 P 中而不是圆 Q 中。 EXCEPT 命令中的每个SELECT命令必须具有相似数量的具有相似数据类型的输出字段。 PostgreSQL EXCEPT 运算符的语法 PostgreSQL EXCEPT运算符的说明如下: SELECT expression1, expression2, ... expression_n FROM table P [WHERE conditions] EXCEPT SELECT expression1, expression2, ... expression_n FROM table Q [WHERE conditions]; 在上述语法中,我们有以下参数,我们在下表中讨论了这些参数: 范围 描述 expression1, expression2, expression_n 这些是我们想要在两个 SELECT 命令之间进行比较的列或计算。 并且它们不需要在每个 SELECT 命令中匹配字段,而等效列必须包含等效数据类型。 Tables 这些是我们想要从中获取记录的表。 WHERE conditions 这些是要对值进行排序必须遇到的条件。它是一个可选参数。 PostgreSQL EXCEPT运算符示例 要了解PostgreSQL EXCEPT运算符的工作原理**,我们将采用PostgreSQL UNION 教程中创建的top_rated_cars和most_reliable_cars**表: 要查看top_rated_cars表中的数据,我们将使用SELECT命令,如下面的命令所示: SELECT * FROM top_rated_cars; 输出 执行上述命令后,我们将得到以下结果: 以下命令返回most_reliable_cars表中的数据: SELECT * FROM most_reliable_cars; 输出 执行上述命令后,我们将得到以下输出: 带有单个表达式的 PostgreSQL EXCEPT 示例 在下面的示例中,我们将使用一个 EXCEPT 运算符,其中包含一个具有相似数据类型的字段: SELECT Car_name FROM top_rated_cars EXCEPT SELECT Car_name FROM most_reliable_cars; 输出 执行上述命令后,我们将得到以下输出: 在上面的示例中,EXCEPT 运算符检索top_rated_cars\表中的所有car_name值,而不是most_reliable_cars\表中的值。 这意味着如果car_name值存在于top_rated_cars\表中并且也存在于most_reliable_cars 中\,则car_name值将不会出现在 EXCEPT 命令输出中。 PostgreSQL 示例,除了各种表达式 我们现在将看到一个示例示例来了解 PostgreSQL EXCEPT运算符处理多列的情况。 在下面的示例中,我们将使用PostgreSQL 中的except 运算符来检索各种列。 为此,我们从组织数据库中获取员工\和部门\表,该数据库是我们在 PostgreSQL 教程的前面部分创建的。 SELECT address, phone FROM employee WHERE employee_name<>'ross' EXCEPT SELECT address, phone FROM department WHERE address<>'London'; 输出 执行上述命令后,我们将得到以下输出,其中显示了员工\表中地址和电话值与部门表的地址和电话值不匹配的记录。 在上面的示例中,Except 操作员命令将检索员工表的值,其地址、电话 值与*部门表的地址和电话列*值不匹配。 PostgreSQL 除了 ORDER BY 子句 如果我们想对 EXCEPT 运算符的输出进行排序,我们将ORDER BY 子句放在查询列表的最终命令中。 PostgreSQL 的语法,除了 ORDER BY 子句 下图用于表示 PostgreSQL 除了带有 order by 子句: SELECT select_list FROM table1 EXCEPT SELECT select_list FROM table2 ORDER BY sort_expression; 带有 Order by 子句的 PostgreSQL EXCEPT 示例 在以下示例中,我们使用与top_rated_car\和most_reliable_cars\类似的表来了解 EXCEPT 运算符与 ORDER BY 子句的用法: SELECT * FROM top_rated_cars EXCEPT SELECT * FROM most_reliable_cars ORDER BY Car_name; 输出 执行上面的命令,该命令将显示排序后,我们会得到下面的结果集top_rated_cars升序表示由ORDER BY Car_name。而Car_name列字段都在#1输出的地方。 在上面的示例中,随后,两个SELECT命令之间的列名称不同。 通过它们在输出中的位置来引用ORDER BY子句中的列更有益。 概述 在PostgreSQL EXCEPT部分,我们学习了以下主题: 我们使用了PostgreSQL EXCEPT运算符来返回初始命令中未出现在第二个命令的输出中的行。 我们也了解了PostgreSQL的工作方式,除了**单和多**操作符 我们还使用了PostgreSQL 除了 ORDER By子句来对命令输出进行排序。 PostgreSQL INTERSECT MongoDB 与 PostgreSQL