Heim  >  Artikel  >  Datenbank  >  Wozu dienen MySQL-Fremdschlüssel?

Wozu dienen MySQL-Fremdschlüssel?

青灯夜游
青灯夜游Original
2022-11-11 16:56:349005Durchsuche

MySQL-Fremdschlüssel werden hauptsächlich verwendet, um die Zuordnung zwischen der Master-Tabelle und der Slave-Tabelle herzustellen, eine Verbindung für die Daten der beiden Tabellen herzustellen und die Konsistenz und Integrität der Daten in den beiden Tabellen einzuschränken Aufrechterhaltung der Datenkonsistenz und -integrität. Der Hauptzweck besteht darin, die in der Fremdschlüsseltabelle gespeicherten Daten zu steuern. Eine Tabelle kann einen oder mehrere Fremdschlüssel haben, und der Fremdschlüssel kann null sein. Wenn er nicht null ist, muss der Wert jedes Fremdschlüssels einem bestimmten Wert des Primärschlüssels in der Haupttabelle entsprechen.

Wozu dienen MySQL-Fremdschlüssel?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

MySQL-Fremdschlüsseleinschränkung (FOREIGN KEY) ist ein spezielles Feld der Tabelle, das häufig zusammen mit Primärschlüsseleinschränkungen verwendet wird. Bei zwei Tabellen mit einer zugehörigen Beziehung ist die Tabelle, in der sich der Primärschlüssel im zugehörigen Feld befindet, die Primärtabelle (übergeordnete Tabelle) und die Tabelle, in der sich der Fremdschlüssel befindet, die sekundäre Tabelle (untergeordnete Tabelle).

Die Rolle von MySQL-Fremdschlüsseln:

Datenkonsistenz und -integrität aufrechterhalten. Der Hauptzweck besteht darin, die in der Fremdschlüsseltabelle gespeicherten Daten zu kontrollieren. Um zwei Tabellen zu verknüpfen, können Fremdschlüssel nur auf die Werte der Spalten in der Tabelle verweisen!

Fremdschlüssel werden verwendet, um die Beziehung zwischen der Master-Tabelle und der Slave-Tabelle herzustellen, eine Verbindung für die Daten in den beiden Tabellen herzustellen und die Konsistenz und Integrität der Daten in den beiden Tabellen einzuschränken. An einem Obststand gibt es beispielsweise nur vier Obstsorten: Äpfel, Pfirsiche, Pflaumen und Wassermelonen. Wenn Sie dann zum Obststand kommen, um Obst zu kaufen, können Sie nur Äpfel, Pfirsiche, Pflaumen und Wassermelonen auswählen kann keine anderen Früchte kaufen.

Wenn ein Datensatz aus der Haupttabelle gelöscht wird, muss auch der entsprechende Datensatz aus der Tabelle entsprechend geändert werden. Eine Tabelle kann einen oder mehrere Fremdschlüssel haben, und der Fremdschlüssel kann null sein. Wenn er nicht null ist, muss der Wert jedes Fremdschlüssels einem bestimmten Wert des Primärschlüssels in der Haupttabelle entsprechen.

Bei der Definition von Fremdschlüsseln müssen Sie folgende Regeln beachten:

  • Die Haupttabelle muss bereits in der Datenbank vorhanden sein oder die Tabelle sein, die gerade erstellt wird. Im letzteren Fall handelt es sich bei der Master-Tabelle und der Slave-Tabelle um dieselbe Tabelle. Eine solche Tabelle wird als selbstreferenzielle Tabelle bezeichnet, und diese Struktur wird als selbstreferenzielle Integrität bezeichnet.

  • Muss einen Primärschlüssel für die Haupttabelle definieren.

  • Primärschlüssel dürfen keine Nullwerte enthalten, in Fremdschlüsseln sind jedoch Nullwerte zulässig. Das heißt, solange jeder Nicht-Null-Wert des Fremdschlüssels im angegebenen Primärschlüssel vorkommt, ist der Inhalt des Fremdschlüssels korrekt.

  • Geben Sie den Spaltennamen oder eine Kombination von Spaltennamen nach dem Tabellennamen der Haupttabelle an. Diese Spalte oder Spaltenkombination muss der Primärschlüssel oder Kandidatenschlüssel der Haupttabelle sein.

  • Die Anzahl der Spalten im Fremdschlüssel muss mit der Anzahl der Spalten im Primärschlüssel der Haupttabelle übereinstimmen.

  • Der Datentyp der Spalte im Fremdschlüssel muss mit dem Datentyp der entsprechenden Spalte im Primärschlüssel der Haupttabelle übereinstimmen.

Fremdschlüsseleinschränkungen beim Ändern der Tabelle hinzufügen

Die Voraussetzung für das Hinzufügen von Fremdschlüsseleinschränkungen ist: Die Daten in der Fremdschlüsselspalte in der Slave-Tabelle müssen mit den Daten in der Primärschlüsselspalte in konsistent sein die Haupttabelle oder es sind keine Daten vorhanden.

Das Syntaxformat zum Hinzufügen von Fremdschlüsseleinschränkungen beim Ändern der Datentabelle lautet wie folgt:

ALTER TABLE <数据表名> ADD CONSTRAINT <外键名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

Beispiel: Ändern Sie die Datentabelle tb_emp2, legen Sie das Feld deptId als Fremdschlüssel fest und verknüpfen Sie es mit der Primärschlüssel-ID von die Datentabelle tb_dept1

ALTER TABLE tb_emp2 ADD CONSTRAINT fk_tb_dept1 FOREIGN KEY(deptId)REFERENCES tb_dept1(id);

Wozu dienen MySQL-Fremdschlüssel?

Fremdschlüsseleinschränkungen löschen

Wenn eine Fremdschlüsseleinschränkung in einer Tabelle nicht mehr benötigt wird, muss sie aus der Tabelle gelöscht werden. Sobald der Fremdschlüssel gelöscht wird, wird die Zuordnung zwischen der Master-Tabelle und der Slave-Tabelle freigegeben.

Das Syntaxformat zum Löschen von Fremdschlüsseleinschränkungen lautet wie folgt:

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

Beispiel: Fremdschlüsseleinschränkungen fk_tb_dept1 in Datentabelle tb_emp2 löschen

ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;

Wozu dienen MySQL-Fremdschlüssel?

【Verwandte Empfehlungen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWozu dienen MySQL-Fremdschlüssel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet MySQL-Beitritt?Nächster Artikel:Was bedeutet MySQL-Beitritt?