Вход/Регистрация
Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
вернуться

Чалышев Максим Михайлович

Шрифт:

Вопросы учеников

Обязательно ли обозначать внешний ключ? Почему это не будет работать просто так?

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

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

1. Повторите материалы данного шага.2. Поясните, в чем отличие первичного и вторичного ключей.

Шаг 9. Ограничения

Введение

Для колонок таблицы в базе данных можно создавать ограничения.

Ограничения – это специальные синтаксические конструкции уровня колонок таблицы, которые предназначены для поддержания ссылочной целостности данных или для вставки правильных данных согласно бизнес-логике приложения.

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

Теория и практика

Все ограничения, которые используются в ORACLE SQL, можно разделить на следующие группы:

1. Ограничения на вставку пустых значений NOT NULL

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

Снять данное ограничение можно с помощью команды изменения поля таблицы MODIFY.

Синтаксис

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

CREATE TABLE TABLENAME (

Column1 NOT NULL, ColumnN NOT NULL

);

Это стандартный синтаксис создания таблицы, к имени колонки добавляется синтаксис ограничения NOT NULL.

Или изменять значения для уже готовой таблицы с помощью команды ALTER TABLE.

ALTER TABLE TABLENAME MODIFY ColumnName NOT NULL

Примеры

Создание таблицы «Корзина» с ограничением на вставку пустых значений в колонки itemNAME, itemCOUNT.

CREATE TABLE shopINgcart (

article VARCHAR2 (50) PRIMARY KEY

,itemNAME VARCHAR2 (50) NOT NULL

,itemCOUNT NUMBER NOT NULL

);

Запрет добавления пустого значения в FirstName в таблицу MAN.

ALTER TABLE MAN MODIFY FirstName NOT NULL

Запрет добавления пустого значения в LAStName.

ALTER TABLE MAN MODIFY LAStName NOT NULL

То есть значение в колонке LAStName MAN обязательно должно быть заполнено.

Снимаем ограничение на вставку пустых значений:

ALTER TABLE MAN MODIFY LAStName NULL

После выполнения команды значение в колонке LAStName MAN обязательно должно быть заполнено.

Ограничения на уникальность

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

Синтаксис

ALTTER TABLE TABLENAME ADD CONSTRAINT cINs_NAME

UNIQUE (columnNAME);

Пример:

ALTTER TABLE CITY ADD CONSTRAINT CITY_uniq

UNIQUE (CITYNAME);

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

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

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

Синтаксис

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 является главной таблицей.

  • Читать дальше
  • 1
  • ...
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: