在 PostgreSQL 中查看表的定义或结构
本文介绍了在 PostgreSQL 查看数据表的定义或结构的两种方法。
PostgreSQL 提供了两种方法查看一个现有的表的定义或者结构:
- 在
psql
工具中使用\d
或者\d+
列出当前数据库中的所有的表。 - 从
information_schema.columns
中查询表中的列。
使用 \d
查看表的信息
本实例演示了使用 psql
工具登录数据库并查看表信息的详细步骤。请按照如下步骤进行:
-
使用 postgres 用户登录 PostgreSQL 服务器:
[~] psql -U postgres psql (14.4) Type "help" for help.
注意:您也可以使用其他任何具有相应的数据库权限的用户登录。
-
使用以下语句选择
testdb
数据库:\c testdb;
如果还未创建数据库,请先运行如下语句:
CREATE DATABASE testdb;
-
以下语句使用
\d
命令查看test_date
表的结构,如下:\d test_date
Table "public.test_date" Column | Type | Collation | Nullable | Default ------------+---------+-----------+----------+------------------------------ id | integer | | not null | generated always as identity date_value | date | | not null | CURRENT_DATE Indexes: "test_date_pkey" PRIMARY KEY, btree (id)
您可以看到,
\d
输出了表的名字、表中的列,表中的约束等信息。 -
如果要查看更多关于
test_date
表的信息,请使用\d+
命令,如下:\d+ test_date
Table "public.test_date" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description ------------+---------+-----------+----------+------------------------------+---------+-------------+--------------+------------- id | integer | | not null | generated always as identity | plain | | | date_value | date | | not null | CURRENT_DATE | plain | | | Indexes: "test_date_pkey" PRIMARY KEY, btree (id) Access method: heap
您可以看到,
\d+
的输入比\d
输出多了Compression
,Stats target
和Description
列。
从 information_schema 中查看表中的所有列
information_schema
是一个系统级的 Schema, 其中提供了一些视图可以查看表、列、索引、函数等信息。
该 information_schema.columns
目录包含有关所有表的列的信息。
以下语句从 information_schema.columns
中查询 test_date
表的所有的列:
SELECT
table_name,
column_name,
data_type,
column_default
FROM
information_schema.columns
WHERE
table_name = 'test_date';
table_name | column_name | data_type | column_default
------------+-------------+-----------+----------------
test_date | id | integer |
test_date | date_value | date | CURRENT_DATE
(2 rows)
以上语句返回了 test_date
表的所有的列的信息,包括 列名,数据类型,默认值。
结论
PostgreSQL 提供了两种方法查看一个现有的表的定义或者结构:
- 在
psql
工具中使用\d
或者\d+
列出当前当前数据库中的所有的表。 - 从
information_schema.columns
中查询表中的列。
在 MySQL 中,您可以使用 DESCRIBE
命令列出查看表中的列。