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;' |