Oracle-Datenbank ist ein sehr beliebtes relationales Datenbankverwaltungssystem (RDBMS) mit leistungsstarken Funktionen, einschließlich Unterstützung für Fremdschlüssel.
Ein Fremdschlüssel bezieht sich auf ein Feld oder eine Gruppe von Feldern in einer Tabelle, die zur Verknüpfung mit einer Zeile in einer anderen Tabelle verwendet wird. Damit kann die Datenintegrität sichergestellt und ein abfragebasierter Datenzugriff ermöglicht werden. Vor dem Hinzufügen von Fremdschlüsseleinschränkungen müssen die erforderlichen Tabellen und Verknüpfungen zwischen Tabellen in Oracle eingerichtet werden. In diesem Artikel stellen wir den Einstellungsprozess von Fremdschlüsseln in Oracle im Detail vor.
1. Tabellen und Beziehungen erstellen
Zuerst müssen wir die Tabelle erstellen, die Fremdschlüsseleinschränkungen festlegen muss, und die Tabelle, die auf die Tabelle verweist. Angenommen, wir möchten die Tabelle „customers“ mit der Tabelle „orders“ verknüpfen. Wir können diese beiden Tabellen in Oracle mit dem folgenden Code erstellen:
CREATE TABLE customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50), customer_email VARCHAR(100) ); CREATE TABLE orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
Im obigen Beispiel haben wir zwei Tabellen erstellt, nämlich Kunden und Bestellungen. Die Bestelltabelle enthält das Feld customer_id, das dem Kunden entspricht und das Primärschlüsselfeld der Kundentabelle ist.
2. Fremdschlüsseleinschränkungen hinzufügen
Nachdem wir die Beziehung hergestellt haben, können wir Fremdschlüsseleinschränkungen hinzufügen. Fremdschlüsseleinschränkungen in Oracle können beim Erstellen der Tabelle definiert oder nach dem Erstellen der Tabelle hinzugefügt werden.
Im vorherigen Schritt haben wir Fremdschlüsseleinschränkungen definiert und diese über FOREIGN KEY- und REFERENCES-Anweisungen zur Tabelle hinzugefügt. Hier erläutern wir die Bedeutung jedes Schlüsselworts im Detail:
In Oracle lautet die Syntax zum Hinzufügen einer Fremdschlüsseleinschränkung wie folgt:
ALTER TABLE child_table ADD CONSTRAINT fk_name FOREIGN KEY (child_column) REFERENCES parent_table (parent_column);
wobei „child_table“ die untergeordnete Tabelle ist, die das Fremdschlüsselfeld enthält, „child_column“ der Name der Fremdschlüsselspalte und „parent_table“ der Name der Zieltabelle, parent_column ist der Name der Zieltabelle. Der Name der Primärschlüsselspalte. fk_name ist der Name der Fremdschlüsseleinschränkung und muss eindeutig sein.
Zum Beispiel können wir in unserer Auftragstabelle die folgende Fremdschlüsseleinschränkung hinzufügen (beachten Sie, dass dies zum Zeitpunkt der Tabellenerstellung über eine CREATE TABLE-Anweisung erfolgen kann):
ALTER TABLE orders ADD CONSTRAINT fk_customer_id FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE;
Dadurch wird eine Fremdschlüsseleinschränkung namens fk_customer_id hinzugefügt Bestellungen-Tabelle Schlüsseleinschränkung, die sich auf die Primärschlüsselspalte customer_id in der Kundentabelle bezieht. Wenn Sie eine Zeile in der Tabelle „Kunden“ löschen, werden durch den Vorgang auch alle damit verbundenen Bestellungen gelöscht.
3. Fremdschlüsseleinschränkungen testen
Sobald die Fremdschlüsseleinschränkung zur Tabelle hinzugefügt wurde, können wir testen, ob sie ordnungsgemäß funktioniert. Wir können diese Einschränkung testen, indem wir eine Zeile in die Tabelle „Orders“ einfügen, die nicht mit dem Wert „customer_id“ übereinstimmt:
INSERT INTO orders (order_id, order_date, customer_id) VALUES (1, '2021-01-01', 100); -- ERROR: ORA-02291: integrity constraint (fk_customer_id) violated - parent key not found
Dies führt zu einem Fehler, da es auf einen Wert „customer_id“ verweist, der in der Tabelle „customers“ nicht vorhanden ist. Wir können den Fehlercode ORA-02291 im Zusammenhang mit Integritätseinschränkungen verwenden, um zu überprüfen, ob der Fremdschlüssel funktioniert.
4. Zusammenfassung
In Oracle sind Fremdschlüssel ein wichtiges Werkzeug, um die Datenintegrität sicherzustellen und Beziehungen zwischen Tabellen aufrechtzuerhalten. Wir können die Schlüsselwörter FOREIGN KEY und REFERENCES verwenden, um Fremdschlüsseleinschränkungen und Kaskadenoperationen mit ON DELETE CASCADE, SET NULL oder NO ACTION zu definieren. Nachdem wir die Fremdschlüsseleinschränkung definiert haben, können wir testen, ob sie ordnungsgemäß funktioniert, und sicherstellen, dass sie bei Datenbankoperationen funktioniert.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Einstellungsprozess von Fremdschlüsseln in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!