Читаем MySQL 5.0. Библиотека программиста полностью

Помимо перечисленных свойств, для столбца можно также задать свойства UNIQUE и PRIMARY KEY, однако соответствующие настройки ключевых столбцов и индексов можно указать и после определения всех столбцов таблицы. Мы будем рассматривать только второй вариант создания ключевых столбцов и индексов. Об этом и пойдет речь в следующем пункте. Ключевые столбцы и индексы

После того как определены все столбцы таблицы, можно перечислить через запятую ключевые столбцы и индексы (см. листинги 2.1–2.4). Вы можете использовать следующие конструкции:

• [CONSTRAINT <Имя ключа>] PRIMARY KEY (<Список столбцов>).

Определяет первичный ключ таблицы (о первичных ключах было рассказано в главе 1). В таблице может быть только один первичный ключ, состоящий из одного или нескольких столбцов. Столбцам, входящим в первичный ключ, автоматически присваивается свойство NOT NULL. Ключевое слово CONSTRAINT и имя ключа можно опустить, так как для первичного ключа заданное имя игнорируется и используется имя PRIMARY.

Если в состав первичного ключа входят столбцы с типом TINYBLOB, TINYTEXT, BLOB, TEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB и LONGTEXT, необходимо указать количество символов в начале значения столбца; при этом первичный ключ содержит не полные значения столбца, а только начальные подстроки значений. Пример определения первичного ключа:

PRIMARY KEY (id)

Именно так мы создали первичный ключ для таблиц Customers (Клиенты), Orders (Заказы) и Products (Товары) (см. листинги 2.2–2.4). Если бы мы решили не использовать дополнительный столбец id в таблице Products, а образовать первичный ключ из столбцов description (название) и details (описание), то в команду создания таблицы Products нужно было бы включить следующее определение:

PRIMARY KEY (description,details(10))

В этом случае в первичный ключ вошли бы столбец description и начальные подстроки значений столбца details длиной 10 символов.

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

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

INDEX (name)

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

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

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

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

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

UNIQUE (address.phone)

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных