openGauss学习笔记46 openGauss 高级数据管理子查询

openGauss学习笔记-46 openGauss 高级数据管理-子查询46.1 SELECT语句中的子查询使用46.2 INSERT语句中的子查询使用46.3 UPDATE语句中的子查询使用46.4 DELETE语句中的子查询使用

openGauss学习笔记-46 openGauss 高级数据管理-子查询

子查询或称为内部查询,嵌套查询,指的是在数据库查询的WHERE子句中嵌入查询语句,相当于临时表。一个SELECT语句的查询结果能够作为另一个语句的输入值。

子查询可以与SELECT,INSERT,UPDATE和DELETE语句一起使用。

以下是子查询必须遵守的几个规则:

  • 子查询必须用括号括起来。

  • 子查询在SELECT子句中只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较。

  • ORDER BY不能用在子查询中,虽然主查询可以使用ORDER BY。可以在子查询中使用GROUP BY,功能与ORDER BY相同。

  • 子查询返回多于一行,只能与多值运算符一起使用,如IN运算符。

  • BETWEEN运算符不能与子查询一起使用,但是,BETWEEN可在子查询内部使用。

46.1 SELECT语句中的子查询使用

SELECT语句在子查询返回的数据中进行查询。基本语法如下:

SELECT column_name [, column_name ]
FROM   table1 [, table2 ]
WHERE column_name OPERATOR
     (SELECT column_name [, column_name ]
     FROM table1 [, table2 ]
     [WHERE]);