Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

KUNCI ASING SQL

Dalam artikel ini, kita akan belajar tentang batasan FOREIGN KEY dan cara mendefinisikan batasan FOREIGN KEY untuk membangun hubungan antara dua tabel.

Dalam Relational Databases Management System (RDBMS), FOREIGN KEY adalah bidang atau sekelompok bidang yang digunakan untuk membangun hubungan antara dua tabel atau menggabungkan dua tabel.

  • KUNCI ASING juga dikenal sebagai kunci referensi di RDBMS
  • Menggunakan batasan FOREIGN KEY antara dua tabel, kita mendefinisikan hubungan induk-anak antara dua tabel.
  • Bidang mendefinisikan kendala KUNCI UTAMA dalam tabel yang dikenal sebagai tabel induk, sedangkan bidang yang sama mendefinisikan kendala KUNCI ASING di tabel lain yang dikenal sebagai tabel anak.
  • Hanya ada satu KUNCI UTAMA dalam tabel, tetapi tidak ada batasan yang ditentukan pada KUNCI ASING. Kita dapat memiliki satu atau lebih dari satu KUNCI ASING di atas meja.
  • Kita dapat mendefinisikan batasan FOREIGN KEY saat membuat tabel atau mendefinisikan batasan FOREIGN KEY pada tabel yang sudah ada.

Mari kita ambil contoh untuk memahami dan mempelajari batasan FOREIGN KEY.

Contoh:

Di sini, kami memiliki dua tabel satu adalah tabel Kursus dan yang kedua adalah tabel Siswa:

Para siswa memilih mata kuliah. Contoh batasan FOREIGN KEY berikut didefinisikan pada satu bidang.

Meja Nomor Satu:Meja Siswa

Student_Id Nama_Depan Nama_belakang Id_Email Kota
101 Kareena Sayyed [email protected] Hyderabad
102 Anmol Temani [email protected] Jalgaon
103 Keras Patel [email protected] Mumbai
104 Sakshi Kerudung [email protected] Pune
105 Tentu saja Kohli [email protected] Hyderabad

Tabel Nomor Dua:Tabel Kursus

Id_Kursus Nama_Kursus Id_Siswa
C101 Jawa 101
C102 SQL 102
C103 SOA Nol
C104 SAP 104
C105 MuleSoft 103
C101 Jawa 105

Pada tabel Student, field Student_Id adalah PRIMARY KEY dan pada tabel Course, Student_Id adalah FOREIGN KEY.

FOREIGN KEY kendala mencegah data yang tidak valid dimasukkan ke dalam kolom kunci asing karena harus menjadi salah satu nilai yang terkandung dalam tabel induk.

Tentukan Batasan KUNCI ASING pada CREATE TABLE

Contoh berikut mendefinisikan KUNCI ASING pada tabel Kursus.

Pertama, kita telah membuat tabel Student dengan field berikut:

CREATE TABLE Student( Student_Id int NOT NULL, First_Name varchar(40) NOT NULL, Last_Name varchar(40) NOT NULL, Email_Id varchar(50),  City varchar(20) NOT NULL, PRIMARY KEY(Student_Id)); 

Contoh berikut menunjukkan cara mendefinisikan batasan FOREIGN KEY pada tabel lainnya.

Kursus Nama Tabel:

BUAT TABEL Kursus( Course_Id int NOT NULL, Course_Name varchar(40) NOT NULL, Student_Id int, FOREIGN KEY(Student_Id) REFERENCES Student(Student_Id));

Di tabel Kursus, kami tidak mendefinisikan KUNCI UTAMA apa pun. Cukup tentukan batasan FOREIGN KEY pada Student_Id.

Contoh batasan FOREIGN KEY berikut didefinisikan pada beberapa bidang.

Misalkan kita memiliki tiga tabel, satu adalah tabel Package, yang kedua adalah tabel Data, dan yang ketiga adalah tabel Talk_time:

Tabel 1:Paket:

Id_Paket Id_Data Id_waktu bicara
P1001 D1003 T1001
P1002 H1001 T1002
P1003 D1002 T1003
P1004 D1003 T1004
P1005 D1004 T1005

Tabel 2:Data:

Data_Id Batas_Data Harga_Data
D1001 5 120
D1002 3 75
D1003 6 150
D1004 10 240
D1005 15 320

Tabel 3:Waktu_Bicara:

Talk_Time_Id Batas_Waktu Bicara Waktu_Bicara _Harga
T1001 120 130
T1002 70 105
T1003 60 90
T1004 200 220
T1005 150 170

Di tabel Talk_Time, Talk_Time_Id adalah KUNCI UTAMA.

Di tabel Data, Data_Id adalah PRIMARY KEY.

Sedangkan pada tabel Package, Talk_Time_Id dan Data_Id adalah kunci ASING

Tabel Nomor satu:Data:

BUAT TABEL Data(Data_Id varchar(5) NOT NULL, Data_Limit int, Data_Price int, PRIMARY KEY(Data_Id));

Tabel Nomor dua:Waktu Bicara:

BUAT TABLE Talk_Time(Talk_Time_Id varchar(5) NOT NULL, Talk_Time_Limit int, Talk_Time_Price int , PRIMARY KEY(Talk_Time_Id));

Tabel Nomor tiga:Paket:

CREATE TABLE Package(Package_Id varchar(5) NOT NULL, Data_Id varchar(5), Talk_Time_Id varchar(5), FOREIGN KEY(Data_Id) REFERENCES Data(Data_Id), FOREIGN KEY(Talk_Time_Id) REFERENCES Talk_Time(Talk_Id)); 

Kendala KUNCI ASING menggunakan ALTER TABLE:

Misalkan kita telah membuat tabel dan ingin mendefinisikan batasan FOREIGN KEY di lapangan. Kami akan menggunakan kueri ALTER TABLE untuk menambahkan batasan FOREIGN KEY dalam kasus seperti itu.

Kueri berikut digunakan untuk menambahkan batasan KUNCI ASING pada bidang Student_Id.

ALTER TABLE Kursus ADD FOREIGN KEY(Student_Id) REFERENCES Student(Student_Id);

ADD Keyword digunakan setelah nama tabel untuk menambahkan batasan FOREIGN KEY ke tabel yang sudah ada.

HENTIKAN KUNCI ASING dari tabel

Gunakan kueri berikut untuk menghapus batasan FOREIGN KEY dari tabel.

ALTER TABLE Kursus DROP FOREIGN KEY course_ibfk_1;

Kata kunci drop digunakan untuk menghapus batasan FOREIGN KEY dari bidang Student_Id.

course_ibfk_1 adalah nama batasan kunci asing.

Kami dapat memiliki nilai nol di bidang kendala KUNCI ASING. Kami dapat memiliki nilai duplikat di bidang batasan KUNCI ASING.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengganti Bagian dari String di T-SQL

  2. Apa itu Basis Data Greenplum? Pengantar ke Basis Data Big Data

  3. Hire or Get Hire:Model Data untuk Proses Rekrutmen

  4. SQL PILIH DI

  5. Panduan untuk Menyebarkan TimescaleDB dengan Docker