Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики - стр. 16
Колонку для связи таблицы с другой таблицей называют вторичным ключом, то есть если есть две таблицы связаны по одной или нескольким колонкам, такая колонка во второй связанной таблице называется вторичным ключом.
Вторичный ключ также называют внешним ключом таблицы.
Теория и практика
В нашем примере есть две таблицы (таблица CITY, MAN по колонке CITYCODE), в таблице CITY CITYCODE является первичным ключом.
В таблице MAN CITYCODE будет вторичным ключом.
Синтаксис создания первичного ключа:
CREATE TABLE TABLE_NAME
(
column1 DATAtype NULL/NOT NULL,
column2 DATAtype NULL/NOT NULL,
…
CONSTRAINT constraINt_NAME PRIMARY KEY (column1, column2, … column_n)
);
Также возможно создание первичного ключа с помощью конструкции ALTER TABLE:
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1, column2, … column_n);
Синтаксис создания вторичного ключа:
CREATE TABLE TABLE_NAME (
column1 DATAtype NULL/NOT NULL,
…
CONSTRAINT fk_column
FOREIGN KEY (column1, column2, … column_n)
REFERENCES parent_TABLE (column1, column2, … column_n));
Добавление вторичного ключа с помощью конструкции ALTER TABLE:
ALTER TABLE TABLE_NAME
ADD CONSTRAINT constraINt_NAME
FOREIGN KEY (column1, column2, … column_n)
REFERENCES parent_TABLE (column1, column2, … column_n);
Важные замечания
Первичный ключ может состоять из одной или нескольких колонок.
Пример:
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1);
или же
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1, columnN);
Вопросы учеников
Обязательно ли обозначать внешний ключ? Почему это не будет работать просто так?
Будет работать, но для поддержания ссылочной целостности необходимо использование конструкций SQL для первичных и вторичных ключей.
Контрольные вопросы и задания для самостоятельного выполнения
Шаг 9. Ограничения
Введение
Для колонок таблицы в базе данных можно создавать ограничения.
Ограничения – это специальные синтаксические конструкции уровня колонок таблицы, которые предназначены для поддержания ссылочной целостности данных или для вставки правильных данных согласно бизнес-логике приложения.
То есть ограничения допускают вставку в ячейку таблицы только определенных данных, ограниченных заданными правилами.
Теория и практика
Все ограничения, которые используются в ORACLE SQL, можно разделить на следующие группы:
1. Ограничения на вставку пустых значений NOT NULL
Подобный вид ограничений создается, чтобы огранить вставку пустых значений в базу данных.