TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.3K subscribers
Post #1851 497
🤔 Что такое ключи в БД?

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

🚩Виды ключей

🟠Первичный ключ (Primary Key)
Это одно или несколько полей, которые однозначно идентифицируют каждую запись в таблице. Он должен быть уникальным и не содержать NULL-значений.
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);


🟠Внешний ключ (Foreign Key)
Это поле или набор полей в одной таблице, которое указывает на первичный ключ в другой таблице. Внешние ключи используются для установления и обеспечения целостности ссылок между таблицами.
CREATE TABLE courses (
course_id INT PRIMARY KEY,
course_name VARCHAR(100)
);

CREATE TABLE enrollments (
enrollment_id INT PRIMARY KEY,
student_id INT,
course_id INT,
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);


🟠Кандидатный ключ (Candidate Key)
Это поле или комбинация полей, которое может служить уникальным идентификатором для записи в таблице. Таблица может иметь несколько кандидатных ключей, из которых один выбирается как первичный ключ.
CREATE TABLE users (
user_id INT,
email VARCHAR(100),
phone VARCHAR(20),
PRIMARY KEY (user_id),
UNIQUE (email),
UNIQUE (phone)
);


🟠Альтернативный ключ (Alternate Key)
Это любой кандидатный ключ, который не выбран в качестве первичного ключа. В примере выше email и phone являются альтернативными ключами, так как user_id выбран как первичный ключ.

🟠Составной ключ (Composite Key)
Это ключ, состоящий из двух или более полей, которые вместе уникально идентифицируют запись.
CREATE TABLE order_items (
order_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, product_id)
);


🟠Суррогатный ключ (Surrogate Key)
Это искусственно созданный ключ, который обычно представляет собой уникальный идентификатор, не имеющий смысла вне контекста базы данных.
CREATE TABLE employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(100)
);


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 2
  • 💊 1
More from @easy_php_ru
  1. Oct 17, 2026🤔 Что такое шифрование? Это процесс преобразования данных в защищённый формат (шифртекст)…
  2. Oct 17, 2026🤔 Зачем использовать Rest , если есть Soup? SOAP (Simple Object Access Protocol) и REST (…
  3. Oct 16, 2026🤔 Какие типы БД бывают? Базы данных делятся на реляционные (SQL) и нереляционные (NoSQL).…
  4. Oct 16, 2026🤔 Что такое агрегат? Агрегат – это термин, часто используемый в области баз данных и прог…
  5. Oct 15, 2026🤔 Что такое замыкание? Это функция, которая «захватывает» переменные из внешней области в…
  6. Oct 15, 2026🤔 Что есть кроме микросервисной и монолитной архитектуры? Помимо монолитной и микросервис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →