KEY в Oracle SQL — как создавать связи между таблицами и уникальные ограничения

🟢 KEY в Oracle SQL. Введение

KEY в Oracle SQL — не самостоятельный оператор, а часть ключевых конструкций, таких как PRIMARY KEY, FOREIGN KEY, UNIQUE KEY. Эти конструкции позволяют гарантировать уникальность данных и создавать связи между таблицами.

Понимание того, как работает KEY, важно для поддержания целостности базы данных и предотвращения ошибок на уровне структуры.


🔤 Написание

KEY используется в следующих выражениях:

sql
PRIMARY KEY (столбец)
FOREIGN KEY (столбец) REFERENCES таблица(столбец)
UNIQUE (столбец)

🔄 Где используется KEY

  • Создание первичных ключей (PRIMARY KEY)

  • Объявление внешних ключей (FOREIGN KEY)

  • Обеспечение уникальности значений

  • Установка связей между таблицами

  • Поддержка нормализации данных


🧪 10 Примеров использования KEY

1️⃣ PRIMARY KEY при создании таблицы

sql
CREATE TABLE customers (
customer_id NUMBER PRIMARY KEY,
name VARCHAR2(100)
);

2️⃣ FOREIGN KEY при создании таблицы

sql
CREATE TABLE orders (
order_id NUMBER PRIMARY KEY,
customer_id NUMBER,
CONSTRAINT fk_customer FOREIGN KEY (customer_id)
REFERENCES customers(customer_id)
);

3️⃣ Уникальный ключ

sql
CREATE TABLE users (
user_id NUMBER PRIMARY KEY,
email VARCHAR2(100) UNIQUE
);

4️⃣ Добавление PRIMARY KEY через ALTER

sql
ALTER TABLE employees
ADD CONSTRAINT pk_emp PRIMARY KEY (employee_id);

5️⃣ Добавление FOREIGN KEY через ALTER

sql
ALTER TABLE orders
ADD CONSTRAINT fk_emp FOREIGN KEY (employee_id)
REFERENCES employees(employee_id);

6️⃣ Удаление ключа

sql
ALTER TABLE orders
DROP CONSTRAINT fk_customer;

7️⃣ Именованный ключ при создании таблицы

sql
CREATE TABLE departments (
dept_id NUMBER,
dept_name VARCHAR2(50),
CONSTRAINT pk_dept PRIMARY KEY (dept_id)
);

8️⃣ Составной PRIMARY KEY

sql
CREATE TABLE course_registrations (
student_id NUMBER,
course_id NUMBER,
CONSTRAINT pk_course_student PRIMARY KEY (student_id, course_id)
);

9️⃣ FOREIGN KEY на составной ключ

sql
CREATE TABLE course_results (
student_id NUMBER,
course_id NUMBER,
CONSTRAINT fk_course_reg FOREIGN KEY (student_id, course_id)
REFERENCES course_registrations(student_id, course_id)
);

🔟 Просмотр ключей в системе

sql
SELECT constraint_name, constraint_type, table_name
FROM user_constraints
WHERE constraint_type IN ('P', 'R', 'U');
  • P — Primary key

  • R — Foreign key

  • U — Unique key


🧩 Заключение

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

💡 Запомни:

  • PRIMARY KEY — уникальный и NOT NULL

  • FOREIGN KEY — устанавливает связь с другой таблицей

  • UNIQUE — уникальные значения, но можно NULL

  • Все ключи можно именовать и модифицировать через ALTER


🔜 Следующая статья:

IS в Oracle SQL — как сравнивать и проверять NULL


 

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии