PQ
PQ.Hosting

Валюта

Как получить список таблиц в MySQL: SHOW TABLES, LIKE, information_schema

Автор
PQ
02 марта 2026
3 мин чтения
14 просмотров

MySQL предоставляет несколько способов просмотра таблиц: встроенные команды консоли, запросы к системной базе information_schema и выполнение команд напрямую из bash без входа в оболочку MySQL. Разбираем каждый вариант.

Подключиться к MySQL

mysql -u root -p

После ввода пароля откроется приглашение mysql>.

Посмотреть список всех баз данных

Перед работой с таблицами — убедиться, какие базы данных доступны:

SHOW DATABASES;

Выбрать базу данных

Чтобы работать с таблицами конкретной базы, её нужно сделать активной командой USE:

USE test_db;

После этого все последующие команды применяются к test_db.

Показать все таблицы текущей базы

SHOW TABLES;

Заголовок столбца Tables_in_test_db формируется автоматически на основе имени активной базы.

Показать таблицы другой базы без переключения

Можно оставаться в test_db и при этом запросить таблицы из любой другой базы — указав её имя через FROM:

SHOW TABLES FROM users;

Это удобно при сравнении структуры нескольких баз без лишних переключений.

Показать тип таблицы: SHOW FULL TABLES

Опция FULL добавляет второй столбец Table_type, который показывает тип объекта: BASE TABLE для обычных таблиц или VIEW для представлений:

SHOW FULL TABLES;

Чтобы найти только представления в базе:

SHOW FULL TABLES WHERE Table_type = 'VIEW';

Фильтрация по шаблону: SHOW TABLES LIKE

LIKE фильтрует таблицы по имени. Символы-маски: % — любое количество символов, _ — ровно один символ.

Найти таблицы, начинающиеся с my:

SHOW TABLES LIKE 'my%';

Найти таблицы, содержащие слово guest:

SHOW TABLES LIKE '%guest%';

Найти таблицы с точно шестибуквенным именем:

SHOW TABLES LIKE '______';

Запрос через information_schema

information_schema — системная база данных MySQL, содержащая метаданные обо всех объектах. Таблица TABLES хранит информацию о каждой таблице во всех базах.

Список таблиц конкретной базы:

SELECT TABLE_NAME 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'test_db';

С типом и движком:

SELECT TABLE_NAME, TABLE_TYPE, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test_db'
ORDER BY TABLE_NAME;

Посчитать количество таблиц в базе:

SELECT COUNT(*) 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'test_db';

Найти таблицу по имени во всех базах сразу:

SELECT TABLE_SCHEMA, TABLE_NAME 
FROM information_schema.TABLES 
WHERE TABLE_NAME LIKE '%order%';

Просмотр без входа в оболочку MySQL

Список таблиц можно получить прямо из bash с помощью флага -e (execute):

mysql -u root -p -e 'SHOW TABLES FROM test_db;'

Это особенно полезно в скриптах и при автоматизации. Если пароль задан в переменной или конфиг-файле, команда выполняется без интерактивного ввода:

mysql -u root -p"$DB_PASSWORD" -e 'SHOW TABLES FROM test_db;'

Вывести результат без заголовка (удобно для скриптов):

mysql -u root -p -N -e 'SHOW TABLES FROM test_db;'

Шпаргалка

Задача Команда
Список всех баз SHOW DATABASES;
Выбрать базу USE dbname;
Список таблиц текущей базы SHOW TABLES;
Таблицы другой базы SHOW TABLES FROM dbname;
С типом таблицы SHOW FULL TABLES;
Фильтр по шаблону SHOW TABLES LIKE 'my%';
Только представления SHOW FULL TABLES WHERE Table_type = 'VIEW';
Через information_schema SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'dbname';
Без входа в оболочку mysql -u root -p -e 'SHOW TABLES FROM dbname;'

Поделиться статьей

Похожие статьи