In diesem Artikel erfahren Sie, wie Sie der Spalte in der Tabelle unserer SQL-Datenbank einen Fremdschlüssel hinzufügen.
Der UNBEKANNTER SCHLÜSSEL wird in SQL verwendet, um den Datensatz zweier Tabellen in der Datenbank zu verbinden. Die als FOREIGN KEY in einer Tabelle definierte Spalte muss der PRIMARY KEY in einer anderen Tabelle in derselben Datenbank sein.
Wir können der Spalte auf einfache Weise einen Fremdschlüssel auf zwei Arten hinzufügen:
- Fügen Sie einen Fremdschlüssel mit der Anweisung „Create table“ hinzu
- Fügen Sie einen Fremdschlüssel mit der Alter Table-Anweisung hinzu
Wenn Sie der Spalte in der SQL-Tabelle einen AUSLÄNDISCHEN SCHLÜSSEL hinzufügen möchten, müssen Sie die folgenden Schritte in der angegebenen Reihenfolge ausführen:
- Erstellen Sie die Datenbank im System.
- Erstellen Sie zwei Tabellen in derselben Datenbank.
- Tabellenstruktur vor dem Hinzufügen eines Fremdschlüssels anzeigen.
- Fügen Sie der Tabelle einen Fremdschlüssel hinzu.
- Sehen Sie sich die Tabellenstruktur an.
Nun erklären wir die oben genannten Schritte anhand eines Beispiels:
Schritt 1: Erstellen Sie eine Datenbank
In der Structured Query Language ist das Erstellen einer Datenbank der erste Schritt zum Speichern der strukturierten Tabellen in der Datenbank.
Verwenden Sie die folgende SQL-Syntax, um eine Datenbank zu erstellen:
CREATE DATABASE Database_Name;
Angenommen, Sie möchten das erstellen Fahrzeuge Datenbank. Dazu müssen Sie den folgenden Befehl in Structured Query Language eingeben:
CREATE DATABASE Vehicles;
Schritt 2: Erstellen Sie zwei Tabellen in der Datenbank
Jetzt müssen Sie die folgende SQL-Syntax zum Erstellen der Tabellen in Ihrer Datenbank verwenden:
CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) );
Die folgende SQL-Abfrage erstellt die Cars_Details Tabelle in der Fahrzeuge Datenbank.
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), );
Die folgende Abfrage erstellt Cars_Price_Details Tabelle in der Fahrzeuge Datenbank:
CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL );
Schritt 3: Sehen Sie sich die Tabellenstruktur vor dem Hinzufügen des Fremdschlüssels an
Nach der Tabellenerstellung und dem Einfügen von Daten können Sie die Struktur beider Tabellen anzeigen, indem Sie die folgende Abfrage in Ihre SQL-Anwendung eingeben:
DESC Cars or DESCRIBE Cars ;
Feld | Typ | NULL | Schlüssel | Standard | Extra |
---|---|---|---|---|---|
Autokennzeichen | INT | NEIN | BEI | NULL | auto_increment |
Modell | INT | Ja | - | NULL | - |
Autoname | Varchar(20) | Ja | - | NULL | |
Farbe | Varchar(20) | Ja | - | NULL | - |
DESC Cars_Price_Details;
Feld | Typ | NULL | Schlüssel | Standard | Extra |
---|---|---|---|---|---|
Auto Model | INT | NEIN | BEI | NULL | - |
Car_Price | INT | NEIN | - | NULL |
Schritt 4: Fügen Sie der Spalte in der Tabelle einen Fremdschlüssel hinzu
Wenn Sie den Fremdschlüssel zum Zeitpunkt der Tabellenerstellung hinzufügen möchten, müssen Sie die folgende CREATE TABLE-Syntax in SQL verwenden:
CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ;
Beispiel
Die folgende Abfrage fügt den FOREIGN KEY zur Spalte „Model“ in der Tabelle „Cars_Details“ hinzu:
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ;
Diese Abfrage in SQL-Joins die Cars_Details Tisch mit der Cars_Price_Details Tabelle mit Hilfe eines Fremdschlüssels.
Schritt 5: Sehen Sie sich die Tabellenstruktur nach dem Hinzufügen des Fremdschlüssels an
Um das Ergebnis der in ausgeführten Abfrage zu überprüfen die 4ThSchritt, Sie müssen den folgenden DESC-Befehl in SQL eingeben:
DESC Cars_Details;
Feld | Typ | NULL | Schlüssel | Standard | Extra |
---|---|---|---|---|---|
Autokennzeichen | INT | Ja | PRIMÄR | NULL | auto_increment |
Modell | INT | NEIN | AUSLÄNDISCH | NULL | - |
Autoname | Varchar(20) | Ja | - | NULL | - |
Farbe | Varchar(20) | Ja | - | NULL | - |
Preis | INT | NEIN | - | NULL | - |
Durchschnitt | INT | NEIN | - | 0 | - |
Wie in der obigen Ausgabe gezeigt, wird die Spalte „Modell“ als Fremdschlüssel erstellt.
Fügen Sie der vorhandenen Tabelle einen Fremdschlüssel hinzu
Wenn Sie den Fremdschlüssel zur vorhandenen Tabelle hinzufügen möchten, müssen Sie in SQL die folgende ALTER-Syntax verwenden:
ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);
Die folgende Abfrage fügt einen FOREIGN KEY zur Model-Spalte hinzu, wenn die Cars_Details-Tabelle bereits im Datenbanksystem vorhanden ist:
ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);
Diese ALTER-Abfrage in SQL-Joins die Cars_Details Tisch mit der Cars_Price_Details Tabelle mit Hilfe eines Fremdschlüssels.
Fremdschlüssel aus der Tabelle löschen
Wenn Sie den Fremdschlüssel aus der Spalte der Tabelle löschen möchten, müssen Sie Folgendes verwenden ÄNDERN Syntax in SQL:
ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;
Die folgende Abfrage löscht den erstellten FOREIGN KEY aus der Model-Spalte der Cars_Details-Tabelle:
ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;