Показать таблицы в PostgreSQL - PullRequest
1543 голосов
/ 20 апреля 2009

Что эквивалентно show tables (из MySQL) в PostgreSQL?

Ответы [ 21 ]

2251 голосов
/ 20 апреля 2009

Из интерфейса командной строки psql отображаются все таблицы в текущей схеме:

\dt

Программно (или, конечно, из интерфейса psql):

SELECT * FROM pg_catalog.pg_tables;

Системные таблицы находятся в базе данных pg_catalog.

172 голосов
/ 16 февраля 2012

Войти как суперпользователь:

sudo -u postgres psql

Вы можете перечислить все базы данных и пользователей с помощью команды \l, (перечислить другие команды с помощью \?).

Теперь, если вы хотите просмотреть другие базы данных, вы можете изменить пользователя / базу данных с помощью команды \c, например \c template1, \c postgres postgres и использовать \d, \dt или \dS, чтобы просмотреть таблицы / представления / и т. Д. .

109 голосов
/ 21 апреля 2009

(для полноты)

Вы также можете запросить (стандарт SQL) информационную схему :

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');
64 голосов
/ 08 ноября 2017

Вы можете использовать интерактивный терминал PostgreSQL Psql для отображения таблиц в PostgreSQL.

1. Старт Psql

Обычно вы можете запустить следующую команду для входа в psql:

psql DBNAME USERNAME

Например, psql template1 postgres

Возможна одна ситуация: предположим, вы вошли в систему как root и не помните имя базы данных. Вы можете просто войти сначала в Psql, запустив:

sudo -u postgres psql

В некоторых системах команда sudo недоступна, вместо этого вы можете запустить любую из следующих команд:

psql -U postgres
psql --username=postgres

2. Показать таблицы

Теперь в Psql вы можете запускать такие команды, как:

  1. \? перечислить все команды
  2. \l список баз данных
  3. \conninfo отображение информации о текущем соединении
  4. \c [DBNAME] подключиться к новой базе данных, например, \c template1
  5. \dt список таблиц общедоступной схемы
  6. \dt <schema-name>.* список таблиц определенной схемы, например, \dt public.*
  7. \dt *.* список таблиц всех схем
  8. Затем вы можете запустить операторы SQL, например, SELECT * FROM my_table; (Примечание: оператор должен заканчиваться точкой с запятой ;)
  9. \q выход psql
50 голосов
/ 22 ноября 2013
  1. Первый вход в систему как пользователь postgres:

    sudo su - postgres

  2. подключиться к необходимому дб: psql -d databaseName

  3. \dt вернет список всех таблиц в базе данных, к которой вы подключены.

36 голосов
/ 02 июля 2012

Запуск psql с флагом -E будет повторять запрос, используемый для реализации \ dt и аналогичные:

sudo -u postgres psql -E

postgres=# \dt       
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Name", 
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
    AND n.nspname <> 'pg_catalog'
    AND n.nspname <> 'information_schema'
    AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;        
**************************
28 голосов
/ 15 ноября 2018

Войдите в систему как суперпользователь, чтобы вы могли проверить все базы данных и их схемы: -

sudo su - postgres

Затем мы можем попасть в оболочку postgresql, используя следующую команду: -

psql

Теперь вы можете проверить весь список баз данных, используя следующую команду: -

\l

Если вы хотите проверить размеры баз данных, также используйте: -

\l+

Нажмите q, чтобы вернуться.

Как только вы нашли свою базу данных, вы можете подключиться к этой базе данных с помощью следующей команды: -

\c database_name

После подключения вы можете проверить таблицы или схему базы данных: -

\d

Теперь, чтобы вернуться к оболочке, используйте: -

q

Теперь, чтобы увидеть детали таблицы, используйте: -

\d table_name

Чтобы вернуться к postgresql_shell, нажмите \q.

И чтобы вернуться обратно к терминалу, нажмите exit.

24 голосов
/ 02 ноября 2014

Если вы хотите видеть только список созданных вами таблиц, вы можете сказать только:

\dt

Но у нас также есть PATTERN, который поможет вам настроить, какие таблицы показывать. Чтобы показать все, включая pg_catalog схему, вы можете добавить *.

\dt *

Если вы делаете: \?

\ dt [S +] [PATTERN] список таблиц

21 голосов
/ 27 июня 2013

Сначала соединитесь с базой данных, используя следующую команду

\c database_name

И вы увидите это сообщение - You are now connected to database database_name. И они запускают следующую команду

SELECT * FROM table_name;

В database_name и table_name просто обновите свою базу данных и имя таблицы

21 голосов
/ 09 июня 2016

использовать только см. Таблицы

=> \dt

если хотите увидеть таблицы схем

=>\dt+

если вы хотите увидеть конкретные таблицы схем

=>\dt schema_name.* 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...