MySQL - Составной ключ

Здравствуйте, будущие энтузиасты баз данных! Сегодня мы отправимся в увлекательное путешествие в мир составных ключей MySQL. Не волнуйтесь, если вы новички в программировании – я шаг за шагом проведу вас через это понятие, как я делал это для countless студентов на протяжении многих лет преподавания. Так что возьмите кружку вашего любимого напитка и погружайтесь с нами!

MySQL - Composite Key

Что такое составной ключ?

Прежде чем мы углубимся в детали, давайте поймем, что такое составной ключ. Представьте, что вы организовываете большую библиотеку. Вы можете подумать, что одного названия книги будет достаточно для уникальной идентификации. Но что, если у двух книг одинаковое название? Вот где на помощь приходит составной ключ!

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

Создание составного ключа в MySQL

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

Шаг 1: Создание таблицы с составным ключом

CREATE TABLE library (
book_title VARCHAR(100),
author_name VARCHAR(50),
publish_year INT,
ISBN VARCHAR(13),
PRIMARY KEY (book_title, author_name)
);

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

Шаг 2: Ввод данных

Давайте добавим несколько книг в нашу библиотеку:

INSERT INTO library (book_title, author_name, publish_year, ISBN)
VALUES
('Великий Гэтсби', 'Ф. Скотт Фицджеральд', 1925, '9780743273565'),
('Убить пересмешника', 'Harper Lee', 1960, '9780446310789'),
('1984', 'Джордж Оруэлл', 1949, '9780451524935'),
('Гордость и предубеждение', 'Джейн Остин', 1813, '9780141439518');

Теперь, если мы попытаемся ввести дубликат:

INSERT INTO library (book_title, author_name, publish_year, ISBN)
VALUES ('Великий Гэтсби', 'Ф. Скотт Фицджеральд', 2000, '1234567890123');

MySQL выдаст ошибку, так как мы нарушаем ограничение составного ключа. Комбинация 'Великий Гэтсби' и 'Ф. Скотт Фицджеральд' уже существует в нашей таблице.

Удаление составного ключа в MySQL

Иногда вам может потребоваться удалить составной ключ. Не волнуйтесь; это не так уж и страшно! Это как решить перегруппировать вашу библиотеку по-другому.

Вот как вы можете удалить составной ключ:

ALTER TABLE library
DROP PRIMARY KEY;

Эта команда удаляет ограничение primary key из нашей таблицы library. Но будьте осторожны! Это означает, что у вас больше нет уникального идентификатора для ваших строк, что может привести к дублированию записей.

Составной ключ с использованием клиентской программы

Теперь давайте посмотрим, как мы можем работать с составными ключами с помощью клиентской программы MySQL. Я буду использовать командную строку MySQL для этого примера, ноConcepts также применяются к другим клиентским программам.

  1. Сначала подключитесь к вашему MySQL серверу:
mysql -u your_username -p
  1. Выберите вашу базу данных:
USE your_database_name;
  1. Теперь создадим новую таблицу с составным ключом:
CREATE TABLE students (
student_id INT,
course_id INT,
enrollment_date DATE,
grade FLOAT,
PRIMARY KEY (student_id, course_id)
);

В этом примере мы создаем таблицу students, где каждая строка представляет студента, зачисленного на курс. Составной ключ образуется student_id и course_id, что гарантирует, что студент не может быть зачислен на один и тот же курс дважды.

  1. Давайте внесем данные:
INSERT INTO students (student_id, course_id, enrollment_date, grade)
VALUES
(1, 101, '2023-09-01', 85.5),
(1, 102, '2023-09-01', 92.0),
(2, 101, '2023-09-01', 78.5),
(2, 103, '2023-09-02', 88.0);
  1. Теперь, если мы попытаемся ввести дубликат:
INSERT INTO students (student_id, course_id, enrollment_date, grade)
VALUES (1, 101, '2023-09-15', 90.0);

Клиентская программа покажет сообщение об ошибке, так как мы нарушаем ограничение составного ключа.

Заключение

Поздравляю! Вы только что сделали свои первые шаги в мир составных ключей MySQL. Помните, что составные ключи – это как динамический дуэт в мире баз данных – они работают вместе, чтобы поддерживать уникальность и организованность ваших данных.

Пока вы продолжаете свое путешествие в управление базами данных, вы найдете составные ключи incredibly полезными для поддержания целостности данных и установления отношений между таблицами. Они особенно удобны, когда один столбец не Enough для уникальной идентификации строки.

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

Метод Описание
CREATE TABLE ... PRIMARY KEY (column1, column2) Создает таблицу с составным ключом
ALTER TABLE ... ADD PRIMARY KEY (column1, column2) Добавляет составной ключ к существующей таблице
ALTER TABLE ... DROP PRIMARY KEY Удаляет primary key (составной или нет) из таблицы
INSERT INTO ... VALUES ... Вводит данные, respects составное ключевое ограничение
SELECT ... WHERE column1 = value1 AND column2 = value2 Запрашивает данные, используя составной ключ

Счастливого кодирования, и пусть ваши базы данных всегда будут хорошо организованы и эффективны!

Credits: Image by storyset