Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики. Максим Михайлович Чалышев
ключ может состоять из одной или нескольких колонок.
Пример:
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1);
или же
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1, columnN);
Вопросы учеников
Обязательно ли обозначать внешний ключ? Почему это не будет работать просто так?
Будет работать, но для поддержания ссылочной целостности необходимо использование конструкций 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);
Названия городов, только уникальные значения.
Ограничения на вторичный ключ
Подобный вид ограничений мы уже рассматривали, когда изучали первичные и вторичные ключи. Смысл