Алексей Паутов - MySQL: руководство профессионала
mysql> SELECT LOGFILE_GROUP_NAME, FILE_TYPE, EXTRA
– > FROM INFORMATION_SCHEMA.FILES
– > WHERE FILE_NAME = 'new_undo.dat';
+--------------------+-----------+----------------+
| LOGFILE_GROUP_NAME | FILE_TYPE | EXTRA |
+--------------------+-----------+----------------+
| mygroup | UNDO FILE | CLUSTER_NODE=3 |
| mygroup | UNDO FILE | CLUSTER_NODE=4 |
| mygroup | UNDO FILE | CLUSTER_NODE=5 |
| mygroup | UNDO FILE | CLUSTER_NODE=6 |
+--------------------+-----------+----------------+
4 rows in set (0.01 sec)
Таблица FILES ненормативная. Это было добавлено в MySQL 5.1.6.
Не имеется никаких команд SHOW, связанных с таблицей FILES.
9.22. Таблица INFORMATION_SCHEMA PROCESSLIST
Таблица PROCESSLIST обеспечивает информацию, относительно выполняемых сервером потоков.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
ID
Id
MySQL extension
USER
User
MySQL extension
HOST
Host
MySQL extension
DB
db
MySQL extension
COMMAND
Command
MySQL extension
TIME
Time
MySQL extension
STATE
State
MySQL extension
INFO
Info
MySQL extension
Примечания:
Таблица PROCESSLIST ненормативная. Это было добавлено в MySQL 5.1.7.
Подобно выводу из соответствующей инструкции SHOW, таблица PROCESSLIST покажет информацию только относительно Ваших собственных потоков, если Вы не имеете привилегию PROCESS, тогда Вы будете видеть информацию относительно других потоков. Как анонимный пользователь Вы не можете видеть любые строки вообще.
Если инструкция SQL обращается INFORMATION_SCHEMA.PROCESSLIST, MySQL заполнит всю таблицу один раз, когда, операторное выполнение начинается, так что гарантируется непротиворечивость чтения в течение инструкции. Не имеется никакой непротиворечивости чтения для многооператорной транзакции.
Следующие инструкции эквивалентны:SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
SHOW PROCESSLIST
9.23. Таблица INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS
Таблица REFERENTIAL_CONSTRAINTS обеспечивает информацию относительно внешних ключей.
Примечания:
Таблица REFERENTIAL_CONSTRAINTS была добавлена в MySQL 5.1.10.
TABLE_NAME имеет то же самое значение, что и TABLE_NAME в INFORMATION_SCHEMA.TABLE_CONSTRAINTS.
CONSTRAINT_SCHEMA и CONSTRAINT_NAME идентифицируют внешний ключ.
UNIQUE_CONSTRAINT_SCHEMA и UNIQUE_CONSTRAINT_NAME идентифицируют вызванный ключ.
Единственное допустимое значение в это время для MATCH_OPTION: NONE.
Возможные значения для UPDATE_RULE или DELETE_RULE: CASCADE, SET NULL, SET DEFAULT, RESTRICT, NO ACTION.
9.24. Таблицы INFORMATION_SCHEMA GLOBAL_STATUS и SESSION_STATUS
Таблицы GLOBAL_STATUS и SESSION_STATUS обеспечивают информацию относительно переменных состояния сервера. Их содержание соответствует информации, произведенной инструкциями SHOW GLOBAL STATUS и SHOW SESSION STATUS.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
VARIABLE_NAMEVariable_nameVARIABLE_VALUEValue
Примечания:
Таблицы GLOBAL_STATUS и SESSION_STATUS были добавлены в MySQL 5.1.12.
Столбец VARIABLE_VALUE имеет тип BIGINT. Немногие переменные состояния, которые имеют значения нецелого числа, приведены к значениям BIGINT.
9.25. Таблицы INFORMATION_SCHEMA GLOBAL_VARIABLES и SESSION_VARIABLES
Таблицы GLOBAL_VARIABLES и SESSION_VARIABLES обеспечивают информацию относительно переменных состояния сервера. Их содержание соответствует информации, произведенной инструкциями SHOW GLOBAL VARIABLES и SHOW SESSION VARIABLES.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
VARIABLE_NAMEVariable_nameVARIABLE_VALUEValue
Примечания:
Таблицы GLOBAL_VARIABLES и SESSION_VARIABLES были добавлены в MySQL 5.1.12.
9.26. Другие таблицы INFORMATION_SCHEMA
Авторы предполагают выполнять дополнительные таблицы в INFORMATION_SCHEMA. В частности, они подтверждают потребность в таблице PARAMETERS.
9.27. Расширения инструкции SHOW
Некоторые расширения к инструкциям SHOW сопровождают реализацию INFORMATION_SCHEMA:
SHOW может использоваться, чтобы получить информацию относительно структуры INFORMATION_SCHEMA.
Несколько инструкций SHOW принимают предложение WHERE, которое обеспечивает большее количество гибкости в определении того, которые строки отобразить.
INFORMATION_SCHEMA информационная база данных, так что имя включено в вывод из SHOW DATABASES. Точно так же SHOW TABLES может использоваться с INFORMATION_SCHEMA, чтобы получить список таблиц:
mysql> SHOW TABLES FROM INFORMATION_SCHEMA;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| KEY_COLUMN_USAGE |
| PARTITIONS |
| PLUGINS |
| PROCESSLIST |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| STATISTICS |
| TABLES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
+---------------------------------------+
22 rows in set (0.04 sec)
SHOW COLUMNS и DESCRIBE могут отображать информацию относительно столбцов в индивидуальных таблицах INFORMATION_SCHEMA.
Несколько инструкций SHOW были расширены, чтобы позволить предложение WHERE:
SHOW CHARACTER SET
SHOW COLLATION
SHOW COLUMNS
SHOW DATABASES
SHOW FUNCTION STATUS
SHOW KEYS
SHOW OPEN TABLES
SHOW PROCEDURE STATUS
SHOW STATUS
SHOW TABLE STATUS
SHOW TABLES
SHOW VARIABLES
Предложение WHERE, если представлено, оценено для имен столбцов, отображаемых инструкцией SHOW. Например, инструкция SHOW CHARACTER SET производит эти столбцы вывода:
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
…
Используя предложение WHERE с SHOW CHARACTER SET, Вы обратились бы к тем именам столбца. Например, следующий оператор отображает информацию относительно наборов символов, для которых заданное по умолчанию объединение содержит строку 'japanese':
mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';
+---------+---------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------------------+---------------------+--------+
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
+---------+---------------------------+---------------------+--------+
Эта инструкция отображает многобайтовые наборы символов:
mysql> SHOW CHARACTER SET WHERE Maxlen > 1;
+---------+---------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| euckr | EUC-KR Korean | euckr_korean_ci | 2 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
+---------+---------------------------+---------------------+--------+
9.28. MySQL 5 FAQ INFORMATION_SCHEMA
9.28.1: Имеется ли форум для обсуждения INFORMATION_SCHEMA?
Да. http://forums.mysql.com/list.php?101.
9.28.2: Где я могу найти спецификацию ANSI SQL 2003 для INFORMATION_SCHEMA?
К сожалению, официальные спецификации недоступны свободно. ANSI делает их доступными только за денежку. Однако, имеются доступные книги, например, SQL-99 Complete, Really by Peter Gulutzan and Trudy Pelzer, которые дают всесторонний краткий обзор стандарта, включая INFORMATION_SCHEMA.
9.28.3: Каково различие между Oracle Data Dictionary и MySQL INFORMATION_SCHEMA?
Oracle и MySQL обеспечивают метаданные в таблицах. Однако, Oracle и MySQL используют различные имена таблиц и столбцов. Реализация MySQL более подобна DB2 и SQL Server, которые также поддерживают INFORMATION_SCHEMA как определено в стандарте SQL.
9.28.4: Я могу изменять таблицы, найденные в базе данных INFORMATION_SCHEMA?
Нет. Прикладные программы могут полагаться на некоторую стандартную структуру, и это не должно измениться. По этой причине MySQL AB не может поддерживать ошибки или другие проблемы, которые следуют из изменения таблиц или данных в INFORMATION_SCHEMA.
Глава 10. Поддержка наборов символов
MySQL включает поддержку набора символов, которая дает возможность Вам сохранить данные, использующие ряд наборов символов и выполнять сравнения согласно ряду объединений. Вы можете определять наборы символов на уровне сервера, базы данных, таблицы и столбца. MySQL поддерживает использование наборов символов для типов хранения MyISAM, MEMORY, NDBCluster и InnoDB.
Эта глава обсуждает следующие темы
Что является наборами символов и объединениями?