Beispiel für eine Methode zum Festlegen von MySQL-Fremdschlüsseln

Beispiel für eine Methode zum Festlegen von MySQL-Fremdschlüsseln

1. Methode zum Festlegen des Fremdschlüssels

1. Um in MySQL zwei Tabellen zu verknüpfen, werden zwei wichtige Funktionen verwendet: Fremdschlüssel (FOREIGN KEY) und Verbindung (JOIN). Fremdschlüssel müssen beim Erstellen einer Tabelle definiert werden. Joins können zwei Tabellen über Felder mit gleicher Bedeutung verbinden und werden in der Abfragephase verwendet.

2. Angenommen, es gibt zwei Tabellen, Tabelle A und Tabelle B, die über eine gemeinsame Feld-ID verknüpft sind. Wir nennen diese Verknüpfung R. Wenn die ID der Primärschlüssel in Tabelle A ist, dann ist Tabelle A die Primärtabelle in dieser Beziehung R. Entsprechend ist Tabelle B die Sekundärtabelle in dieser Beziehung. Die ID in Tabelle B ist das, was Tabelle B verwendet, um auf die Daten in Tabelle A zu verweisen. Dies wird als Fremdschlüssel bezeichnet. Der Fremdschlüssel ist also das gemeinsame Feld in der Slave-Tabelle, das zum Referenzieren von Daten in der Master-Tabelle verwendet wird.

Erstellen der Haupttabelle

TABELLE ERSTELLEN demo.importhead ( 
Listennummer INT PRIMARY KEY, 
Lieferanten-ID INT, 
Lagernummer INT, 
Importtyp INT, 
Importmenge DECIMAL(10 , 3 ), 
Importwert DECIMAL(10 , 2 ), 
Rekorder INT, 
Aufnahmedatum DATETIME);

Erstellen einer sekundären Tabelle

TABELLE ERSTELLEN demo.importdetails( 
Listennummer INT, 
Artikelnummer INT, 
Menge DECIMAL(10,3), 
Importpreis DECIMAL(10,2), 
importvalue DECIMAL(10,2), -- Definieren Sie Fremdschlüsseleinschränkungen, geben Sie das Fremdschlüsselfeld und das referenzierte primäre Tabellenfeld an CONSTRAINT fk_importdetails_importhead 
FOREIGN KEY (Listennummer) REFERENZEN importhead (Listennummer)
);

Durch Ausführen dieser SQL-Anweisung definieren wir beim Erstellen der Tabelle eine Fremdschlüsseleinschränkung mit dem Namen fk_importdetails_importhead. Gleichzeitig deklarieren wir, dass sich das Feld listnumber dieser Fremdschlüsseleinschränkung auf das Feld listnumber in der Tabelle importhead bezieht.

Nachdem die Erstellung abgeschlossen ist, können wir sie über SQL-Anweisungen anzeigen. Hier müssen wir die integrierte MySQL-Datenbank zum Speichern von Systeminformationen verwenden:

Informationsschema. Wir können relevante Informationen zu Fremdschlüsseleinschränkungen anzeigen:

Die Tabelle, in der sich die Fremdschlüsseleinschränkung befindet, ist importdetails, und das Fremdschlüsselfeld ist listnumber

Die referenzierte Haupttabelle ist „Importhead“ und das referenzierte Haupttabellenfeld ist „Listnumber“.

Auf diese Weise haben wir durch die Definition der Fremdschlüsseleinschränkung eine Assoziationsbeziehung zwischen den beiden Tabellen hergestellt.

3. Verbinden

In MySQL gibt es zwei Arten von Verknüpfungen: INNER JOIN und OUTER JOIN.

  • Inner Join bedeutet, dass die Abfrageergebnisse nur Datensätze zurückgeben, die die Join-Bedingungen erfüllen. Diese Join-Methode wird häufiger verwendet.
  • Bei äußeren Verknüpfungen verhält es sich anders. Dies bedeutet, dass die Abfrageergebnisse alle Datensätze einer bestimmten Tabelle und die Datensätze einer anderen Tabelle zurückgeben, die die Verknüpfungsbedingungen erfüllen.

