Heim  >  Artikel  >  Datenbank  >  MySQL-Abfrage-Fremdschlüssel

MySQL-Abfrage-Fremdschlüssel

WBOY
WBOYOriginal
2023-05-14 10:09:072631Durchsuche

MySQL ist ein relationales Datenbankverwaltungssystem und Fremdschlüssel sind eines der wichtigen Konzepte relationaler Datenbanken. Der Fremdschlüssel ist eine Einschränkung zur Beschreibung der Beziehung zwischen Tabellen, die die Integrität und Konsistenz von Daten gewährleisten kann. Das Abfragen von Fremdschlüsseln in MySQL ist ebenfalls ein sehr wichtiger Vorgang. In diesem Artikel wird erläutert, wie Sie mit MySQL Fremdschlüssel abfragen.

1. Ein Fremdschlüssel ist eine oder mehrere Spalten in einer Tabelle. Er wird verwendet, um anzugeben, dass der Wert in dieser Spalte oder mehreren Spalten mit den Daten in einer anderen Tabelle oder dem Primärschlüssel in Beziehung stehen muss ein weiterer Tisch. Diese übereinstimmende Tabelle wird als referenzierte Tabelle bezeichnet. In einer relationalen Datenbank können wir Fremdschlüssel verwenden, wenn wir zwei oder mehr Tabellen verknüpfen möchten.

Der Zweck von Fremdschlüsseln besteht darin, die Datenintegrität und -konsistenz sicherzustellen. Wenn wir einer Tabelle eine Datenzeile hinzufügen und die Daten mit einigen Daten in einer anderen Tabelle übereinstimmen müssen und die Übereinstimmungsbeziehung über einen Fremdschlüssel hergestellt wird, überprüft MySQL den Fremdschlüssel in den neu hinzugefügten Daten Überprüfen Sie, ob die Daten in der referenzierten Tabelle vorhanden sind. Wenn sie nicht vorhanden sind, wird das Einfügen der Daten in die Tabelle verweigert.

2. So erstellen Sie Fremdschlüssel

Es gibt viele Möglichkeiten, Fremdschlüssel in MySQL zu erstellen. Im Folgenden sind zwei gängige Methoden aufgeführt.

1. Verwenden Sie die ALTER TABLE-Anweisung

Das Syntaxformat zum Hinzufügen von Fremdschlüsseln über die ALTER TABLE-Anweisung lautet wie folgt:

ALTER TABLE-Tabellenname ADD CONSTRAINT Fremdschlüsselname FOREIGN KEY (Spaltenname) REFERENCES Tabellenname (Spaltenname). ) einer anderen Tabelle ;

Unter ihnen ist der Fremdschlüsselname ein eindeutiger Name. Der Spaltenname bezieht sich auf den Spaltennamen der aktuellen Tabelle Tabelle sind der Name und der Spaltenname der referenzierten Tabelle.

Zum Beispiel haben wir eine Mitarbeitertabelle (Mitarbeiter) und eine Abteilungstabelle (Abteilungen). Diese sind über einen Fremdschlüssel verknüpft. Wir können die folgende SQL-Anweisung verwenden, um diesen Fremdschlüssel zu erstellen.

ALTER TABLE employees ADD CONSTRAINT dept_fk FOREIGN KEY (dept_id) REFERENCES departments (dept_id);

Diese Anweisung bedeutet, einen Fremdschlüssel namens dept_fk zur Mitarbeitertabelle hinzuzufügen (dept_fk verweist auf die Spalte dept_id der Mitarbeitertabelle, die auf die Spalte dept_id der Abteilungstabelle verweist).

2. Fremdschlüssel beim Erstellen einer Tabelle definieren

Das Definieren von Fremdschlüsseln beim Erstellen einer Tabelle ist ebenfalls eine gängige Methode. Das Syntaxformat lautet wie folgt:

CREATE TABLE 表名 (
列名 数据类型,
外键名称 FOREIGN KEY (列名) REFERENCES 另一个表格的表名 (列名)
);

Um beispielsweise eine Mitarbeitertabelle (Mitarbeiter) und eine Abteilungstabelle (Abteilungen) zu erstellen und die Spalte „dept_id“ als Fremdschlüssel der Tabelle „Mitarbeiter“ zu verwenden, um die Spalte „dept_id“ der Abteilungen zu verknüpfen Tabelle können Sie die folgende SQL-Anweisung verwenden.

CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
dept_id INT,
PRIMARY KEY (id),
FOREIGN KEY (dept_id) REFERENCES departments (dept_id)
)

3. So fragen Sie den Fremdschlüssel ab

Nachdem der Fremdschlüssel in MySQL erstellt wurde, können wir die MySQL-Abfrageanweisung verwenden, um den Fremdschlüssel abzufragen. Das Syntaxformat zum Abfragen von Fremdschlüsseln lautet wie folgt:

SELECT * FROM 表名 WHERE 列名 IS NULL;

Diese Anweisung gibt Daten mit leeren Spaltennamen in der Tabelle zurück. Wenn diese Spalte als Fremdschlüssel definiert ist, lautet das Abfrageergebnis, dass es in der Tabelle keine Zeilen gibt mit den Fremdschlüsseldaten übereinstimmen. Dieses Abfrageergebnis ist sehr nützlich. Es kann uns helfen, die Datensätze zu finden, die manuell gelöst werden müssen und nicht richtig zugeordnet sind.

Zum Beispiel haben wir eine Abteilungstabelle und ihre Spalte dept_id ist als Fremdschlüssel definiert. Wenn wir Datensätze abfragen möchten, die nicht mit der Abteilungstabelle übereinstimmen, können wir die folgende SQL-Anweisung verwenden:

SELECT * FROM departments WHERE dept_id NOT IN (SELECT dept_id FROM employees);

Die Bedeutung dieser Anweisung Ja, fragen Sie die dept_id-Daten in der Abteilungstabelle ab, die nicht in der Mitarbeitertabelle enthalten sind.

4. Zusammenfassung

Die Abfrage von Fremdschlüsseln in MySQL ist ein sehr wichtiger Vorgang. Durch die Definition und Abfrage von Fremdschlüsseln können wir die Integrität und Konsistenz der Daten in der Datenbank sicherstellen, unnötige Fehler verhindern und die Daten genauer und zuverlässiger machen. Achten Sie bei der Verwendung von MySQL auf die Definition und Abfrage von Fremdschlüsseln, um unnötige Fehler aufgrund von Fremdschlüsselbeschränkungen zu vermeiden.

Das obige ist der detaillierte Inhalt vonMySQL-Abfrage-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