Postgres 支持 SELECT 语句从数据库中的零个或多个表或视图中检索记录。
SELECT [ * | column1, column2,... | expression ]
[ FROM [table1 [, table2,..] [,view1, view2..]
[ WHERE condition ]
[ GROUP BY [ column1 [,column2,..]]]
[ HAVING condition ]
[ WINDOW window_name AS ( window_definition )]
[ ORDER BY expression [ ASC | DESC | USING operator ] ]
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES } ]
[ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name] [ NOWAIT | SKIP LOCKED ]]
使用 SELECT 语句,
- 在 SELECT 子句后指定要检索其数据的一个或多个列名。多个列名应以逗号分隔。
- 还可以选择使用 SELECT 子句指定表达式。
- 在 SELECT 之后指定星号 (*) 以选择所有列。选择列表还可以包含表达式或文字值。
- 在 FROM 子句后指定一个或多个要从中选择数据的表名。
- (可选)使用 WHERE、GROUP BY、HAVING、ORDER BY、WINDOW、LIMIT、OFFSET、FETCH、FOR 子句。
注意:
SQL 关键字不区分大小写,因此您可以编写 SELECT、Select 或 select。出于格式化目的,我们将所有 SQL 关键字保留为大写字母。
让我们看看如何使用 SELECT 语句从以下 employee
表中获取数据。
以下 SELECT 语句从 employee
表的单个列中检索数据。
SELECT first_name FROM employee;
下面显示了 pgAdmin 中的结果。
以下 SELECT 语句从 employee
表的多个列中检索数据。
SELECT emp_id, first_name, last_name FROM employee;
下面显示了 pgAdmin 中的结果。
以下 SELECT 语句使用 * 从 employee
表的所有列中检索数据。
SELECT * FROM employee;
下面显示了 pgAdmin 中的结果。
带有 SELECT 子句的表达式
您可以在 SELECT 语句中使用该表达式。以下使用 || 连接first_name 和last_name 列操作员。
SELECT first_name || ' ' || last_name FROM employee;
下面显示了 pgAdmin 中的结果。
它还可以返回基本数学运算的结果。
SELECT 6 * 4;
列别名
别名允许您为 SELECT 语句中的列或表达式分配临时名称。别名使 SELECT 查询的结果集中的列更具可读性。列别名仅在查询期间存在。
以下查询将结果中的first_name 列重命名为Name,将last_name 列重命名为Surname。
SELECT first_name AS Name, last_name Surname FROM employee;
下面显示了 pgAdmin 中的结果。
使用双引号 (") 包含空格或更改列别名的大小写,如下所示。
SELECT first_name AS "First Name", last_name "Surname"
FROM employee;
下面显示了 pgAdmin 中的结果。
因此,您可以使用 SELECT 语句从表中检索数据。