Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Базы данных
  4. PostgreSQL show tables: как вывести список таблиц в psql и SQL

PostgreSQL show tables: как вывести список таблиц в psql и SQL

Запланировано Прикреплена Закрыта Перенесена Базы данных
postgresqlshow tablespsql
1 Сообщения 1 Постеры 1 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал отредактировано
    #1

    В PostgreSQL часто нужно быстро посмотреть список таблиц в базе данных. Это помогает ориентироваться в структуре, проверять наличие нужных таблиц или анализировать проект. Команды для показа таблиц просты, но их несколько - от консольных до SQL-запросов.

    Зачем это нужно? Вы экономите время на навигацию, избегаете ошибок в скриптах и лучше понимаете базу. Подходят новичкам и опытным разработчикам. Разберём основные способы шаг за шагом.

    Быстрый способ через psql: команда \dt

    Команда \dt в psql - самый простой метод вывести таблицы. Она работает прямо в терминале клиента PostgreSQL, без лишних SQL-запросов. Подключаетесь к базе командой \c имя_базы, потом вводите \dt - и получаете список.

    Это удобно для повседневной работы: показывает схему, имя таблицы, тип и владельца. Например, в тестовой базе dvdrental команда выведет таблицы вроде actor, address, category. Не путайте с MySQL - там SHOW TABLES, а в PostgreSQL свой синтаксис. Если таблиц нет, увидите “No relations found”.

    Вот вариации команды:

    • \dt - базовый список таблиц в public схеме.
    • \dt+ - с дополнительной инфой: размер, описание.
    • \dt *. - таблицы во всех схемах.
    • \dt myschema.* - только в указанной схеме.
    Команда Что показывает Пример вывода
    \dt Имя, схема, тип public | actor | table | postgres
    \dt+ + размер, описание Добавляет колонки size и description
    \dt *. Все схемы Включая custom схемы

    Выберите \dt для скорости - это стандарт для админов и разработчиков.

    SQL-запросы к information_schema

    Если нужен programmatic доступ или фильтры, используйте SELECT из information_schema.tables. Это стандартный SQL-способ, работает в любом клиенте: pgAdmin, DBeaver или скриптах. Запрос возвращает table_name, исключая системные схемы.

    Пример: подключаетесь к базе, выполняете запрос. В dvdrental увидите actor, film, customer без pg_catalog. Фильтр NOT IN (‘pg_catalog’, ‘information_schema’) обязателен - иначе список замусорен системными таблицами. Добавьте WHERE table_type = ‘BASE TABLE’ для таблиц без представлений.

    Полезные варианты:

    • Базовый список: SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
    • С типом: ... AND table_type = 'BASE TABLE';
    • С схемой: SELECT table_schema, table_name FROM ...;
    Параметр Описание Пример
    table_schema = ‘public’ Только public actor, address
    table_type = ‘BASE TABLE’ Только таблицы Исключает views
    NOT IN (‘pg_catalog’…) Без системных Чистый список

    Этот метод гибкий - легко интегрировать в скрипты или приложения.

    Запросы к pg_catalog.pg_tables

    Системный каталог pg_catalog даёт детальную инфу о таблицах. Запрос к pg_tables показывает schemaname, tablename, фильтруя по схеме. Это внутренний механизм PostgreSQL, быстрее information_schema для больших баз.

    Например: SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public';. Добавьте AND schemaname != 'information_schema' для чистоты. В выводе - реальные имена вроде my_first_table. pg_catalog - для продвинутых случаев, когда нужен доступ к метаданным.

    Ключевые опции:

    • Все таблицы: SELECT * FROM pg_catalog.pg_tables;
    • По схеме: WHERE schemaname = 'public';
    • С владельцем: SELECT schemaname, tablename, tableowner FROM pg_catalog.pg_tables;
    Свойство Что даёт Когда использовать
    schemaname Имя схемы Фильтр по public/custom
    tablename Имя таблицы Основной список
    tableowner Владелец Проверки прав доступа

    Подходит для автоматизации и глубокого анализа.

    Сравнение методов и дополнительные команды

    Выбор зависит от задачи: \dt для консоли, SQL для скриптов. psql-команды быстрее, но не экспортируемы. SQL-запросы универсальны, поддерживают JOIN и ORDER BY. В pgAdmin используйте панель браузера - визуальный список без команд.

    Метод Скорость Гибкость Подходит для
    \dt Высокая Низкая Консоль, быстрый просмотр
    information_schema Средняя Высокая Скрипты, GUI
    pg_catalog Высокая Высокая Продвинутый анализ

    Не забывайте права доступа - без них таблицы не увидите. Для деталей таблицы: \d имя_таблицы.

    Полезные нюансы работы с таблицами

    Команды покрывают 90% случаев, но есть тонкости. В мульти-схемных базах уточняйте схему, иначе увидите только public. Для views: information_schema.tables WHERE table_type = 'VIEW'. Экспорт списка: \dt > tables.txt.

    Осталось разобраться с правами, индексами и производительностью на больших БД. Эти приёмы упростят администрирование PostgreSQL в проектах любого масштаба.

    1 ответ Последний ответ
    0

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы