从数据库中检索数据的过程或命令叫做查询。在 SQL 里SELECT命令用于指定查询。 SELECT
命令的一般语法是
[WITH with_queries
] SELECT select_list
FROM table_expression
[sort_specification
]
下面几个小节描述选择列表、表表达式和排序声明的细节。WITH
查询等高级特性将在最后讨论。
一个简单类型的查询的形式:
SELECT * FROM table1;
假设有一个表叫做table1
,这条命令将table1
中检索所有行和所有用户定义的列(检索的方法取决于客户端应用。例如,psql程序将在屏幕上显示一个 ASCII 形式的表格, 而客户端库将提供函数来从检索结果中抽取单个值)。 选择列表声明*
意味着所有表表达式提供的列。 一个选择列表也可以选择可用列的一个子集或者在使用它们之前对列进行计算。例如,如果table1
有叫做a
、b
和c
的列(可能还有其他),那么你可以用下面的查询:
SELECT a, b + c FROM table1;
(假设b
和c
都是数字数据类型)。 参阅第 7.3 节获取更多细节。
FROM table1
是一种非常简单的表表达式:它只读取了一个表。通常,表表达式可以是基本表、连接和子查询组成的复杂结构。 但你也可以省略整个表表达式而把SELECT
命令当做一个计算器:
SELECT 3 * 4;
如果选择列表里的表达式返回变化的结果,那么这就更有用了。例如,你可以用这种方法调用函数:
SELECT random();
视图administrable_role_authorizations标识当前用户对其有管理选项的所有角色。表36.2.administrable_role_authorizations 列列...
目录pg_foreign_table包含关于外部表的辅助信息。一个外部表和普通表一样,主要由一个pg_class项表示。它的pg_foreign_table项包...
目录pg_opclass定义索引访问方法的操作符类。每一个操作符类定义了一种特定数据类型和一种特定索引访问方法的索引列的语义。一个...
视图pg_locks提供了数据库服务器上活动进程中保持的锁的信息。更多锁的讨论参见第13章。 pg_locks中对每一个活动可锁对象、请求...
视图pg_roles提供了关于数据库角色的信息。这是pg_authid的一个公共可读视图,它隐去了口令域。表51.82.pg_roles Columns列类型...