Oracle obcy klucz

Oracle obcy klucz
Klucz obce odnosi się do kolumny lub zestawu kolumn w jednej tabeli bazy danych, która odnosi się do klucza podstawowego innego tabeli. Klucze zagraniczne są niesamowitym narzędziem, które zapewnia integralność w Twojej bazie danych.

Klucze zagraniczne są tak cenne i słynne, że są klasyfikowane jako poziom 3 na etapach normalizacji bazy danych. W 3NF wszystkie atrybuty (kolumny) w tabeli są bezpośrednio zależne od klucza podstawowego tej tabeli i nie ma zależności przechodnie.

Wprowadzenie kluczy obcych może pomóc w utrzymaniu wymagań 3NF, zapewniając, że wartości w kolumnie klucza obcego istnieją tylko w odwołanym kluczu podstawowym.

Celem tego samouczka jest pokazanie, jak tworzyć i używać klucza obcego w bazie danych Oracle. Ten samouczek jest zorientowany na początkujących i nie omawiamy tego, jak wdrożyć klawisze zagraniczne w normalizacji bazy danych.

Utwórz oświadczenie zagranicznych kluczowych

Możemy utworzyć klucz obcy podczas tworzenia tabeli za pomocą instrukcji Utwórz tabelę i klauzulę klucza obcego.

Możemy wyrazić składnię, jak pokazano następująco:

Utwórz Tabela Table_name (
Kolumna 1 BATATYPE,
Kolumna 2 BataType,

Klucz obcy (kolumna 1, kolumna2,…)
REFERENCJE INTE_TABLE_NAME (ONTLE_COLUMN1, ONNE_COLUMN2,…)
);

Nazwa_bolika odnosi się do tabeli, którą chcesz utworzyć w bazie danych. Definiujemy również kolumny tabeli, odpowiedni typ danych i różne ograniczenia.

Na koniec nazywamy klauzulą ​​klucza obcego, aby określić kolumnę lub kolumny, które chcemy wymyślić referencje dotyczące klucza obcego.

Aby najlepiej zilustrować użycie klawiszy obcych, weźmy dwa tabele, jak pokazano następujące stwierdzenia: Utwórz:

Utwórz bazy danych tabeli
(
numer identyfikacyjny wygenerowany domyślnie na null jako tożsamość,
Nazwa varchar2 (50) nie null,
numer default_port,
najnowszy_wersja varchar2 (20) nie null,
Typ varchar2 (20) nie null,
język varchar2 (20) nie null,
Klucz zagraniczny (id)
Odniesienia rozmiar_stats (baza danych)
);

Tabela 2:

Utwórz tabelę size_stats (
Klucz podstawowy numer podstawowy bazy danych,
size_on_disk liczba nie null,
Numer SOISE_ Compressed
);

W pierwszej klauzuli tworzymy tabelę, aby przechowywać informacje o bazie danych, takie jak nazwa bazy danych, port domyślny, najnowsza wersja bazy danych, typ bazy danych i język.

Ponadto uwzględniamy klauzulę klucza obcego, która definiuje nowy klucz obcy w kolumnie identyfikacyjnej tabeli bazy danych. Ten klucz obcy odwołuje się do bazy danych w tabeli size_stats. Dlatego dobrze jest upewnić się, że tabela size_stats istnieje przed utworzeniem tabeli baz danych.

Po skonfigurowaniu tabel próbek, wstawmy przykładowe dane w tabeli do demonstracji.

Wstaw do size_stats (baza danych, size_on_disk, size_compressed) wartości (1, 100.45, 94.55);
Wstaw do size_stats (baza danych, size_on_disk, size_compressed) wartości (2, 567.67, 344.43);
Wstaw do size_stats (baza danych, size_on_disk, size_compressed) wartości (3, 649.30, 500.13);
wstaw do size_stats (baza danych, size_on_disk, size_compressed) wartości (4, 45.62, 39.96);
Wstaw do size_stats (Batabase_id, size_on_disk, size_compressed) wartości (5, 1000.12, 986.43);

Następnie dodaj dane do tabeli baz danych, jak pokazano następująco:

Wstaw do baz danych (nazwa, default_port, najnowszy_wersja, typ, język)
Wartości („Oracle”, 1521, „19c”, „relacyjne”, „sql”);
Wstaw do baz danych (nazwa, default_port, najnowszy_wersja, typ, język)
Wartości („mysql”, 3306, 8.0 ', „relacyjne”, „sql”);
Wstaw do baz danych (nazwa, default_port, najnowszy_wersja, typ, język)
Wartości („postgresql”, 5432, „13”, „relacyjny”, „sql”);
Wstaw do baz danych (nazwa, default_port, najnowszy_wersja, typ, język)
Wartości („MongoDB”, 27017, '4.4 ', „nie odnoszący się”, „javascript”);
Wstaw do baz danych (nazwa, default_port, najnowszy_wersja, typ, język)
Wartości („Microsoft SQL Server”, 1433, „2017”, „Relacyjne”, „T-SQL”);

Pierwsze instrukcje wstawiania powinny podać nam tabelę, która zawiera statystyki wielkości bazy danych, jak pokazano następująco:

Druga tabela zawiera informacje o bazie danych, jak pokazano następująco:

Po zastosowaniu klucza obcego zapewnia, że ​​dostarczone dane są nienaruszone i nie dodano nieprawidłowych danych.

Na przykład, jeśli próbujemy dodać nową bazę danych z identyfikatorem, który nie istnieje w tabeli statystyk, powinien ona zwrócić błąd w następujący sposób:

Wstaw do baz danych (nazwa, default_port, najnowszy_wersja, typ, język)
Wartości („sqlite”, null, „3.34 ', „relacyjne”, „c”);

Wynikowy błąd:

[23000] [2291] ORA-02291: Ograniczenie integralności (HR.Sys_c007781) naruszywszy - nie znaleziono klucza dla rodziców

Upuść obce ograniczenie

Możesz usunąć istniejącą obcokrajową nazwę ograniczenia za pomocą polecenia Alter Table, jak pokazano następująco:

Alter Tale Table_name
Upuść ograniczenie zagraniczne_key_name;

Włącz/wyłącz klucz obcy

Możemy również wyłączyć lub włączyć klawisz obcy bez usuwania go z tabeli, jak pokazano w następujących poleceniach:

Zmień tabelę TABLE_NAME
Wyłącz ograniczenie wartości_key_name;

Aby włączyć klucz obcy, użyj następującego polecenia:

Zmień tabelę TABLE_NAME
Włącz ograniczenie zagraniczne_key_name;

Wniosek

W tym samouczku nauczyłeś się korzystać z klawiszy obcych w tabelach Oracle, aby ulepszyć i zapewnić integralność danych.