在 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_dateTable "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_dateTable "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 命令列出查看表中的列。