SQL - Foreign Key: Building Relationships Between Tables
Hai there, penggemar basis data yang bersemangat! Hari ini, kita akan memulai perjalanan yang menarik ke dalam dunia SQL Foreign Keys. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda melalui konsep penting ini yang menjadi tulang punggung basis data relasional. Jadi, siapkan buku catatan maya Anda, dan mari kita masuk ke dalam!
The SQL Foreign Key: Connecting the Dots
Imajinasikan Anda sedang mengatur perpustakaan besar. Anda memiliki satu rak untuk buku dan lainnya untuk penulis. Apakah tidak akan menyenangkan jika Anda dapat menghubungkan setiap buku ke penulisnya tanpa harus menulis detail lengkap penulis di setiap buku? Itu tepat apa yang dilakukan Foreign Key di SQL!
What is a Foreign Key?
Foreign Key adalah kolom (atau beberapa kolom) dalam satu tabel yang mengacu ke Primary Key dalam tabel lain. Itu seperti jembatan antara dua tabel, membentuk hubungan antar mereka.
mari kita lihat contoh sederhana:
CREATE TABLE Authors (
AuthorID INT PRIMARY KEY,
AuthorName VARCHAR(100)
);
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(200),
AuthorID INT,
FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
);
Dalam contoh ini, AuthorID
dalam tabel Books
adalah Foreign Key yang mengacu ke AuthorID
dalam tabel Authors
. Ini berarti setiap buku terhubung ke seorang penulis, tetapi kita tidak perlu mengulang semua detail penulis untuk setiap buku.
Why Use Foreign Keys?
- Data Integrity: Foreign Keys memastikan bahwa Anda tidak dapat menambahkan buku dengan penulis yang tidak ada.
- Relationships: Mereka memungkinkan Anda untuk membuat hubungan yang berarti antara tabel.
- Efficiency: Anda dapat menyimpan data sekali dan mengacu kepadanya banyak kali, menghemat ruang dan mengurangi redundant.
Foreign Key Constraint on an Existing Column
kadang-kadang, Anda mungkin ingin menambahkan constraint Foreign Key ke kolom yang sudah ada. Jangan khawatir, SQL punya solusi untuk Anda! Berikut adalah cara Anda dapat melakukannya:
ALTER TABLE Books
ADD CONSTRAINT FK_AuthorID
FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID);
Perintah ini menambahkan constraint Foreign Key ke kolom AuthorID
yang sudah ada dalam tabel Books
. Kita menamai constraint kita FK_AuthorID
- selalu baik memberi nama yang berarti ke constraint Anda.
A Word of Caution
Sebelum menambahkan constraint Foreign Key ke kolom yang sudah ada, pastikan bahwa semua nilai dalam kolom itu memiliki nilai yang sesuai dalam tabel yang dituju. Jika tidak, SQL akan memberikan kesalahan!
Dropping a FOREIGN KEY: Breaking Up Isn't Hard to Do
kadang-kadang, hubungan berubah, dan Anda mungkin perlu menghapus constraint Foreign Key. Berikut adalah cara Anda dapat melakukannya:
ALTER TABLE Books
DROP FOREIGN KEY FK_AuthorID;
Perintah ini menghapus constraint Foreign Key yang kita tambahkan sebelumnya. Ingat, ini tidak menghapus kolom atau data nya - itu hanya menghapus hubungan antara tabel.
Primary Key vs Foreign Key: The Dynamic Duo
Pikirkan Primary Keys dan Foreign Keys sebagai pasangan dinamis di dunia basis data. Mereka masing-masing memiliki perannya, tetapi mereka bekerja terbaik bersama. mari kitauraikan:
Primary Key
- Mengidentifikasi setiap rekord dalam tabel
- Harus mengandung nilai YUNIK dan tidak dapat mengandung NULL
- Sebuah tabel hanya dapat memiliki SATU Primary Key
Foreign Key
- Mengacu ke Primary Key dalam tabel lain
- Dapat mengandung nilai duplikat dan NULL
- Sebuah tabel dapat memiliki Banyak Foreign Keys
Berikut adalah tabel yang menguraikan perbedaan utama mereka:
Feature | Primary Key | Foreign Key |
---|---|---|
Uniqueness | Harus unik | Dapat duplikat |
NULL values | Tidak dapat NULL | Dapat NULL |
Number per table | Hanya satu | Dapat banyak |
Purpose | Mengidentifikasi rekord dalam tabelnya | Mengacu ke rekord dalam tabel lain |
mari kita lihat mereka dalam aksi dengan contoh yang lebih kompleks:
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
Name VARCHAR(100),
Email VARCHAR(100)
);
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
CREATE TABLE OrderItems (
OrderItemID INT PRIMARY KEY,
OrderID INT,
ProductName VARCHAR(100),
Quantity INT,
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);
Dalam contoh ini, kita memiliki tiga tabel:
-
Customers
denganCustomerID
sebagai Primary Key -
Orders
denganOrderID
sebagai Primary Key danCustomerID
sebagai Foreign Key yang mengacu keCustomers
-
OrderItems
denganOrderItemID
sebagai Primary Key danOrderID
sebagai Foreign Key yang mengacu keOrders
Struktur ini memungkinkan kita untuk melacak pelanggan yang memesan pesanan mana, dan item mana yang ada di setiap pesanan, tanpa perlu mengulang informasi pelanggan atau pesanan yang tidak diperlukan.
Conclusion: Bringing It All Together
Dan di sana Anda punya nya, teman-teman! Kita telah berpergian melalui negeri Foreign Keys, dari penciptaannya ke perubahan dan penghapusan nya. Kita telah melihat bagaimana mereka bekerja bersama dengan Primary Keys untuk menciptakan struktur basis data yang kuat dan efisien.
Ingat, Foreign Keys adalah seperti tetangga ramah di lingkungan basis data Anda - mereka membantu tabel berkomunikasi dan bekerja bersama secara harmonis. Mereka memastikan integritas data, menciptakan hubungan yang berarti, dan menjaga basis data Anda berjalan mulus.
Sekarang, sebagai Anda terus melanjutkan petualangan SQL Anda, terus mencoba konsep ini. Cobalah membuat tabel Anda sendiri, tambahkan beberapa constraint Foreign Key, dan lihat bagaimana mereka mempengaruhi operasi data Anda. Semakin Anda berlatih, semakin hal ini akan menjadi alami.
Selamat coding, dan semoga permintaan Anda selalu mengembalikan hasil yang Anda harapkan!
Credits: Image by storyset