PostgreSQL By Example: Show Tables with PSQL

postgres show table, psql show table, postgres list tables

Navigating your PostgreSQL database requires a keen understanding of its structure, including how to show tables using the command line interface, psql. In this guide, we’ll walk you through this crucial task, demonstrating how to easily and efficiently display and understand your database tables.

Understanding Schemas & Tables in PostgreSQL

PostgreSQL, often simply called Postgres, is a powerful, open-source object-relational database system. It uses and extends the SQL language combined with many features that safely store and scale the most complicated data workloads. Databases in PostgreSQL are where all data is stored, but to organize and manage this data effectively, PostgreSQL uses schemas. A schema in PostgreSQL is a namespace that contains named database objects such as tables, views, indexes, data types, functions, and operators.

Tables, the core focus of database management, are organized within these schemas. Understanding how schemas work is crucial for effective database administration and development, as they help in organizing data into logical groups and controlling access to data based on user roles. This organization is essential for managing permissions, simplifying database maintenance, and enhancing data access speed and efficiency.

How to Show Tables in PostgreSQL

This section covers the primary methods to list tables in PostgreSQL, utilizing the psql command-line interface and SQL queries.

See also  PostgreSQL By Example: Reload pg_hba.conf

Using the psql Command-line Interface

postgresql show tables

The psql tool is PostgreSQL’s interactive terminal allowing direct communication with the database server. To list all tables in the current database, you can use the \dt command. Here’s how:

  1. Open your terminal or command prompt.
  2. Connect to your PostgreSQL database with the command: psql -U username -d database_name, replacing username with your PostgreSQL username and database_name with the name of your database.
  3. Once connected, execute the \dt command to display all tables in the database. If you want to include tables from all schemas, use \dt *.*.

Querying with SELECT Statement

For a more detailed view or to query specific information about tables, you can use the SELECT statement with the pg_tables system catalog. Here’s an example query:

SELECT tablename, schemaname FROM pg_tables WHERE schemaname = 'public';

This query lists all tables within the ‘public’ schema, showing their names and the schema they belong to. You can modify the WHERE clause to filter the results based on your needs, such as showing tables from a different schema.

Working with Schemas

database schema

In PostgreSQL, schemas are crucial in organizing and managing database objects, such as tables, views, and functions. A schema is essentially a namespace that allows you to group these objects under a common name, which is particularly useful in multi-user or multi-application environments to avoid naming conflicts and manage access permissions efficiently.

Listing Tables in a Specific Schema

To list tables within a specific schema, you can use the \dt command in the psql command-line interface, followed by the schema name and a period. For example, to list all tables in a schema named “myschema,” you would use:

\dt myschema.*

This command displays all tables that belong to “myschema.” If you’re interested in viewing tables across all schemas, simply use \dt *.*.

Querying Tables Across Different Schemas

See also  PostgreSQL:Physical vs Logical Replication (w/ TL;DR)

You can also query information about tables across different schemas using SQL queries. For instance, to find tables in a particular schema, you can use a SELECT statement against the pg_tables system catalog, specifying the schema name in the WHERE clause:

SELECT tablename FROM pg_tables WHERE schemaname = 'myschema';

This query returns the names of all tables within “myschema.” You can adjust the schemaname condition to query tables in other schemas.


How do I list all tables in PostgreSQL?

Use the \dt command in the psql interface to list all tables in the current database. For a more detailed view, query the pg_tables system catalog.

Can I see tables in a specific schema?

Yes, use \dt schemaname.* in psql to list tables in a specific schema, or query pg_tables with a WHERE clause specifying the schema name.

What if I want to list tables from all schemas?

Use \dt *.* in the psql command-line interface to list tables from all schemas in the database.

How can I find the schema of a specific table?

Query the pg_tables system catalog, selecting the schemaname column where tablename matches your table’s name.

Support us & keep this site free of annoying ads.
Shop or Donate with Paypal

Leave a Comment