Как перечислить все базы данных и таблицы с помощью psql?
Я пытаюсь изучить администрирование PostgreSQL и начал изучать, как использовать инструмент командной строки psql
.
Когда я вхожу в систему с помощью psql --username = postgres
, как мне перечислить все базы данных и таблицы?
Я пробовал \ d
, d
и dS +
, но ничего не указано. Я создал две базы данных и несколько таблиц с pgAdmin III, поэтому я знаю, что они должны быть перечислены.
7 ответов
Обратите внимание на следующие команды:
-
\ list
или\ l
: список всех баз данных -
\ dt
: список всех таблиц в текущей базе данных
Вы никогда не увидите таблицы в других базах данных, эти таблицы не будут видны. Вы должны подключиться к правильной базе данных, чтобы увидеть ее таблицы (и другие объекты).
Для переключения баз данных:
\ connect database_name
См. руководство по psql .
Здесь перечислены базы данных:
SELECT datname FROM pg_database
WHERE datistemplate = false;
Здесь перечислены таблицы в текущей базе данных
SELECT table_schema, имя_таблицы
FROM information_schema.tables
ORDER BY table_schema, table_name;
В Postgresql эти команды терминала перечисляют доступные базы данных
el @ defiant $ /bin /psql -h localhost --username = pgadmin --list
Или более простая команда:
psql -U pgadmin -l
Эти команды печатают это на терминале:
Список баз данных
Имя | Владелец | Кодировка | Составить | Ctype | Доступ к привилегии
----------- + ---------- + ---------- + ------------- + - ----------- + -----------------------
kurz_prod | pgadmin | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 |
pgadmin | pgadmin | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 |
postgres | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 |
template0 | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | = c /postgres +
| | | | | Postgres = CTC /Postgres
шаблон1 | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | = c /postgres +
| | | | | Postgres = CTC /Postgres
(5 строк)
Это доступные базы данных.
В PSQL эти команды перечисляют доступные таблицы
Вы должны указать базу данных, прежде чем вы сможете перечислить таблицы в этой базе данных.
el @ defiant $ psql -U pgadmin -d kurz_prod
Это приведет вас к терминалу psql:
kurz_prod = #
Используйте команду \ d
, чтобы показать все таблицы, представления и последовательности
kurz_prod = # \ d
Отпечатки:
Список отношений
Схемы | Имя | Тип | владелец
-------- + --------- + ---------- + ---------
общественные | mytable | стол | pgadmin
общественные | тестирование | последовательность | pgadmin
(2 строки)
Затем, чтобы выйти из терминала psql, введите \ q
и нажмите клавишу ввода. Или Ctrl-D
делает то же самое. Это таблицы в этой базе данных.
\ l
также является сокращением для \ list
. Существует довольно много команд косой черты, которые вы можете перечислить в psql, используя \?
.
Чтобы получить дополнительную информацию о списке базы данных и таблиц, вы можете:
\ l +
для отображения баз данных
Список баз данных
Имя | Владелец | Кодировка | Составить | Ctype | Права доступа | Размер | Табличное пространство | Описание
------------ + ---------- + ---------- + ------------- + - ------------ + ----------------------- + --------- + --- --------- + ---------------------------------------- ----
pgbench | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | | 29 МБ | pg_default |
postgres | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | | 6073 kB | pg_default | база данных административных соединений по умолчанию
slonmaster | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | | 1401 МБ | перемещение |
slonslave | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | | 32 МБ | pg_default |
template0 | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | = c /postgres + | 5785 kB | pg_default | немодифицированная пустая база данных
| | | | | postgres = CTc /postgres | | |
шаблон1 | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | = c /postgres + | 5985 kB | pg_default | шаблон по умолчанию для новых баз данных
| | | | | postgres = CTc /postgres | | |
тест | postgres | UTF8 | ru_US.UTF-8 | ru_US.UTF-8 | | 13 МБ | pg_default |
(7 строк)
и
\ d +
, чтобы отобразить все таблицы в текущей схеме поиска в текущей базе данных.
test = # \ dn + --list схемы
Список схем
Имя | Владелец | Права доступа | Описание
-------- + ---------- + ---------------------- + ------- -----------------
общественные | postgres | Postgres = UC /Postgres + | стандартная общедоступная схема
| | = UC /postgres |
схема1 | postgres | Postgres = UC /Postgres + |
| | = UC /postgres |
(2 ряда)
test = # set search_path для schema1, public;
ЗАДАВАТЬ
test = # \ d +
Список отношений
Схемы | Имя | Тип | Владелец | Размер | Описание
--------- + ----------------- + ------- + -------------- + ------------ + -------------
общественные | all_units | стол | postgres | 0 байт |
общественные | актив | стол | postgres | 16 kB |
общественные | asset_attribute | стол | postgres | 8192 байт |
общественные | питание | стол | postgres | 48 kB |
общественные | name_log | стол | postgres | 8192 байт |
общественные | наружный | стол | обычные | 0 байт |
общественные | outable2 | стол | обычные | 0 байт |
общественные | тест | стол | postgres | 16 kB |
общественные | usr | стол | postgres | 5008 kB |
схема1 | t1 | стол | postgres | 0 байт |
(10 строк)
Из pg_Admin вы можете просто запустить следующее в своей текущей базе данных и получить все таблицы для указанной схемы:
SELECT *
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
AND table_schema = 'public'
ORDER BY table_type, имя_таблицы
Это даст вам список всех постоянных таблиц (как правило, таблицы, которые вы ищете). Вы можете получить только имена таблиц, если вы измените подстановочный символ *
только для table_name
. Публичный table_schema
- это схема по умолчанию для большинства баз данных, если только администратор не установил новую схему.
Возможно, вы ввели таблицы в схему, которая не находится в вашем пути поиска, или по умолчанию, то есть public, и поэтому таблицы не будут отображаться с помощью \ dt. Если вы используете схему, называемую, скажем, данными, вы можете исправить это, запустив
alter database <databasename> set search_path = data, public;
Закройте и запустите psql, и теперь \ dt покажет вам таблицы в данных схемы.