MySQL - Composite Key

Hallo, angehende Datenbankenthusiasten! Heute machen wir uns auf eine aufregende Reise in die Welt der MySQL-Composite Keys. Keine Sorge, wenn Sie neu im Programmieren sind – ich werde Sie durch dieses Konzept Schritt für Schritt führen, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Holen Sie sich therefore eine Tasse Ihres Lieblingsgetränks und tauchen wir ein!

MySQL - Composite Key

Was ist ein Composite Key?

Bevor wir ins Detail gehen, lassen Sie uns verstehen, was ein Composite Key ist. Stellen Sie sich vor, Sie organisieren eine riesige Bibliothek. Sie könnten denken, dass der Titel eines Buches allein ausreicht, um es eindeutig zu identifizieren. Aber was ist, wenn zwei Bücher den gleichen Titel haben? Da kommt der Composite Key ins Spiel!

Ein Composite Key ist eine Kombination aus zwei oder mehr Spalten, die gemeinsam eine Zeile in einer Tabelle eindeutig identifizieren. Es ist so, als ob Sie sowohl den Titel des Buches als auch den Namen des Autors verwenden, um sicherzustellen, dass Sie über das genaue Buch sprechen, das Sie möchten.

Erstellen eines MySQL-Composite Keys

Nun, da wir verstehen, was ein Composite Key ist, lernen wir, wie man einen in MySQL erstellt. Wir verwenden ein einfaches Beispiel einer library-Tabelle, um dieses Konzept zu veranschaulichen.

Schritt 1: Erstellen einer Tabelle mit einem Composite Key

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

In diesem Beispiel erstellen wir eine Tabelle namens library. Der Composite Key besteht aus den Spalten book_title und author_name. Das bedeutet, dass wir zwar mehrere Bücher mit dem gleichen Titel oder mehrere Bücher desselben Autors haben könnten, aber die Kombination aus Titel und Autor muss eindeutig sein.

Schritt 2: Einfügen von Daten

Fügen wir einige Bücher unserer Bibliothek hinzu:

INSERT INTO library (book_title, author_name, publish_year, ISBN)
VALUES
('The Great Gatsby', 'F. Scott Fitzgerald', 1925, '9780743273565'),
('To Kill a Mockingbird', 'Harper Lee', 1960, '9780446310789'),
('1984', 'George Orwell', 1949, '9780451524935'),
('Pride and Prejudice', 'Jane Austen', 1813, '9780141439518');

Wenn wir jetzt versuchen, einen doppelten Eintrag einzufügen:

INSERT INTO library (book_title, author_name, publish_year, ISBN)
VALUES ('The Great Gatsby', 'F. Scott Fitzgerald', 2000, '1234567890123');

werfen MySQL einen Fehler, weil wir die Composite-Key-Bedingung verletzen. Die Kombination aus 'The Great Gatsby' und 'F. Scott Fitzgerald' exists bereits in unserer Tabelle.

Entfernen eines MySQL-Composite Keys

Manchmal müssen Sie möglicherweise einen Composite Key entfernen. Keine Sorge, es ist nicht so schrecklich, wie es sich anhört! Es ist so, als ob Sie Ihre Bibliothek auf eine andere Weise neu organisieren.

Hier ist, wie Sie einen Composite Key entfernen können:

ALTER TABLE library
DROP PRIMARY KEY;

Dieser Befehl entfernt die Primärschlüsselbedingung aus unserer library-Tabelle. Aber seien Sie vorsichtig! Das bedeutet, dass Sie keinen eindeutigen Identifikator für Ihre Zeilen mehr haben, was zu doppelten Einträgen führen kann.

Composite Key mit einem Client-Programm verwenden

Nun sehen wir, wie wir mit Composite Keys in einem MySQL-Client-Programm arbeiten können. Ich verwende den MySQL-Befehlszeilen-Client für dieses Beispiel, aber die Konzepte gelten auch für andere Client-Programme.

  1. Zuerst verbinden Sie sich mit Ihrem MySQL-Server:
mysql -u your_username -p
  1. Wählen Sie Ihre Datenbank aus:
USE your_database_name;
  1. Erstellen wir eine neue Tabelle mit einem Composite Key:
CREATE TABLE students (
student_id INT,
course_id INT,
enrollment_date DATE,
grade FLOAT,
PRIMARY KEY (student_id, course_id)
);

In diesem Beispiel erstellen wir eine students-Tabelle, in der jede Zeile einen in einem Kurs eingeschriebenen Schüler darstellt. Der Composite Key besteht aus den Spalten student_id und course_id, was bedeutet, dass ein Schüler nicht zweimal in den gleichen Kurs eingeschrieben sein kann.

  1. Fügen wir einige Daten hinzu:
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. Wenn wir jetzt versuchen, einen doppelten Eintrag einzufügen:
INSERT INTO students (student_id, course_id, enrollment_date, grade)
VALUES (1, 101, '2023-09-15', 90.0);

wird das Client-Programm eine Fehlermeldung anzeigen, weil wir die Composite-Key-Bedingung verletzen.

Fazit

Glückwunsch! Sie haben gerade Ihre ersten Schritte in die Welt der MySQL-Composite Keys unternommen. Denken Sie daran, dass Composite Keys das dynamische Duo der Datenbankwelt sind – sie arbeiten zusammen, um Ihre Daten einzigartig und organisiert zu halten.

Während Sie Ihre Reise im Datenbankmanagement fortsetzen, werden Sie feststellen, dass Composite Keys äußerst nützlich sind, um die Datenintegrität zu erhalten und Beziehungen zwischen Tabellen herzustellen. Sie sind besonders praktisch, wenn eine einzelne Spalte nicht ausreicht, um eine Zeile eindeutig zu identifizieren.

Üben Sie weiter und bald werden Sie Composite Keys wie ein Profi erstellen und verwalten! Und denken Sie daran, in der Welt der Datenbanken, wie im Leben, sind manchmal zwei (oder mehr) besser als einer!

Credits: Image by storyset