Читаем MySQL: руководство профессионала полностью

Никто не должен узнавать новый операторный синтаксис. Потому что они уже знают, как работает SELECT, они должны узнать только объектные имена.

Реализаторы не должны волноваться относительно добавления ключевых слов.

Имеются миллионы возможных изменений вывода вместо одного. Это обеспечивает большее количество гибкости для прикладных программ, которые имеют изменяющиеся требования относительно метаданных, в которых они нуждаются.

Миграция проще, потому что каждая другая СУБД понимает этот способ.

Однако, потому что команды SHOW популярна у пользователей MySQL, никто их убирать не собирается. Фактически, наряду с реализацией INFORMATION_SCHEMA, имеются расширения для SHOW.

Не имеется никакого различия между привилегиями, требуемыми для инструкций SHOW и нужными, чтобы выбрать информацию из INFORMATION_SCHEMA. В любом случае Вы должны иметь некоторую привилегию на объекте, чтобы видеть информацию относительно этого объекта.

Реализация структур таблицы INFORMATION_SCHEMA в MySQL следует ANSI/ISO SQL:2003 Part 11 Schemata и в основном отвечает стандарту SQL:2003 core feature F021 Basic information schema.

Пользователи SQL Server 2000 (который также следует стандарту) могут обратить внимание на сильное сходство. Однако, MySQL опустил много столбцов, которые нерелевантными для этой реализации, и добавил столбцы, которые являются MySQL-специфическими. Один такой столбец: ENGINE в таблице INFORMATION_SCHEMA.TABLES.

Следующие разделы описывают каждую из таблиц и столбцов, которые находятся в INFORMATION_SCHEMA. Для каждого столбца имеются три блока информации:

INFORMATION_SCHEMA Name указывает имя для столбца в таблице INFORMATION_SCHEMA. Это не соответствует стандартному имени SQL, если в поле Remarks значится MySQL extension.

SHOW Name указывает эквивалентное имя поля в самой близкой инструкции SHOW, если она имеется.

Remarks обеспечивает дополнительную информацию. Если это поле NULL, это означает, что значение столбца всегда NULL. Если это поле MySQL extension, столбец является расширением MySQL стандарта SQL.

Чтобы избегать использовать любое имя, которое зарезервировано в стандарте SQL, DB2 или Oracle, имена некоторых столбцов, отмеченных как MySQL extension переделаны. Например, COLLATION на TABLE_COLLATION в таблице TABLES. Ссписок зарезервированных слов изложен в конце статьи на http://www.dbazine.com/gulutzan5.shtml.

Определение для символьных столбцов (например, TABLES.TABLE_NAME) вообще VARCHAR(N) CHARACTER SET utf8, где N по крайней мере 64.

Каждый раздел указывает то, какая инструкция SHOW является эквивалентной SELECT, который собирает информацию из INFORMATION_SCHEMA, если имеется такая инструкция.

Обратите внимание: в настоящее время, имеются некоторые столбцы, расставленные не по порядку, а кое-какие еще вообще отсутствуют.

<p id="aRan_7469826595">9.1. Таблица INFORMATION_SCHEMA SCHEMATA</p>

Схема является базой данных, так что таблица SCHEMATA обеспечивает информацию относительно баз данных

INFORMATION_SCHEMA Name | SHOW Name | Remarks

CATALOG_NAME |  | NULL 

SCHEMA_NAME | | База данных

DEFAULT_CHARACTER_SET_NAME | |

DEFAULT_COLLATION_NAME | |

SQL_PATH | | NULL

Следующие инструкции эквивалентны:

SELECT SCHEMA_NAME AS `Database` FROM INFORMATION_SCHEMA.SCHEMATA

[WHERE SCHEMA_NAME LIKE 'wild']

SHOW DATABASES [LIKE 'wild']

<p id="aRan_0626387458">9.2. Таблица INFORMATION_SCHEMA TABLES</p>

Таблица TABLES обеспечивает информацию относительно таблиц в базах данных.

INFORMATION_SCHEMA

Name

SHOW

Name

Remarks

TABLE_CATALOG

NULL

TABLE_SCHEMA

Table_

TABLE_NAME

Table_

TABLE_TYPE

ENGINE

Тип памяти

MySQL extension

VERSION

Version

MySQL extension

ROW_FORMAT

Row_format

MySQL extension

TABLE_ROWS

Rows

MySQL extension

AVG_ROW_LENGTH

Avg_row_length

MySQL extension

DATA_LENGTH

Data_length

MySQL extension

MAX_DATA_LENGTH

Max_data_length

MySQL extension

INDEX_LENGTH

Index_length

MySQL extension

DATA_FREE

Data_free

MySQL extension

AUTO_INCREMENT

Auto_increment

MySQL extension

CREATE_TIME

Create_time

MySQL extension

UPDATE_TIME

Update_time

MySQL extension

CHECK_TIME

Check_time

MySQL extension

TABLE_COLLATION

Collation

MySQL extension

CHECKSUM

Checksum

MySQL extension

CREATE_OPTIONS

Create_options

MySQL extension

TABLE_COMMENT

Комментарий

MySQL extension

Примечания:

TABLE_SCHEMA и TABLE_NAME одиночное поле в выводе SHOW, например: Table_in_db1.

TABLE_TYPE должен быть BASE TABLE или VIEW. Если таблица временная, то TABLE_TYPE = TEMPORARY. Не имеется никаких временных view, так что это однозначно.

Для разбитых на разделы таблиц, начиная с MySQL 5.1.9, столбец ENGINE показывает тип памяти, используемого всеми разделами. Раньше этот столбец показывал для таких таблиц PARTITION.

Столбец TABLE_ROWS NULL, если таблица находится в базе данных INFORMATION_SCHEMA. Для таблиц InnoDB счетчтк строк только грубая оценка, используемая в оптимизации SQL.

Для таблиц, использующих тип памяти NDBCLUSTER, начиная с MySQL 5.1.12, столбец DATA_LENGTH отражает истинное количество памяти для столбцов с переменной шириной. См. Глюк #18413.

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT