<?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[psql список таблиц: команды и SQL-запросы для PostgreSQL]]></title><description><![CDATA[<p dir="auto">В psql часто нужно быстро посмотреть список таблиц в базе данных. Это помогает ориентироваться в структуре БД, проверять наличие объектов или планировать изменения. Команды вроде \dt упрощают задачу без лишних инструментов.</p>
<p dir="auto">Такие приемы экономят время разработчикам и администраторам. Вы узнаете базовые команды psql, SQL-запросы к системным каталогам и варианты с дополнительной информацией. Пройдем от простого списка до анализа размеров таблиц.</p>
<h2>Базовые команды psql для списка таблиц</h2>
<p dir="auto">В консоли psql команды с обратным слешем работают интерактивно и дают быстрый обзор. Они не требуют SQL и показывают таблицы текущей базы. Сначала подключитесь к нужной БД командой \connect dbname, иначе увидите только таблицы активной базы.</p>
<p dir="auto">Команда <strong>\dt</strong> - основной способ вывести список всех таблиц в схеме public. Она отображает имя, тип и владельца. Для детализации используйте <strong>\dt+</strong>, которая добавляет размер и описание. Если таблиц много, фильтруйте по имени: <strong>\dt <em>users</em></strong> покажет все с подстрокой “users”.</p>
<p dir="auto">Вот ключевые варианты:</p>
<ul>
<li><strong>\dt</strong> - базовый список таблиц в текущей схеме.</li>
<li><strong>\dt+</strong> - расширенный вид с размерами и доступом.</li>
<li><strong>\dt schema_name</strong>* - таблицы конкретной схемы.</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>Name|Type|Owner</td>
</tr>
<tr>
<td>\dt+</td>
<td>С размерами</td>
<td>Name|Size|Description</td>
</tr>
<tr>
<td>\l или \list</td>
<td>Список всех баз данных</td>
<td>Name|Owner|Encoding</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Важно</em>: Команды работают только в интерактивном режиме psql. Для скриптов используйте SQL.</p>
<h2>SQL-запросы к information_schema для таблиц</h2>
<p dir="auto">SQL-запросы дают гибкость и работают в любом клиенте, не только psql. Основной источник - <strong>information_schema.tables</strong>, стандартный вид с метаданными. Запрос покажет table_name из схемы public, исключая системные.</p>
<p dir="auto">Например, SELECT table_name FROM information_schema.tables WHERE table_schema = ‘public’; выведет чистый список. Добавьте ORDER BY для сортировки или фильтр по имени. Это полезно для скриптов или когда нужен точный контроль.</p>
<p dir="auto">Преимущества SQL: можно комбинировать условия, выводить в файл или обрабатывать в приложении. Минус - чуть медленнее мета-команд psql на больших БД.</p>
<p dir="auto">Полезные запросы:</p>
<ul>
<li>SELECT table_name FROM information_schema.tables WHERE table_schema NOT IN (‘information_schema’, ‘pg_catalog’);</li>
<li>SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = ‘public’;</li>
<li>SELECT schemaname, tablename FROM pg_tables WHERE schemaname = ‘public’;</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Запрос</th>
<th>Назначение</th>
<th>Особенности</th>
</tr>
</thead>
<tbody>
<tr>
<td>information_schema.tables</td>
<td>Список таблиц и views</td>
<td>Стандарт SQL, все схемы</td>
</tr>
<tr>
<td>pg_tables</td>
<td>Только пользовательские таблицы</td>
<td>Быстрее на больших БД</td>
</tr>
<tr>
<td>pg_class</td>
<td>Размеры и статистика</td>
<td>С relpages для сортировки</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Нюанс</em>: pg_tables игнорирует системные схемы, но проверяйте права доступа.</p>
<h2>Просмотр размеров и статистики таблиц</h2>
<p dir="auto">Размер таблиц важен для оптимизации - большие объекты влияют на бэкапы и производительность. Команда <strong>\dt+</strong> дает базовую статистику, но для точности используйте SQL к pg_class или pg_total_relation_size.</p>
<p dir="auto">Запрос SELECT relname, pg_size_pretty(pg_total_relation_size(relid)) FROM pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC; сортирует по размеру. Это учитывает индексы и TOAST-таблицы. Для одной таблицы: SELECT COUNT(*) FROM table_name; но на миллионах строк это долго.</p>
<p dir="auto">Альтернатива - приблизительный подсчет через relpages из pg_class. Быстро, но неточно. Комбинируйте с \di для индексов.</p>
<p dir="auto">Варианты анализа:</p>
<ul>
<li>SELECT relname, relpages FROM pg_class ORDER BY relpages DESC LIMIT 5; - топ-5 по размеру.</li>
<li>SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||‘.’||tablename)) FROM pg_tables ORDER BY pg_total_relation_size(schemaname||‘.’||tablename) DESC;</li>
<li>SELECT COUNT(*) FROM table_name; - точное количество строк.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Функция</th>
<th>Что показывает</th>
<th>Когда использовать</th>
</tr>
</thead>
<tbody>
<tr>
<td>pg_size_pretty</td>
<td>Размер в KB/MB/GB</td>
<td>Отчеты и мониторинг</td>
</tr>
<tr>
<td>pg_total_relation_size</td>
<td>Таблица + индексы</td>
<td>Полная статистика</td>
</tr>
<tr>
<td>relpages</td>
<td>Примерные страницы</td>
<td>Быстрый просмотр</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Совет</em>: Для больших таблиц избегайте COUNT(*) - используйте статистику планировщика.</p>
<h2>Дополнительные команды для навигации по БД</h2>
<p dir="auto">Полезно знать не только таблицы, но и связанные объекты. <strong>\d table_name</strong> опишет структуру с колонками и типами. <strong>\du</strong> покажет пользователей, <strong>\dv</strong> - представления.</p>
<p dir="auto">Эти команды ускоряют администрирование. Например, \dp или \z перечислит привилегии на таблицы. Для экспорта: \o file.txt перед запросом.</p>
<p dir="auto">Список расширений:</p>
<ul>
<li>\d+ table_name - детальное описание таблицы.</li>
<li>\di - список индексов.</li>
<li>\ds - последовательности.</li>
<li>\connect dbname - смена базы.</li>
</ul>
<h2>Команды для полного контроля над схемой</h2>
<p dir="auto">Иногда нужны все детали сразу. Команды вроде \dn показывают схемы, \df - функции. Соберите полный обзор: сначала \l для баз, \connect, затем \dt+ и \d для ключевых таблиц.</p>
<p dir="auto">Это базовый набор, но есть нюансы с правами - без суперпользователя системные таблицы скрыты. Для продвинутых случаев смотрите pg_catalog целиком.</p>
<h2>Работа с psql выходит за простые списки</h2>
<p dir="auto">Мы разобрали команды от \dt до SQL для размеров - этого хватает для 90% задач. Осталось изучить расширения вроде \df для функций или скрипты автоматизации. Подумайте о pgAdmin для GUI, если консоль неудобна, и мониторинге через EXPLAIN.</p>
]]></description><link>https://forum.exlends.ru/topic/865/psql-spisok-tablic-komandy-i-sql-zaprosy-dlya-postgresql</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 07:27:46 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/865.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Mar 2026 06:35:04 GMT</pubDate><ttl>60</ttl></channel></rss>