<===

ProNotes

2026-03-09 08:01:56
В MariaDB это обычно решается не внешними GUI, а системными представлениями и утилитами, которые уже есть в сервере.

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

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

- Список всех баз данных:  
  ```sql
  SHOW DATABASES;
  ```

- Все таблицы во всех базах с типом и движком:  
  ```sql
  SELECT TABLE_SCHEMA,
         TABLE_NAME,
         TABLE_TYPE,
         ENGINE
  FROM INFORMATION_SCHEMA.TABLES
  ORDER BY TABLE_SCHEMA, TABLE_NAME;
  ```

- Полное описание структуры одной таблицы:  
  ```sql
  SHOW CREATE TABLE db_name.table_name\G
  ```
  или в виде строк:  
  ```sql
  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;
  ```

- Все внешние ключи и связи:  
  ```sql
  SELECT CONSTRAINT_SCHEMA,
         TABLE_NAME,
         CONSTRAINT_NAME,
         REFERENCED_TABLE_NAME
  FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
  ORDER BY CONSTRAINT_SCHEMA, TABLE_NAME;
  ```

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

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

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

- `mysqldump` – дамп только схемы без данных:
  ```bash
  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` для разовых проверок/отчетов.   
← Previous
Back to list