# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 4 Администрирование баз данных
    • 4.5 Справочник по языку администрирования баз данных
      • 4.5.6 Синтаксис команды SHOW
        • 4.5.6.1 Получение информации по базам данных, таблицам, столбцам и индексам
        • 4.5.6.2 SHOW TABLE STATUS
        • 4.5.6.3 SHOW STATUS
        • 4.5.6.4 SHOW VARIABLES
        • 4.5.6.5 SHOW LOGS
        • 4.5.6.6 SHOW PROCESSLIST
        • 4.5.6.7 SHOW GRANTS
        • 4.5.6.8 SHOW CREATE TABLE

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

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.

User Comments

Posted by dpk@dpk.net on Monday July 15 2002, @12:01pm[Delete] [Edit]

Note, there does not appear to be a way to read
the actual contents of an index, unfortunately.

Posted by Alex Deleon on Friday May 17 2002, @6:24am[Delete] [Edit]

How retrieving information about table constraints, checks?

Posted by Steve Brown on Friday May 17 2002, @6:24am[Delete] [Edit]

Dont try optimize table on a table that has a
full text index, unless you can afford your
database to be down for half the day... We tried
it, it bit us.

Posted by Christian Kirsch on Friday May 17 2002, @6:24am[Delete] [Edit]

Since MySQL does not provide constraints nor
checks, you can't SHOW them.

Posted by Charles Arehart on Friday May 17 2002, @6:24am[Delete] [Edit]

It isn't obvious from the descriptions above, but
the SHOW COLUMNS statement requires a FROM
tablename clause.

Posted by robert@simp-tech.com on Sunday June 16 2002, @6:18pm[Delete] [Edit]

For ALEX...

OPTIMIZE TABLE table_name

...does the trick on my end

Posted by gearond@cvc.net on Friday August 30 2002, @4:58pm[Delete] [Edit]

It used to be that MySQL save EVERYTHING that was
in the CREATE TABLE statement, even if it didn't
use it or pay attention to it. So the question
about contraints is valid. The purpose, I would
imagine, is to be able to export the table
creation statements at a later time to another
database, or when MySQL develops the features that
would use the contraints, et. al.

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.