在 PostgreSQL 中,信息模式(Information Schema)是一个包含了关于数据库对象(如表、列、索引等)的元数据的标准化视图集合。信息模式提供了一种标准的方式来查询和获取数据库对象的元数据,使得在不同数据库系统之间移植查询更为方便。

Information Schema 中的表存储了关于数据库的元数据信息,这些表通常以 information_schema 作为表的命名空间。以下是一些常见的 Information Schema 表:

1. information_schema.tables: 包含了关于数据库中所有表的信息,如表的名称、所属的模式、类型等。

2. information_schema.columns: 存储了表的列信息,包括列名、数据类型、是否为主键等。

3. information_schema.schemata: 包含了所有模式(Schema)的信息,如模式的名称、所属的数据库等。

4. information_schema.views: 包含了关于所有视图的信息,如视图的名称、定义等。

5. information_schema.columns: 存储了数据库中所有列的信息,包括列名、数据类型、是否为主键等。

使用 Information Schema 可以执行标准的 SQL 查询,以获取关于数据库对象的信息。例如,以下是一个查询,用于获取数据库中所有表的名称:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';

在上述查询中,information_schema.tables 表用于获取关于数据库中所有表的信息,通过过滤条件 table_schema = 'public',只选择了位于 public 模式下的表。

使用 Information Schema 有助于编写与数据库系统无关的查询,因为它提供了一种标准的、与特定数据库系统无关的查询接口。然而,在某些情况下,直接访问系统表(如 pg_tables、pg_columns)可能更为直观和高效。


转载请注明出处:http://www.zyzy.cn/article/detail/8420/PostgreSQL