Beim Definieren von Fremdschlüsseln müssen Sie die folgenden Regeln beachten:

  • Die Primärtabelle muss bereits in der Datenbank vorhanden sein oder die Tabelle sein, die gerade erstellt wird. Im letzteren Fall sind die Master-Tabelle und die Slave-Tabelle dieselbe Tabelle. Eine solche Tabelle wird als selbstreferenzielle Tabelle bezeichnet, und diese Struktur wird als selbstreferenzielle Integrität bezeichnet.
  • Für die Primärtabelle muss ein Primärschlüssel definiert werden.
  • Primärschlüssel dürfen keine Nullwerte enthalten, in Fremdschlüsseln sind jedoch Nullwerte zulässig. Das heißt, solange jeder von Null verschiedene Wert des Fremdschlüssels im angegebenen Primärschlüssel vorkommt, ist der Inhalt dieses Fremdschlüssels korrekt.
  • Geben Sie nach dem Tabellennamen der Haupttabelle einen Spaltennamen oder eine Kombination aus Spaltennamen an. Diese Spalte oder Spaltenkombination muss der Primärschlüssel oder Kandidatenschlüssel der Primärtabelle sein.
  • Die Anzahl der Spalten im Fremdschlüssel muss mit der Anzahl der Spalten im Primärschlüssel der Primärtabelle übereinstimmen.
  • Der Datentyp der Fremdschlüsselspalte muss mit dem Datentyp der entsprechenden Spalte im Primärschlüssel der Primärtabelle übereinstimmen.

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Fremdschlüsseleinstellungen. Weitere relevante MySQL-Fremdschlüsseleinstellungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • MySQL-Anweisungen zum Erstellen von Primärschlüsseln, Fremdschlüsseln und zusammengesetzten Primärschlüsseln
  • Detaillierte Erklärung der MySQL-Fremdschlüsselverwendung
  • MySQL-Fremdschlüsselverwendung und detaillierte Erklärung
  • MySQL erstellt Fremdschlüssel
  • Ein kurzes Tutorial zum Verständnis von Primärschlüsseln und Fremdschlüsseln in MySQL
  • Zusammenfassung der Probleme beim Löschen von MySQL-Fremdschlüsseln
  • Detaillierte Erklärung der Fremdschlüsseleinschränkungen in MySQL
  • So legen Sie MySQL-Fremdschlüssel für Anfänger fest

<<:  Reiner CSS-Beispielcode für Meteorschauer-Hintergrund

>>:  Zukunftsweisendes Allround-Webdesign: Progressive Enhancement

Artikel empfehlen

5 coole und praktische Einführung in HTML-Tags und -Attribute

Tatsächlich handelt es sich auch hier um einen Cl...

Beispielcode für HTML-Layered-Box-Shadow-Effekt

Schauen wir uns zunächst das Bild an: Heute werde...

So implementieren Sie die Seiten-Screenshot-Funktion in JS

„Seiten-Screenshot“ ist eine Anforderung, die häu...

Detaillierte Erklärung zum einfachen Wechseln von CSS-Themen

Ich habe meiner persönlichen Website vor Kurzem e...

Detaillierte Erklärung des VueRouter-Routings

Inhaltsverzeichnis Vue-Router 1. Verstehen Sie da...

Implementierungscode zur Verwendung der MongoDB-Datenbank in Docker

Holen Sie sich das Mongo-Image sudo docker pull m...

URL-Rewrite-Modul 2.1 URL-Rewrite-Modul – Regeln schreiben

Inhaltsverzeichnis Voraussetzungen Einrichten ein...

CSS3 realisiert den Effekt der kontinuierlichen Dreiecksvergrößerung

1. CSS3-Dreieck vergrößert weiterhin Spezialeffek...

Detaillierte Erklärung der Kernkonzepte und der grundlegenden Verwendung von Vuex

Inhaltsverzeichnis einführen Start Installieren ①...