Стандартные SQL-инструменты

Основная точка входа – служебная БД INFORMATION_SCHEMA и mysql:

  • Список всех баз данных:
  SHOW DATABASES;
  • Все таблицы во всех базах с типом и движком:
  SELECT TABLE_SCHEMA,
         TABLE_NAME,
         TABLE_TYPE,
         ENGINE
  FROM INFORMATION_SCHEMA.TABLES
  ORDER BY TABLE_SCHEMA, TABLE_NAME;
  • Полное описание структуры одной таблицы:
  SHOW CREATE TABLE db_name.table_name\G

или в виде строк:

  SELECT COLUMN_NAME,
         COLUMN_TYPE,
         IS_NULLABLE,
         COLUMN_DEFAULT,
         COLUMN_KEY,
         EXTRA
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE TABLE_SCHEMA = 'db_name'
  ORDER BY TABLE_NAME, ORDINAL_POSITION;
  • Все внешние ключи и связи:
  SELECT CONSTRAINT_SCHEMA,
         TABLE_NAME,
         CONSTRAINT_NAME,
         REFERENCED_TABLE_NAME
  FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
  ORDER BY CONSTRAINT_SCHEMA, TABLE_NAME;

Из этих представлений можно собрать «паспорт» БД – список таблиц, полей, индексов, ограничений, типов и т.д.

CLI- и дамп-инструменты

Для “идентификации” схемы (получить полную структуру как артефакт) обычно используют:

  • mysqldump – дамп только схемы без данных:
  mysqldump -h host -u user -p \
    --databases db1 db2 \
    --no-data --routines --events --triggers > schema.sql

Получается один файл со всеми CREATE DATABASE, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE и т.п., по нему можно однозначно идентифицировать структуру.

  • mariadb-dump – аналогично, в новых установках MariaDB.

Это удобно: файл можно класть в git, сравнивать версии, смотреть диффы схем между серверами.

GUI / внешние инструменты

Если нужен визуальный обзор структуры, ER-диаграммы и т.п., можно использовать:

  • MySQL Workbench (к MariaDB подключается как к MySQL, reverse engineering схемы, экспорт модели в SQL).
  • DBeaver / HeidiSQL / Navicat, dbForge Studio и т.п. – показывают дерево БД, таблиц, колонок, индексов и умеют генерировать CREATE TABLE/CREATE DATABASE.

Чаще всего на практике для “идентификации” структуры достаточно одной связки: mysqldump --no-data для фиксации схемы и запросов к INFORMATION_SCHEMA для разовых проверок/отчетов.

[file-name 000355_2026-03-09_08-01-56.txt]