PostgreSQL Tutorial: Describe Table

August 7, 2023

Summary: in this tutorial, you will learn how to use the psql tool and information_schema to describe tables in PostgreSQL.

Table of Contents

If you have been using MySQL, you typically use the DESCRIBE statement to find the information on a table.

PostgreSQL does not support the DESCRIBE statement. However, you can query the information on columns of a table in a couple of ways.

1) PostgreSQL DESCRIBE TABLE using psql

First, connect to PostgreSQL server using the psql tool:

$ psql -U postgres -W

Second, enter the password for the postgres user:

Password:
...
postgres=#

Third, switch to the database that you want to work with e.g., dvdrental

postgres=# \c dvdrental
Password for user postgres:
You are now connected to database "dvdrental" as user "postgres".

Finally, issue the command \d table_name or \d+ table_name to describe a table. The following example shows the information of the city table:

img

The command issued a lot of information on the structure of the city table. In addition, it also returned indexes, foreign key constraints, and triggers.

2) PostgreSQL DESCRIBE TABLE using information_schema

The information_schema.columns catalog contains the information on columns of all tables.

To get information on columns of a table, you query the information_schema.columns catalog. For example:

SELECT 
   table_name, 
   column_name, 
   data_type 
FROM 
   information_schema.columns
WHERE 
   table_name = 'city';

img

In this tutorial, you have learned how to return information on a structure of a table using the psql tool and information_schema.