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

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

mysql database info

Если вы занимаетесь разработкой инструмента для работы с базами данных (вроде 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 вы найдете много интересного.

До встречи!

  • гм…
    это ты к чему?

    • К получению информации о базах 😉
      Просто недавно пришло письмо с вопросом: как узнать какие поля есть в таблице, если их количество постоянно меняется.
      Ну я и подумал, что тема будет еще кому-то интересна.

  • гм…
    это ты к чему?

    • К получению информации о базах 😉
      Просто недавно пришло письмо с вопросом: как узнать какие поля есть в таблице, если их количество постоянно меняется.
      Ну я и подумал, что тема будет еще кому-то интересна.

  • Andrew Shipunov

     то что искал! спасибо!

  • Илья

    Хороший инструмент автоматизации создания форм, т.к есть доступ к КОММЕНТАРИЯМ полей. Имена полей по традиции латиницей, а их русский эквивалент забивается при создании таблицы в комментарий. функцией Mysql_list_fields эти комментарии не достать, а этим путем можно.