Spec-Zone .ru
спецификации, руководства, описания, API
|
Оглавление
INFORMATION_SCHEMA CHARACTER_SETS
ТаблицаINFORMATION_SCHEMA
COLLATIONS
ТаблицаINFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY
Таблица
INFORMATION_SCHEMA
COLUMNS
ТаблицаINFORMATION_SCHEMA COLUMN_PRIVILEGES
ТаблицаINFORMATION_SCHEMA
ENGINES
ТаблицаINFORMATION_SCHEMA
EVENTS
ТаблицаINFORMATION_SCHEMA
FILES
ТаблицаINFORMATION_SCHEMA
GLOBAL_STATUS
и SESSION_STATUS
ТаблицыINFORMATION_SCHEMA
GLOBAL_VARIABLES
и SESSION_VARIABLES
ТаблицыINFORMATION_SCHEMA KEY_COLUMN_USAGE
ТаблицаINFORMATION_SCHEMA OPTIMIZER_TRACE
ТаблицаINFORMATION_SCHEMA
PARAMETERS
ТаблицаINFORMATION_SCHEMA
PARTITIONS
ТаблицаINFORMATION_SCHEMA
PLUGINS
ТаблицаINFORMATION_SCHEMA
PROCESSLIST
ТаблицаINFORMATION_SCHEMA
PROFILING
ТаблицаINFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS
ТаблицаINFORMATION_SCHEMA
ROUTINES
ТаблицаINFORMATION_SCHEMA
SCHEMATA
ТаблицаINFORMATION_SCHEMA SCHEMA_PRIVILEGES
ТаблицаINFORMATION_SCHEMA
STATISTICS
ТаблицаINFORMATION_SCHEMA
TABLES
ТаблицаINFORMATION_SCHEMA
TABLESPACES
ТаблицаINFORMATION_SCHEMA TABLE_CONSTRAINTS
ТаблицаINFORMATION_SCHEMA TABLE_PRIVILEGES
ТаблицаINFORMATION_SCHEMA
TRIGGERS
ТаблицаINFORMATION_SCHEMA USER_PRIVILEGES
ТаблицаINFORMATION_SCHEMA
VIEWS
ТаблицаINFORMATION_SCHEMA
Таблицы для InnoDB
INFORMATION_SCHEMA INNODB_CMP
и INNODB_CMP_RESET
ТаблицыINFORMATION_SCHEMA INNODB_CMP_PER_INDEX
и INNODB_CMP_PER_INDEX_RESET
ТаблицыINFORMATION_SCHEMA INNODB_CMPMEM
и INNODB_CMPMEM_RESET
ТаблицыINFORMATION_SCHEMA INNODB_TRX
ТаблицаINFORMATION_SCHEMA INNODB_LOCKS
ТаблицаINFORMATION_SCHEMA INNODB_LOCK_WAITS
ТаблицаINFORMATION_SCHEMA INNODB_SYS_TABLES
ТаблицаINFORMATION_SCHEMA INNODB_SYS_INDEXES
ТаблицаINFORMATION_SCHEMA INNODB_SYS_COLUMNS
ТаблицаINFORMATION_SCHEMA INNODB_SYS_FIELDS
ТаблицаINFORMATION_SCHEMA INNODB_SYS_FOREIGN
ТаблицаINFORMATION_SCHEMA INNODB_SYS_FOREIGN_COLS
ТаблицаINFORMATION_SCHEMA INNODB_SYS_TABLESTATS
Представление
INFORMATION_SCHEMA INNODB_SYS_DATAFILES
ТаблицаINFORMATION_SCHEMA INNODB_SYS_TABLESPACES
ТаблицаINFORMATION_SCHEMA INNODB_BUFFER_PAGE
ТаблицаINFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU
ТаблицаINFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS
ТаблицаINFORMATION_SCHEMA INNODB_METRICS
ТаблицаINFORMATION_SCHEMA INNODB_FT_CONFIG
ТаблицаINFORMATION_SCHEMA INNODB_FT_DEFAULT_STOPWORD
Таблица
INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE
ТаблицаINFORMATION_SCHEMA INNODB_FT_INDEX_CACHE
ТаблицаINFORMATION_SCHEMA INNODB_FT_DELETED
ТаблицаINFORMATION_SCHEMA INNODB_FT_BEING_DELETED
ТаблицаINFORMATION_SCHEMA
ТаблицыSHOW
ОператорыINFORMATION_SCHEMA
обеспечивает доступ к метаданным базы
данных, информации о сервере MySQL, таком как имя базы данных или таблицы, типа данных столбца, или прав
доступа. Другие термины, которые иногда используются для этой информации, являются словарем
данных и системным каталогом.
INFORMATION_SCHEMA
База
данныхINFORMATION_SCHEMA
база данных в пределах каждого экземпляра MySQL, место, которое
хранит информацию обо всех других базах данных, которые поддерживает сервер MySQL. INFORMATION_SCHEMA
база данных содержит несколько таблиц только для чтения. Они - фактически представления, не базовые таблицы,
таким образом нет никаких файлов, связанных с ними, и невозможно установить, включает их. Кроме того, нет
никакого каталога базы данных с тем именем.
Хотя можно выбрать INFORMATION_SCHEMA
как база данных значения по умолчанию с a USE
оператор, можно только считать содержание таблиц, не выполнить INSERT
, UPDATE
,
или DELETE
операции на них.
Вот пример оператора, который получает информацию от INFORMATION_SCHEMA
:
mysql>SELECT table_name, table_type, engine
->FROM information_schema.tables
->WHERE table_schema = 'db5'
->ORDER BY table_name;
+------------+------------+--------+| table_name | table_type | engine |+------------+------------+--------+| fk | BASE TABLE | InnoDB || fk2 | BASE TABLE | InnoDB || goto | BASE TABLE | MyISAM || into | BASE TABLE | MyISAM || k | BASE TABLE | MyISAM || kurs | BASE TABLE | MyISAM || loop | BASE TABLE | MyISAM || pk | BASE TABLE | InnoDB || t | BASE TABLE | MyISAM || t2 | BASE TABLE | MyISAM || t3 | BASE TABLE | MyISAM || t7 | BASE TABLE | MyISAM || tables | BASE TABLE | MyISAM || v | VIEW | NULL || v2 | VIEW | NULL || v3 | VIEW | NULL || v56 | VIEW | NULL |+------------+------------+--------+17 rows in set (0.01 sec)
Объяснение: оператор запрашивает список всех таблиц в базе данных db5
, показ только
три сведения: имя таблицы, ее типа, и ее механизма хранения.
Определение для символьных столбцов (например, TABLES.TABLE_NAME
) обычно VARCHAR(
где N
) CHARACTER SET utf8N
по крайней мере 64. MySQL использует сопоставление значения по
умолчанию для этого набора символов (utf8_general_ci
) для всех поисков, видов,
сравнений, и других строковых операций на таких столбцах.
Поскольку некоторые объекты MySQL представляются как файлы, поискы в INFORMATION_SCHEMA
на строковые столбцы может влиять чувствительность к регистру
файловой системы. Для получения дополнительной информации см. Раздел
10.1.7.9, "Сопоставление и INFORMATION_SCHEMA
Поискы".
INFORMATION_SCHEMA
как Альтернатива SHOW
ОператорыSELECT ... FROM INFORMATION_SCHEMA
оператор предназначается как более
непротиворечивый способ обеспечить доступ к информации, предоставленной различным SHOW
операторы, которые поддерживает MySQL (SHOW DATABASES
, SHOW TABLES
, и т.д). Используя SELECT
имеет эти преимущества, по сравнению с SHOW
:
Это соответствует правилам Кодда, потому что весь доступ делается на таблицах.
Можно использовать знакомый синтаксис SELECT
оператор, и только должен изучить некоторые имена таблиц и имена
столбцов.
Конструктор не должен волноваться о добавляющих ключевых словах.
Можно фильтровать, сортировать, связать, и преобразовать следствия INFORMATION_SCHEMA
запросы в любой формат Ваши потребности приложения, такие
как структура данных или текстовое представление синтаксическому анализу.
Этот метод является более взаимодействующим с другими системами баз данных. Например, пользователи Базы данных Oracle знакомы с запросами таблиц в словаре данных Oracle.
Поскольку SHOW
знакомо и широко используемый, SHOW
операторы остаются альтернативой. Фактически, наряду с реализацией INFORMATION_SCHEMA
, есть улучшения к SHOW
как описано в Разделе 20.32,
"Расширения SHOW
Операторы".
Каждый пользователь MySQL имеет право получить доступ к этим таблицам, но может видеть только строки в таблицах,
которые соответствуют объектам, для которых у пользователя есть надлежащие права доступа. В некоторых случаях
(например, ROUTINE_DEFINITION
столбец в INFORMATION_SCHEMA.ROUTINES
таблица), пользователи, у которых есть
недостаточные полномочия, видят NULL
. Эти ограничения не просят InnoDB
таблицы; можно видеть их с только PROCESS
полномочие.
Те же самые полномочия применяются к выбору информации от INFORMATION_SCHEMA
и
просмотр той же самой информации через SHOW
операторы. В любом случае у Вас должно быть некоторое полномочие на объекте видеть информацию об этом.
INFORMATION_SCHEMA
запросы, которые ищут информацию больше чем от одной базы данных,
могли бы занять много времени и воздействовать на производительность. Чтобы проверить эффективность запроса,
можно использовать EXPLAIN
. Для получения информации об использовании EXPLAIN
вывод, чтобы настроиться INFORMATION_SCHEMA
запросы, см. Раздел
8.2.4, "Оптимизируя INFORMATION_SCHEMA
Запросы".
Реализация для INFORMATION_SCHEMA
структуры таблиц в MySQL следуют за ANSI/ISO
стандартный компонент SQL:2003 11 Схем. Наше намерение является приблизительным
соответствием с базовой функцией SQL:2003 схема Основной информации F021.
Пользователи SQL Server 2000 (который также следует за стандартом) могут заметить подобие strong. Однако, MySQL
опустил много столбцов, которые не важны для нашей реализации, и добавили столбцы, которые специфичны для MySQL.
Один такой столбец ENGINE
столбец в INFORMATION_SCHEMA.TABLES
таблица.
Хотя другие DBMSs используют множество имен, как syscat
или system
,
стандартное имя INFORMATION_SCHEMA
.
Чтобы избегать использования любого имени, которое резервируется в стандарте или в DB2, SQL-сервере, или Oracle,
мы поменяли имена некоторых столбцов отмеченное "расширение MySQL". (Например, мы изменились COLLATION
к TABLE_COLLATION
в TABLES
таблица.) См. список зарезервированных слов около конца этой статьи:
INFORMATION_SCHEMA
Ссылочные Разделы Следующие разделы описывают каждую из таблиц и столбцов в INFORMATION_SCHEMA
. Для
каждого столбца есть три сведения:
"INFORMATION_SCHEMA
Имя"
указывает на имя для столбца в INFORMATION_SCHEMA
таблица. Это
соответствует стандартному имени SQL, если поле "Remarks" не говорит "расширение MySQL."
"SHOW
Имя" указывает на эквивалентное имя поля в самом
близком SHOW
оператор, если есть тот.
"Комментарии"
обеспечивают дополнительную информацию где применимый. Если это поле NULL
,
это означает, что значение столбца всегда NULL
. Если это поле говорит "расширение MySQL," столбец является
расширением MySQL стандартного SQL.
Много разделов указывают что SHOW
оператор эквивалентен a SELECT
это получает информацию от INFORMATION_SCHEMA
.
Для SHOW
операторы, которые выводят на экран информацию для базы данных значения
по умолчанию, если Вы опускаете a FROM
пункт, можно часто выбирать информацию для базы
данных значения по умолчанию, добавляя db_name
AND TABLE_SCHEMA = SCHEMA()
условие к WHERE
пункт запроса, который получает информацию от INFORMATION_SCHEMA
таблица.
Для получения информации о INFORMATION_SCHEMA
таблицы, определенные для InnoDB
механизм хранения, см. Раздел
20.30,"INFORMATION_SCHEMA
Таблицы для InnoDB
"
. Для получения информации о INFORMATION_SCHEMA
таблицы, определенные для плагина
пула потоков, см. Раздел 20.31, "Пул потоков INFORMATION_SCHEMA
Таблицы".
Для ответов на вопросы, которые часто задают относительно INFORMATION_SCHEMA
база
данных, см. Раздел B.7, "FAQ MySQL 5.6: INFORMATION_SCHEMA
".