Скачать книгу

синоним – слово KEY.

      [CONSTRAINT <Имя ограничения>] UNIQUE [<Имя индекса>] (<Список столбцов>)

      Создает уникальный индекс для указанных столбцов. Уникальный индекс отличается от обычного наличием дополнительного ограничения: наборы значений в столбцах, включенных в уникальный индекс, должны быть различны. Иными словами, в таблице не должно быть строк, у которых значения во всех этих столбцах совпадают. Исключение составляют неопределенные значения (NULL): индекс может содержать два (и более) одинаковых набора значений, если хотя бы одно из значений в этих наборах – NULL. Например, ограничение

      UNIQUE (address.phone)

      запрещает добавлять в таблицу Customers (Клиенты) две строки, в которых и адрес, и номер телефона определены и совпадают, но разрешает добавлять строки, в которых адрес совпадает, а номер телефона не определен (то есть столбец phone в обеих строках содержит значение NULL), а также строки, в которых и адрес, и номер телефона не определены.

      Для столбцов с типом TINYBLOB, TINYTEXT, BLOB, TEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB и LONGTEXT необходимо указать количество символов в начале значения столбца, по которым будет проведено индексирование.

      Имя ограничения и имя индекса указывать не обязательно. Если ни имя ограничения, ни имя индекса не указаны, имя индекса присваивается программой автоматически.

      Вместо ключевого слова UNIQUE можно использовать его синонимы – выражения UNIQUE INDEX или UNIQUE KEY.

      • FULLTEXT [<Имя индекса>] (<Список столбцов>).

      Создает полнотекстовый индекс для указанных столбцов. Полнотекстовый индекс обеспечивает ускоренный поиск по значениям символьных столбцов (типы CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT) независимо от длины значений. Такой индекс подобен предметному указателю в книге: он представляет собой список всех слов, встречающихся в значениях столбцов, со ссылками на те значения, в которых каждое слово содержится.

      Полнотекстовый индекс можно создать только в таблицах c типом MyISAM (см. пункт «Опциональные свойства таблицы»). Для поиска с использованием полнотекстового индекса предназначен оператор MATCH… AGAINST, о котором будет идти речь в главе 3.

      Имя индекса указывать не обязательно. Если вы не зададите имя индекса, оно сгенерируется автоматически.

      Вместо ключевого слова FULLTEXT можно использовать его синонимы – выражения FULLTEXT INDEX или FULLTEXT KEY.

      • SPATIAL [<Имя индекса>] (<Список столбцов>).

      Создает индекс для поиска по пространственным и географическим значениям, которые остаются за рамками нашего рассмотрения.

      • [CONSTRAINT <Имя внешнего ключа>].

      FOREIGN KEY [<Имя индекса>] (<Список столбцов>)

      REFERENCES <Имя родительской таблицы>

      (<Список столбцов первичного ключа родительской таблицы>)

      [<Правила поддержания целостности связи>]

      Определяет внешний ключ таблицы (внешние ключи мы рассматривали в главе 1). Настроив внешний ключ, мы тем самым создадим связь между данной (дочерней) таблицей и родительской таблицей. Внешние ключи поддерживаются только для таблиц c типом InnoDB (причем и дочерняя, и родительская таблица должны иметь тип InnoDB), для остальных типов таблиц выражение FOREIGN KEY игнорируется.

      Столбцы, составляющие

Скачать книгу