Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie verwende ich Fremdschlüssel in MySQL, um die Datenintegrität aufrechtzuerhalten?

WBOY
Freigeben: 2023-08-02 08:09:09
Original
1395 Leute haben es durchsucht

Wie verwende ich Fremdschlüssel in MySQL, um die Datenintegrität aufrechtzuerhalten?

Zitat:
In einer Datenbank ist die Datenintegrität sehr wichtig. Durch die Verwendung von Fremdschlüsseln stellen wir sicher, dass die Datenkonsistenz und -integrität zwischen verwandten Tabellen in der Datenbank gewahrt bleibt. In diesem Artikel erfahren Sie, wie Sie Fremdschlüssel verwenden, um die Datenintegrität in MySQL aufrechtzuerhalten.

  1. Tabellen und Zuordnungen erstellen:

Zuerst müssen wir zwei Tabellen erstellen und diese verknüpfen. Angenommen, wir haben zwei Tabellen, eine ist die Tabelle „Bestellungen“ und die andere ist die Tabelle „Kunden“. Jede Bestellung muss einem Kunden zugeordnet werden, und wir verwenden Fremdschlüssel, um diese Zuordnung aufrechtzuerhalten.

Die SQL-Anweisung zum Erstellen der Tabelle „Kunden“ lautet wie folgt:

CREATE TABLE customers (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    email VARCHAR(100)
);
Nach dem Login kopieren

Die SQL-Anweisung zum Erstellen der Tabelle „Bestellungen“ lautet wie folgt:

CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    order_date DATE,
    amount DECIMAL(10,2),
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);
Nach dem Login kopieren

In der obigen Tabelle „Bestellungen“ haben wir eine Datei mit dem Namen „ „customer_id“-Spalte und verwendete die „id“-Spalte der „customers“-Tabelle in der Fremdschlüsseleinschränkung.

  1. Daten einfügen:

Als nächstes fügen wir einige Daten in die Tabelle „Kunden“ und die Tabelle „Bestellungen“ ein. Hier ist die SQL-Anweisung für einige Beispieldaten:

-- 插入customers表格的数据 --
INSERT INTO customers (name, email) VALUES ('张三', 'zhangsan@example.com');
INSERT INTO customers (name, email) VALUES ('李四', 'lisi@example.com');
INSERT INTO customers (name, email) VALUES ('王五', 'wangwu@example.com');

-- 插入orders表格的数据 --
INSERT INTO orders (order_date, amount, customer_id) VALUES ('2021-01-01', 100.00, 1);
INSERT INTO orders (order_date, amount, customer_id) VALUES ('2021-01-02', 200.00, 2);
INSERT INTO orders (order_date, amount, customer_id) VALUES ('2021-01-03', 300.00, 3);
Nach dem Login kopieren

In die obige SQL-Anweisung fügen wir die Bestelldaten ein, indem wir den „id“-Wert aus der Tabelle „customers“ verwenden, die dem Fremdschlüssel zugeordnet ist.

  1. Einschränkungen und Wartung von Fremdschlüsseln:

Jetzt testen wir die Einschränkungen und Wartung von Fremdschlüsseln. Wir versuchen, die folgende Anweisung auszuführen:

-- 尝试在orders表格中插入无效的customer_id值 --
INSERT INTO orders (order_date, amount, customer_id) VALUES ('2021-01-04', 400.00, 4);
Nach dem Login kopieren

Aufgrund des Vorhandenseins von Fremdschlüsseleinschränkungen schlägt dieser Einfügevorgang mit einer Fehlermeldung fehl.

In MySQL können Fremdschlüssel auch mit den Optionen „ON DELETE“ und „ON UPDATE“ definiert werden, um die Aktion anzugeben, die ausgeführt werden soll, wenn eine Zeile in der zugehörigen Tabelle gelöscht oder aktualisiert wird. Hier ist ein Beispiel:

-- 创建orders表格时定义外键的ON DELETE和ON UPDATE选项 --
CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    order_date DATE,
    amount DECIMAL(10,2),
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE ON UPDATE CASCADE
);
Nach dem Login kopieren

Im obigen Beispiel legen wir die Optionen „ON DELETE CASCADE“ und „ON UPDATE CASCADE“ des Fremdschlüssels fest, was bedeutet, dass, wenn eine Zeile in der Tabelle „Kunden“ gelöscht oder aktualisiert wird, Alle Zeilen in der zugehörigen Tabelle „Bestellungen“ werden ebenfalls gelöscht oder entsprechend aktualisiert.

Zusammenfassung:

Durch die Verwendung von Fremdschlüsseln können wir die Konsistenz und Integrität der Daten zwischen verwandten Tabellen in der Datenbank sicherstellen. In MySQL können wir das Schlüsselwort „FOREIGN KEY“ verwenden, um Fremdschlüssel zu erstellen und beim Einfügen oder Aktualisieren von Daten eingeschränkt zu werden. Darüber hinaus können wir die Optionen „ON DELETE“ und „ON UPDATE“ verwenden, um die Aktion zu definieren, die ausgeführt werden soll, wenn die durch den Fremdschlüssel verknüpften Zeilen in der zugehörigen Tabelle gelöscht oder aktualisiert werden.

Das Obige ist eine Einführung in die Verwendung von Fremdschlüsseln in MySQL, um die Datenintegrität aufrechtzuerhalten. Ich hoffe, es wird Ihnen hilfreich sein. Danke fürs Lesen!

Das obige ist der detaillierte Inhalt vonWie verwende ich Fremdschlüssel in MySQL, um die Datenintegrität aufrechtzuerhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!