Читаем Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики полностью

Пример:

ALTTER TABLE CITY ADD CONSTRAINT CITY_uniq

UNIQUE (CITYNAME);

Названия городов, только уникальные значения.

<p>Ограничения на вторичный ключ</p>

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

Синтаксис

ALTER TABLE for_TABLE

ADD CONSTRAINT fk_const_NAME

FOREIGN KEY (fk_column)

REFERENCES primary_talbe (pk_column);

Здесь for_TABLE, fk_column – таблица, колонка, куда устанавливается ограничение. Проверка значений происходит в таблице primary_talbe и колонке pk_column.

Пример

Здесь для таблицы MAN колонки CITYCODE устанавливается ссылочное ограничение по колонке CITYCODE с таблицей CITY, где CITY является главной таблицей.

ALTER TABLE MAN

ADD CONSTRAINT fk_MAN_CITY_CODE

FOREIGN KEY (CITYCODE)

REFERENCES CITY (CITYCODE);

Ограничение CHECK на вставку и изменение данных

– вычитание;

Синтаксис

ALTER TABLE TABLENAME ADD CONSTRAINT CHECK_NAME

CHECK (condition);

Здесь condition – условие, CHECK_NAME – наименование ограничения, TABLENAME – имя таблицы.

Пример

Ограничение в таблице MAN на возраст (YEAROLD) больше 16 лет:

ALTER TABLE MAN ADD CONSTRAINT CHECK_YEAROLD_MAN

CHECK (YEAROLD> 16);

<p>Важные замечания</p>

Ограничение уникальности можно также создавать для нескольких колонок таблицы, это делается следующим образом:

ALTTER TABLE CITY ADD CONSTRAINT CITY_uniq

UNIQUE (CITYNAME, CITYCODE);

При этом отдельно необходимо контролировать вставку пустых значений для соответствующих полей таблицы.

Существуют дополнительные опции для создания ограничений ссылочной целостности:

• On delete cAScade – автоматическое удаление связанных строк по внешнему ключу;

• On delete NULL – значение внешнего ключа устанавливается в NULL.

При создании множества ограничений CHECK необходимо, чтобы между ними не было конфликтов, то есть чтобы правила не противоречили друг другу.

Условие в ограничении CHECK может ссылаться на любой столбец таблицы, но не может ссылаться на столбцы другой таблицы.

<p>Вопросы учеников</p>

Чем ограничение на уникальность UNIQUE отличается от первичного ключа (Primary KEY)?

Первичный ключ в таблице может быть только один, ограничений на уникальность может быть много. В таблице в поле с ограничением уникальности допускается вставка пустых значений. Также для первичного ключа создается специальный индекс (pk).

Если колонка в таблице содержит пустые значения, а мы добавляем к этой колонке ограничение NOT NULL, что произойдет?

Вы получите сообщение об ошибке, и ограничение не будет добавлено.

Можно ли создавать ограничения для колонок BLOB, CLOB?

Нет, некоторые виды ограничений можно создавать только для простых типов полей.

<p>Контрольные вопросы и задания для самостоятельного выполнения</p>

1. Добавьте ограничение для уникальных значений на колонки PHONENUM таблицы AUTO.

2. Добавьте ограничение на вставку пустых значений для колонки YEAROLD в таблице MAN.

3. Добавьте ограничение CHECK для колонки YEAROLD в таблице MAN, чтобы YEAROLD было меньше 100.

4. Добавьте ограничение ссылочной целостности для двух таблиц – AUTO и MAN.

<p>Шаг 10. Индексы</p><p>Введение</p>

Индексы – это специальные ссылочные массивы в базах данных. Назначение индексов – ускорение поиска данных, процессов сортировки данных. Обычно индексы увеличивают производительность запросов к базе данных.

<p>Теория и практика</p>

Индексы работают по принципу b-tree, то есть сбалансированной древовидной структуры.

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

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

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

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

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии