Auf dem heutigen Markt, wo viele multinationale Unternehmen relationale Datenbanken verwenden, um Daten zu verarbeiten, ist es sehr wichtig zu verstehen, wie jede einzelne Tabelle miteinander in Beziehung gesetzt werden kann. Daher werde ich in diesem Artikel über Fremdschlüssel-SQL den Fremdschlüssel in Tabellen besprechen, damit Sie die Beziehung zwischen Tabellen verstehen.
Die folgenden Themen werden in diesem Artikel behandelt:
- Was ist eine Fremdschlüsselbeschränkung?
- Regeln für Fremdschlüssel
- Fremdschlüsseloperationen:
- SQL-Fremdschlüssel beim Erstellen einer Tabelle
- SQL-Fremdschlüssel auf Alter Table
- Fremdschlüssel löschen
Was ist eine Fremdschlüsselbeschränkung?
Ein Fremdschlüssel ist eine Art Schlüssel, der verwendet wird, um zwei Tabellen in einer Datenbank zu verknüpfen. Ein Fremdschlüssel ist also ein Attribut oder eine Sammlung von Attributen in einer Tabelle, die auf den Primärschlüssel in einer anderen Tabelle verweist.
Beispiel:Wenn Tabelle A und Tabelle B miteinander in Beziehung stehen und Tabelle A aus dem Primärschlüssel besteht, wird diese Tabelle als referenzierte Tabelle oder übergeordnete Tabelle bezeichnet. Wenn Tabelle B aus einem Fremdschlüssel besteht, wird diese Tabelle in ähnlicher Weise als referenzierende Tabelle oder untergeordnete Tabelle bezeichnet. Siehe folgendes Bild:
Da Sie nun wissen, was ein Fremdschlüssel ist, lassen Sie uns als Nächstes in diesem Artikel über Fremdschlüssel-SQL die Regeln des Fremdschlüssels verstehen.
Regeln für Fremdschlüssel
Die Regeln für Fremdschlüssel lauten wie folgt:
- Die Tabelle mit dem Fremdschlüssel wird als untergeordnete Tabelle bezeichnet, und die Tabelle, auf die durch den Fremdschlüssel verwiesen wird, wird als übergeordnete Tabelle bezeichnet.
- Nullwerte sind in einem Fremdschlüssel erlaubt
- Fremdschlüssel können dupliziert werden
- Es kann mehr als einen einzelnen Fremdschlüssel in einer Tabelle geben
- Die zwischen den Tabellen hergestellte Beziehung wird als referenzielle Integrität bezeichnet
Nachdem Sie nun die Regeln eines Fremdschlüssels kennen, sehen wir uns als Nächstes in diesem Artikel über Fremdschlüssel-SQL die Operationen des Fremdschlüssels an.
Fremdschlüsseloperationen:
Um die verschiedenen Operationen auf dem Fremdschlüssel zu verstehen, betrachten Sie die folgenden zwei Tabellen:
Kundentabelle:
Kundennummer | Kundenname | Telefonnummer |
1 | Rohan | 9876543210 |
2 | Sonali | 9876567864 |
3 | Ajay | 9966448811 |
4 | Geeta | 9765432786 |
5 | Shubham | 9944888756 |
Kurstabelle:
Kurs-ID | Kursname | Kundennummer |
c01 | DevOps | 2 |
c02 | Maschinelles Lernen | 4 |
c03 | RPA | 1 |
c04 | Tableau | 3 |
c05 | AWS | 2 |
Nun, wenn Sie beobachten, bezieht sich die Kunden-ID-Spalte in der Kurstabelle auf die Kunden-ID-Spalte in der Kundentabelle. Die Spalte „customerID“ aus der Tabelle „customers“ ist der Primärschlüssel und die Spalte „customerID“ aus der Tabelle „courses“ ist der Fremdschlüssel dieser Tabelle.
Beginnend mit der ersten Operation:
Fremdschlüssel beim Erstellen der Tabelle
Sie können die folgende Syntax verwenden, um einen Fremdschlüssel für die Spalte „Kundennummer“ zu erstellen, wenn Sie die Tabelle „Kurse“ erstellen:
#For SQL Server/ MS Access/ Oracle CREATE TABLE courses ( courseID varchar NOT NULL PRIMARY KEY, courseName varchar NOT NULL, customerID int FOREIGN KEY REFERENCES customers(customerID) ); #For MySQL CREATE TABLE courses ( courseID varchar NOT NULL PRIMARY KEY, courseName varchar NOT NULL, customerID int PRIMARY KEY (courseID), FOREIGN KEY (customerID) REFERENCES customers(customerID) );
Fremdschlüssel auf mehrere Spalten anwenden
Um beim Erstellen einer Tabelle Fremdschlüssel auf mehrere Spalten anzuwenden, sehen Sie sich das folgende Beispiel an:
CREATE TABLE courses ( courseID varchar NOT NULL, courseName varchar NOT NULL, customerID int, PRIMARY KEY (courseID), CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES customers(customerID) );
Lassen Sie uns als Nächstes in diesem Artikel über Fremdschlüssel-SQL sehen, wie der Fremdschlüssel für Alter Table verwendet wird.
Fremdschlüssel auf Alter Table
Sie können die folgende Syntax verwenden, um einen Fremdschlüssel in der Spalte „Kunden-ID“ zu erstellen, wenn die Tabelle „Kurse“ bereits erstellt wurde und Sie nur die Tabelle ändern möchten:
ALTER TABLE courses ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);
Wenn Sie der Foreign Key-Einschränkung einen Namen hinzufügen und ihn für mehrere Spalten definieren möchten, verwenden Sie die folgende SQL-Syntax:
ALTER TABLE courses ADD CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES Customers(customerID);
Lassen Sie uns als Nächstes in diesem Artikel über Fremdschlüssel-SQL verstehen, wie ein Fremdschlüssel gelöscht wird
Fremdschlüssel löschen
Um den Fremdschlüssel zu löschen, können Sie sich auf das folgende Beispiel beziehen:
#For SQL Server/ MS Access/ Oracle ALTER TABLE courses DROP CONSTRAINT FK_CustomerCourse; For MYSQL ALTER TABLE courses DROP FOREIGN KEY FK_CustomerCourse;
Damit beenden wir diesen Artikel. Ich hoffe, Sie haben verstanden, wie man Foreign Key in SQL verwendet. Wenn Sie mehr über erfahren möchten MySQL und lernen Sie diese relationale Open-Source-Datenbank kennen, und sehen Sie sich dann unsere an MySQL-DBA-Zertifizierungsschulung was mit Live-Schulungen unter Anleitung und realer Projekterfahrung einhergeht. Dieses Training wird Ihnen dabei helfen, MySQL gründlich zu verstehen und das Thema zu beherrschen.
Haben Sie eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Artikels über „Fremdschlüssel-SQL“ und ich werde mich bei Ihnen melden.