ВУЗ:
Составители:
Рубрика:
Для строковых типов, кроме ENUM, значением по умолчанию является пустая стро-
ка. Для ENUM значение по умолчанию равно первой перечисляемой величине (если явно не
задано другое значение по умолчанию с помощью директивы DEFAULT).
Значения по умолчанию должны быть константами. Это означает, например, что не-
льзя установить для столбца ''даты'' в качестве значения по умолчанию величину функции,
такой как NOW() или CURRENT_DATE.
KEY является синонимом для INDEX.
В MySQL ключ UNIQUE может иметь только различающиеся значения. При попыт-
ке добавить новую строку с ключом, совпадающим с существующей строкой, возникает
ошибка выполнения команды.
PRIMARY KEY представляет собой уникальный ключ KEY с дополнительным
ограничением, т.е. столбцы с данным ключом должны быть определены как NOT NULL. В
MySQL этот ключ называется PRIMARY (первичный). Таблица может иметь только один
первичный ключ PRIMARY KEY. Если PRIMARY KEY отсутствует в таблицах, а неко-
торое приложение запрашивает его, то MySQL может превратить в PRIMARY KEY пер-
вый ключ UNIQUE, не имеющий ни одного столбца NULL.
PRIMARY KEY может быть многостолбцовым индексом. Однако нельзя создать
многостолбцовый индекс, используя в определении столбца атрибут ключа PRIMARY
KEY. Именно таким образом только один столбец будет отмечен как первичный. Необходи-
мо использовать синтаксис PRIMARY KEY(index_col_name, ...).
Если ключ PRIMARY или UNIQUE состоит только из одного столбца и он принад-
лежит к числовому типу, то на него можно сослаться также, как на _rowid (новшество
версии 3.23.11).
Если индексу не назначено имя, то ему будет присвоено первое имя в
index_col_name, возможно, с суффиксами (_2, _3, ...), делающими это имя уни-
кальным. Имена индексов для таблицы можно увидеть, используя SHOW INDEX FROM
tbl_name. SHOW Syntax.
С помощью выражения col_name(length) можно указать индекс, для которо-
го используется только часть столбца CHAR или VARCHAR. Это поможет сделать файл
индексов намного меньше.
Индексацию столбцов BLOB и TEXT поддерживают только таблицы с типом
MyISAM. Назначая индекс столбцу с типом BLOB или TEXT, всегда НЕОБХОДИМО ука-
зывать длину этого индекса:
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
В версии MySQL 3.23.23 и более поздних можно создавать также специальные ин-
дексы FULLTEXT. Они применяются для полнотекстового поиска. Эти индексы поддер-
живаются только таблицами типа MyISAM, и они могут быть созданы только из столбцов
VARCHAR и TEXT. Индексирование всегда выполняется для всего столбца целиком, ча-
стичная индексация не поддерживается. Более подробно эта операция описана в разделе
MySQL section.
Выражения FOREIGN KEY, CHECK и REFERENCES фактически ничего не де-
лают. Они введены только из соображений совместимости, чтобы облегчить перенос кода с
других SQL-серверов и запускать приложения, создающие таблицы со ссылками.
Для каждого столбца NULL требуется один дополнительный бит, при этом величина
столбца округляется в большую сторону до ближайшего байта.
Максимальную длину записи в байтах можно вычислить следующим образом:
длина записи = 1+
+ (сумма длин столбцов)+
66
Страницы
- « первая
- ‹ предыдущая
- …
- 64
- 65
- 66
- 67
- 68
- …
- следующая ›
- последняя »