What\'s the equivalent to show tables
(from MySQL) in PostgreSQL?
You can use PostgreSQL's interactive terminal Psql to show tables in PostgreSQL.
1. Start Psql
Usually you can run the following command to enter into psql:
psql DBNAME USERNAME
For example, psql template1 postgres
One situation you might have is: suppose you login as root, and you don't remember the database name. You can just enter first into Psql by running:
sudo -u postgres psql
In some systems, sudo command is not available, you can instead run either command below:
psql -U postgres
psql --username=postgres
2. Show tables
Now in Psql you could run commands such as:
\?
list all the commands\l
list databases\conninfo
display information about current connection\c [DBNAME]
connect to new database, e.g., \c template1
\dt
list tables of the public schema\dt <schema-name>.*
list tables of certain schema, e.g., \dt public.*
\dt *.*
list tables of all schemasSELECT * FROM my_table;
(Note: a statement must be terminated with semicolon ;
)\q
quit psqlIf you only want to see the list of tables you've created, you may only say:
\dt
But we also have PATTERN
which will help you customize which tables to show. To show all including pg_catalog
Schema, you can add *
.
\dt *
If you do: \?
\dt[S+] [PATTERN] list tables
If you are using pgAdmin4 in PostgreSQL, you can use this to show the tables in your database:
select * from information_schema.tables where table_schema='public';
Login as a superuser so that you can check all the databases and their schemas:-
sudo su - postgres
Then we can get to postgresql shell by using following command:-
psql
You can now check all the databases list by using the following command:-
\l
If you would like to check the sizes of the databases as well use:-
\l+
Press q
to go back.
Once you have found your database now you can connect to that database using the following command:-
\c database_name
Once connected you can check the database tables or schema by:-
\d
Now to return back to the shell use:-
q
Now to further see the details of a certain table use:-
\d table_name
To go back to postgresql_shell press \q
.
And to return back to terminal press exit
.
To view foreign tables in psql, run \dE
\dt will list tables, and "\pset pager off" shows them in the same window, without switching to a separate one. Love that feature to death in dbshell.