Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет187/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   183   184   185   186   187   188   189   190   ...   243
Байланысты:
Язык SQL. Базовый курс

CREATE INDEX имя_индекса
ON имя_таблицы
( имя_столбца NULLS FIRST, ... );
CREATE INDEX имя_индекса
ON имя_таблицы
( имя_столбца DESC NULLS LAST, ... );
8.3 Уникальные индексы
Индексы могут также использоваться для обеспечения уникальности значений ат-
рибутов в строках таблицы. В таком случае создается уникальный индекс. Для его
создания используется команда:
CREATE UNIQUE INDEX имя_индекса
ON имя_таблицы
( имя_столбца, ...);
Например, создадим уникальный индекс по столбцу model для таблицы «Самолеты»
(aircrafts):
192


CREATE UNIQUE INDEX aircrafts_unique_model_key
ON aircrafts ( model );
В этом случае мы уже не сможем ввести в таблицу aircrafts строки, имеющие одина-
ковые наименования моделей самолетов. Конечно, мы могли при создании таблицы
задать ограничение уникальности для столбца model, и тогда уникальный индекс был
бы создан автоматически.
Важно, что в уникальных индексах допускается наличие значений NULL, посколь-
ку они считаются не совпадающими ни с какими другими значениями, в том числе
и друг с другом. Если уникальный индекс создан по нескольким атрибутам, то сов-
падающими считаются лишь те комбинации значений атрибутов в двух строках, в
которых совпадают значения всех соответственных атрибутов.
8.4 Индексы на основе выражений
В команде создания индекса можно использовать не только имена столбцов, но также
функции и скалярные выражения, построенные на основе столбцов таблицы. Напри-
мер, если мы захотим запретить значения столбца model в таблице aircrafts, отлича-
ющиеся только регистром символов, то создадим такой индекс:
CREATE UNIQUE INDEX aircrafts_unique_model_key
ON aircrafts ( lower( model ) );
Если теперь попытаться добавить строку, в которой значение атрибута model будет
«Cessna 208 CARAVAN», то PostgreSQL выдаст сообщение об ошибке, даже если значе-
ние атрибута aircraft_code будет уникальным.


Достарыңызбен бөлісу:
1   ...   183   184   185   186   187   188   189   190   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет