4.5.6.1 Получение информации по базам данных, таблицам, столбцам и индексам
Можно использовать два альтернативных синтаксиса - tbl_name FROM db_name
и
db_name.tbl_name
. Приведенные ниже два оператора эквивалентны:
mysql> SHOW INDEX FROM mytable FROM mydb;
mysql> SHOW INDEX FROM mydb.mytable;
Команда SHOW DATABASES
выдает список баз данных на компьютере, где
установлен сервер MySQL. Этот список можно также получить,
воспользовавшись инструментом командной строки mysqlshow
. В версии 4.0.2
можно увидеть только те базы данных, для которых у вас есть какие-либо
привилегии, если вы не имеете глобальной привилегии SHOW DATABASES
.
Команда SHOW TABLES
выводит список таблиц в указанной базе данных. Этот
список также можно получить, используя команду mysqlshow db_name
.
Примечание: если у пользователя нет никаких привилегий для таблицы,
таблица не будет показана в результатах команды SHOW TABLES
или mysqlshow
db_name
.
Команда SHOW OPEN TABLES
выводит список таблиц, которые в настоящий момент
открыты в кэше таблицы. See section 5.4.7 Открытие и закрытие таблиц в MySQL. В
поле Comment
указывается, сколько раз таблица кэшировалась (cached
) и
сколько раз использовалась (in_use
).
Команда SHOW COLUMNS
выводит список столбцов в заданной таблице. Если
указать параметр FULL
, то будут показаны также ваши привилегии для каждого
столбца. Если типы столбцов отличаются от заданных в параметрах оператора
CREATE TABLE
, учтите, что MySQL иногда изменяет типы столбцов. See section 6.5.3.1 Молчаливые изменения определений столбцов.
Оператор DESCRIBE
предоставляет почти такую же информацию, что и SHOW
COLUMNS
. See section 6.6.2 Синтаксис команды DESCRIBE
(Получение информации о столбцах).
Команда SHOW FIELDS
является синонимом команды SHOW COLUMNS
, а
команда SHOW KEYS
- синонимом SHOW INDEX
. Список столбцов или
индексов таблицы можно также вывести при помощи команды mysqlshow
db_name tbl_name
или mysqlshow -k db_name tbl_name
.
Команда SHOW INDEX
выводит информацию по индексу в формате, подобном
формату вывода запроса SQLStatistics в ODBC
. Выводятся следующие столбцы:
Столбец | Значение
|
Table | Имя таблицы.
|
Non_unique | 0 если индекс не может содержать дублирующихся значений.
|
Key_name | Имя индекса.
|
Seq_in_index | Порядковый номер столбца в индексе, начиная с 1.
|
Column_name | Имя столбца.
|
Collation | Как столбцы отсортированы в индексе. В MySQL в данном столбце могут присутствовать значения 'A' (в порядке возрастания) или NULL (не отсортирован).
|
Cardinality | Количество уникальных значений в индексе. Обновляется путем запуска isamchk -a .
|
Sub_part Количество индексированных символов, если столбец индексируется частично. Если проиндексирован весь ключ, то будет содержаться значение NULL .
|
Null | Содержит значение 'YES' , если столбец может содержать NULL .
|
Index_type Используемый метод индексирования.
|
Comment | Различные примечания. На данный момент в версиях MySQL < 4.0.2 выдается, является индекс FULLTEXT или нет.
|
Обратите внимание на то, что значение Cardinality
подсчитывается по
результатам статистики, сохраняющейся в виде целых чисел, которые
недостаточно точны для небольших таблиц.
Столбцы Null
и Index_type
были добавлены начиная с версии MySQL 4.0.2.