MySQL, tablolarda ilgili verilere çapraz referans vermenize izin veren yabancı anahtarları ve bu yayılma verilerini tutarlı tutmaya yardımcı olan yabancı anahtar kısıtlamalarını destekler. CREATE TABLE veya ALTER TABLE ifadesindeki yabancı anahtar kısıtlaması tanımı için temel sözdizimi şöyle görünür:
1 2 3 4 5 6 7 8 9 10 | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (col_name, ...) REFERENCES tbl_name (col_name,...) [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT |
Uygulama Videosu
Aşağıdaki örnekte CREATE TABLE ve ALTER TABLE komutları ile iki tablo arasında ilişki oluşturulmuştur.
İlgilinizi Çekebilir: MySQL Dersleri
CREATE TABLE ile iki tablo arasında ilişki oluşturma
Sınıf tablosu:
1 2 3 4 5 6 | CREATE TABLE sinif( sinif_no int PRIMARY KEY AUTO_INCREMENT, ad varchar(5) NOT NULL ); |
Öğrenci Tablosu:
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE ogrenci( ogrno int AUTO_INCREMENT PRIMARY key, ad varchar(50) NOT NULL, soyad varchar(50) NOT NULL, dtarih date, sinif_no int, FOREIGN key (sinif_no) REFERENCES sinif(sinif_no) ); |
Yukarıda tablo oluşturulurken sinif_no alanı yabancı anahtar olarak oluştulmuş ve referansı da sinif tablosundaki sinif_no alanı olarak belirtilmiştir.
ALTER TABLE ile iki tablo arasında ilişki oluşturma
Aşağıdaki gibi yazar ve kitap tabloları oluşturuyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 | Create Table kitap( kitap_no int AUTO_INCREMENT PRIMARY key, ad varchar(50) NOT NULL, sayfasayisi int, yazar_no int ); CREATE TABLE yazar( yazar_no int AUTO_INCREMENT PRIMARY KEY, ad varchar(50) NOT NULL, soyad varchar(50) NOT NULL ); |
Tablolar oluşturulduktan sonra kitap tablosundaki yazar_no alanı için kitap tablosuna yabancı anahtar tanımlaması ekliyoruz.
1 2 3 4 | ALTER TABLE kitap ADD FOREIGN KEY (yazar_no) REFERENCES yazar(yazar_no) |
PHPMyAdmin arayüzü ile ilişkileri görmek için veritabanı yazısına tıklayıp tasarımcı sekmesine tıklayarak tablolar arasındaki ilişkiye ulaşabilirsiniz.
1 Yorum