Как получить информацию о базе данных

Владимир | | MySQL, Web разработка.

Если вы занимаетесь разработкой инструмента для работы с базами данных (вроде phpMyAdmin), то вам потребуется информация о созданных базах, их структуре, количестве таблиц и т.д.

Большинство учебников почему-то обходят эту тему. Но на самом деле здесь нет ничего сложного. Достаточно выполнить всего несколько запросов.

Получение списка баз данных. Всего один запрос:

SHOW DATABASES;

В результате получите названия всех существующих баз данных.

Используя этот список, можно определить структуру каждой из баз. Для этого нужно выполнить два запроса.

1) Выбрать базу данных (этот шаг нужен, если вы не указали имя базы данных при подключении):

use database_name;

2) Получить список таблиц:

show tables;

Теперь у нас есть список таблиц выбранной базы данных.

Определяем поля в этих таблицах:

DESCRIBE table_name;

В результате вы получите: названия полей, их тип, значения по-умолчанию и другие сведения.

Альтернативный вариант предыдущего запроса:

SHOW COLUMNS FROM table_name;

Примечание. Если это необходимо, вы можете явно указать базу данных, в которой находится таблица. Синтаксис такой: database.table
Например:

DESCRIBE wordpressdb.wp_posts;

Кроме того, если вы используете MySQL, то существует еще один метод получения этих данных.

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

Правда, запросы получаются немного длиннее.

Например, получить список баз данных, можно с помощью запроса:

SELECT table_schema FROM information_schema.columns GROUP BY table_schema;

Список таблиц в базе данных mydb:

SELECT table_name FROM information_schema.columns WHERE table_schema = 'mydb' GROUP BY table_name

А получить список полей и их тип в таблице wp_posts базы данных wordpressdb можно с помощью запроса:

SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'wp230' AND table_name = 'wpvsc_posts';

В общем, в таблице information_schema вы найдете много интересного.

До встречи!