Відповіді:
З psql
інтерфейсу командного рядка,
Спочатку виберіть свою базу даних
\c database_name
Потім це показує всі таблиці в поточній схемі:
\dt
Програмно (або psql
, звичайно, також з інтерфейсу):
SELECT * FROM pg_catalog.pg_tables;
Системні таблиці живуть у pg_catalog
базі даних.
\l
це еквівалент show databases
у MySQL. dt
≃ show tables
і l
≃show databases
\dt
дуже корисно. Це pg_catalog.pg_tables
набагато менше, оскільки, здається, збираються внутрішні таблиці разом із створеними користувачем для будь-якої бази даних, до якої ви трапляєтеся.
psql my_db_name
треба працювати, \dt
щоб працювати. Коли я пробіг psql
без імені бази даних, мені надійшло повідомлення "Не знайдено стосунків"
SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
\c <DATABASE_NAME>
вибрати свою базу даних.
Вхід як суперпользователь:
sudo -u postgres psql
Ви можете перелічити всі бази даних та користувачів за \l
командою (список інших команд за \?
).
Тепер , якщо ви хочете , щоб побачити інші бази даних , ви можете змінити користувач / бази даних по \c
команді , як \c template1
, \c postgres postgres
і використання \d
, \dt
або , \dS
щоб побачити таблиці / думка / і т.д ..
(Для повноти)
Ви також можете запитати (SQL-стандарт) схему інформації :
SELECT
table_schema || '.' || table_name
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
AND
table_schema NOT IN ('pg_catalog', 'information_schema');
Ви можете використовувати інтерактивний термінал Psql PostgreSQL для показу таблиць у PostgreSQL.
1. Почніть Psql
Зазвичай для запуску psql можна виконати таку команду:
psql DBNAME USERNAME
Наприклад, psql template1 postgres
Можливо, існує одна ситуація: припустимо, ви входите в систему як корінь, а ви не пам'ятаєте ім'я бази даних. Ви можете просто ввійти спочатку в Psql, запустивши:
sudo -u postgres psql
У деяких системах команда sudo недоступна, ви можете замість цього виконати будь-яку команду нижче:
psql -U postgres
psql --username=postgres
2. Покажіть таблиці
Тепер у Psql можна запускати команди, такі як:
\?
перерахуйте всі команди\l
перелік баз даних\conninfo
відобразити інформацію про поточне з'єднання\c [DBNAME]
підключення до нової бази даних, наприклад, \c template1
\dt
список таблиць загальнодоступної схеми\dt <schema-name>.*
список таблиць певної схеми, наприклад, \dt public.*
\dt *.*
перерахуйте таблиці всіх схемSELECT * FROM my_table;
(Примітка: оператор повинен бути закінчений крапкою з комою ;
)\q
кинути psqlЗапуск 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;
**************************
Увійдіть як суперпользователь, щоб ви могли перевірити всі бази даних та їх схеми: -
sudo su - postgres
Тоді ми можемо перейти до оболонки postgresql, використовуючи наступну команду: -
psql
Тепер ви можете перевірити весь список баз даних за допомогою наступної команди: -
\l
Якщо ви хочете перевірити розміри баз даних, також використовуйте: -
\l+
Натисніть, q
щоб повернутися назад.
Після того як ви знайшли свою базу даних, тепер ви зможете підключитися до цієї бази даних за допомогою наступної команди: -
\c database_name
Після підключення ви можете перевірити таблиці або схему бази даних:
\d
Тепер повернутися до використання оболонки: -
q
Тепер для подальшого перегляду деталей певного використання таблиці: -
\d table_name
Щоб повернутися до postgresql_shell натисніть \q
.
І повернутися назад до термінального преса exit
.
Якщо ви хочете бачити лише список створених таблиць, ви можете сказати лише:
\dt
Але ми також маємо, PATTERN
що допоможе вам налаштувати, які таблиці показувати. Щоб показати всі, включаючи pg_catalog
схему, ви можете додати *
.
\dt *
Якщо ти зробиш: \?
\ dt [S +] [PATTERN] списки таблиць
використовувати лише таблиці
=> \dt
якщо ви хочете переглянути таблиці схем
=>\dt+
якщо ви хочете переглянути конкретні таблиці схем
=>\dt schema_name.*
+
з S
. Останній (літера) показує таблиці схем. +
Просто показує додаткову інформацію.
Спочатку підключіться до бази даних за допомогою наступної команди
\c database_name
І ви побачите це повідомлення - You are now connected to database database_name
. І вони виконують наступну команду
SELECT * FROM table_name;
У name_name_name_name_name_upload_name_upload_name_upload_upload_upload_upload_support_name_upload_upload_uploads_uploads_uploads_uploads_uploads
Якщо ви використовуєте pgAdmin4 в PostgreSQL, ви можете використовувати це для показу таблиць у вашій базі даних:
select * from information_schema.tables where table_schema='public';
Зауважте, що \dt
окремо буде перераховано таблиці в загальнодоступній схемі бази даних, яку ви використовуєте. Мені подобається тримати свої таблиці в окремих схемах, тому прийнята відповідь не працювала для мене.
Щоб перерахувати всі таблиці в певній схемі , мені потрібно було:
1) Підключення до потрібної бази даних:
psql mydb
2) Вкажіть ім'я схеми, для якої я хочу бачити таблиці після \dt
команди, наприклад:
\dt myschema.*
Це показує мені результати, які мене цікавлять:
List of relations
Schema | Name | Type | Owner
----------+-----------------+-------+----------
myschema | users | table | postgres
myschema | activity | table | postgres
myschema | roles | table | postgres
select
*
from
pg_catalog.pg_tables
where
schemaname != 'information_schema'
and schemaname != 'pg_catalog';
\ dt (не потрібно *) - відобразить список усіх таблиць для вже існуючої бази даних, до якої ви вже підключені. Також корисно зазначити:
\ d [ім'я таблиці] - відображатиме всі стовпці для даної таблиці, включаючи інформацію про тип, посилання та ключові обмеження.
Використання psql : \ dt
Або:
SELECT c.relname AS Tables_in FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
AND c.relkind = 'r'
AND relname NOT LIKE 'pg_%'
ORDER BY 1
Перш за все, вам належить підключитися до вашої бази даних, як
моя база даних - ubuntu
використовуйте цю команду для підключення
\c ubuntu
Це повідомлення буде показано
"Ви тепер підключені до бази даних" ubuntu "як" postgres "користувача."
Тепер
Виконайте цю команду, щоб показати всі таблиці в ній
\d+
Найпростіший спосіб перерахувати всі таблиці в командному рядку, на мій смак:
psql -a -U <user> -p <port> -h <server> -c "\dt"
Для даної бази даних просто додайте ім'я бази даних:
psql -a -U <user> -p <port> -h <server> -c "\dt" <database_name>
Він працює і в Linux, і в Windows.
як швидкий oneliner
# just list all the postgres tables sorted in the terminal
db='my_db_name'
clear;psql -d $db -t -c '\dt'|cut -c 11-|perl -ne 's/^([a-z_0-9]*)( )(.*)/$1/; print'
або якщо ви віддаєте перевагу набагато чіткіший json вихід багатолінійного:
IFS='' read -r -d '' sql_code <<"EOF_CODE"
select array_to_json(array_agg(row_to_json(t))) from (
SELECT table_catalog,table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name ) t
EOF_CODE
psql -d postgres -t -q -c "$sql_code"|jq
Спочатку ви можете підключитися до своєї бази даних postgres, використовуючи postgre.app на mac або використовуючи postico. Виконайте таку команду:
psql -h localhost -p port_number -d database_name -U user_name -W
тоді ви вводите свій пароль, це повинно надати доступ до вашої бази даних