<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[PostgreSQL show tables: как вывести список таблиц в psql и SQL]]></title><description><![CDATA[<p dir="auto">В PostgreSQL часто нужно быстро посмотреть список таблиц в базе данных. Это помогает ориентироваться в структуре, проверять наличие нужных таблиц или анализировать проект. Команды для показа таблиц просты, но их несколько - от консольных до SQL-запросов.</p>
<p dir="auto">Зачем это нужно? Вы экономите время на навигацию, избегаете ошибок в скриптах и лучше понимаете базу. Подходят новичкам и опытным разработчикам. Разберём основные способы шаг за шагом.</p>
<h2>Быстрый способ через psql: команда \dt</h2>
<p dir="auto">Команда <code>\dt</code> в psql - самый простой метод вывести таблицы. Она работает прямо в терминале клиента PostgreSQL, без лишних SQL-запросов. Подключаетесь к базе командой <code>\c имя_базы</code>, потом вводите <code>\dt</code> - и получаете список.</p>
<p dir="auto">Это удобно для повседневной работы: показывает схему, имя таблицы, тип и владельца. Например, в тестовой базе dvdrental команда выведет таблицы вроде actor, address, category. <em>Не путайте с MySQL - там SHOW TABLES, а в PostgreSQL свой синтаксис.</em> Если таблиц нет, увидите “No relations found”.</p>
<p dir="auto">Вот вариации команды:</p>
<ul>
<li><code>\dt</code> - базовый список таблиц в public схеме.</li>
<li><code>\dt+</code> - с дополнительной инфой: размер, описание.</li>
<li><code>\dt *.</code> - таблицы во всех схемах.</li>
<li><code>\dt myschema.*</code> - только в указанной схеме.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Команда</th>
<th>Что показывает</th>
<th>Пример вывода</th>
</tr>
</thead>
<tbody>
<tr>
<td>\dt</td>
<td>Имя, схема, тип</td>
<td>public | actor | table | postgres</td>
</tr>
<tr>
<td>\dt+</td>
<td>+ размер, описание</td>
<td>Добавляет колонки size и description</td>
</tr>
<tr>
<td>\dt *.</td>
<td>Все схемы</td>
<td>Включая custom схемы</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>Выберите \dt для скорости</strong> - это стандарт для админов и разработчиков.</p>
<h2>SQL-запросы к information_schema</h2>
<p dir="auto">Если нужен programmatic доступ или фильтры, используйте SELECT из information_schema.tables. Это стандартный SQL-способ, работает в любом клиенте: pgAdmin, DBeaver или скриптах. Запрос возвращает table_name, исключая системные схемы.</p>
<p dir="auto">Пример: подключаетесь к базе, выполняете запрос. В dvdrental увидите actor, film, customer без pg_catalog. <em>Фильтр NOT IN (‘pg_catalog’, ‘information_schema’) обязателен</em> - иначе список замусорен системными таблицами. Добавьте WHERE table_type = ‘BASE TABLE’ для таблиц без представлений.</p>
<p dir="auto">Полезные варианты:</p>
<ul>
<li>Базовый список: <code>SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';</code></li>
<li>С типом: <code>... AND table_type = 'BASE TABLE';</code></li>
<li>С схемой: <code>SELECT table_schema, table_name FROM ...;</code></li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Параметр</th>
<th>Описание</th>
<th>Пример</th>
</tr>
</thead>
<tbody>
<tr>
<td>table_schema = ‘public’</td>
<td>Только public</td>
<td>actor, address</td>
</tr>
<tr>
<td>table_type = ‘BASE TABLE’</td>
<td>Только таблицы</td>
<td>Исключает views</td>
</tr>
<tr>
<td>NOT IN (‘pg_catalog’…)</td>
<td>Без системных</td>
<td>Чистый список</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>Этот метод гибкий</strong> - легко интегрировать в скрипты или приложения.</p>
<h2>Запросы к pg_catalog.pg_tables</h2>
<p dir="auto">Системный каталог pg_catalog даёт детальную инфу о таблицах. Запрос к pg_tables показывает schemaname, tablename, фильтруя по схеме. Это внутренний механизм PostgreSQL, быстрее information_schema для больших баз.</p>
<p dir="auto">Например: <code>SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public';</code>. Добавьте <code>AND schemaname != 'information_schema'</code> для чистоты. В выводе - реальные имена вроде my_first_table. <em>pg_catalog - для продвинутых случаев</em>, когда нужен доступ к метаданным.</p>
<p dir="auto">Ключевые опции:</p>
<ul>
<li>Все таблицы: <code>SELECT * FROM pg_catalog.pg_tables;</code></li>
<li>По схеме: <code>WHERE schemaname = 'public';</code></li>
<li>С владельцем: <code>SELECT schemaname, tablename, tableowner FROM pg_catalog.pg_tables;</code></li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Свойство</th>
<th>Что даёт</th>
<th>Когда использовать</th>
</tr>
</thead>
<tbody>
<tr>
<td>schemaname</td>
<td>Имя схемы</td>
<td>Фильтр по public/custom</td>
</tr>
<tr>
<td>tablename</td>
<td>Имя таблицы</td>
<td>Основной список</td>
</tr>
<tr>
<td>tableowner</td>
<td>Владелец</td>
<td>Проверки прав доступа</td>
</tr>
</tbody>
</table>
<p dir="auto">Подходит для автоматизации и глубокого анализа.</p>
<h2>Сравнение методов и дополнительные команды</h2>
<p dir="auto">Выбор зависит от задачи: \dt для консоли, SQL для скриптов. psql-команды быстрее, но не экспортируемы. SQL-запросы универсальны, поддерживают JOIN и ORDER BY. В pgAdmin используйте панель браузера - визуальный список без команд.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Метод</th>
<th>Скорость</th>
<th>Гибкость</th>
<th>Подходит для</th>
</tr>
</thead>
<tbody>
<tr>
<td>\dt</td>
<td>Высокая</td>
<td>Низкая</td>
<td>Консоль, быстрый просмотр</td>
</tr>
<tr>
<td>information_schema</td>
<td>Средняя</td>
<td>Высокая</td>
<td>Скрипты, GUI</td>
</tr>
<tr>
<td>pg_catalog</td>
<td>Высокая</td>
<td>Высокая</td>
<td>Продвинутый анализ</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Не забывайте права доступа</em> - без них таблицы не увидите. Для деталей таблицы: <code>\d имя_таблицы</code>.</p>
<h2>Полезные нюансы работы с таблицами</h2>
<p dir="auto">Команды покрывают 90% случаев, но есть тонкости. В мульти-схемных базах уточняйте схему, иначе увидите только public. Для views: <code>information_schema.tables WHERE table_type = 'VIEW'</code>. Экспорт списка: <code>\dt &gt; tables.txt</code>.</p>
<p dir="auto">Осталось разобраться с правами, индексами и производительностью на больших БД. Эти приёмы упростят администрирование PostgreSQL в проектах любого масштаба.</p>
]]></description><link>https://forum.exlends.ru/topic/847/postgresql-show-tables-kak-vyvesti-spisok-tablic-v-psql-i-sql</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 06:37:00 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/847.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Feb 2026 11:03:16 GMT</pubDate><ttl>60</ttl></channel></rss>