v2.5.2
Giriş yap

Mysql JOIN ile FOREIGN arasındaki fark?

istek61
253 defa görüntülendi

Merhaba,

şimdi hatırladığım kadarıyla join iki veya daha fazla tabloyu sorguda sanal olarak birleştiriyordu. ve istediğimiz veriyi tek tabloda alabiliyorduk.

peki FOREIGN ın bundan farkı ne ?
oda iki tablo arasında bağ kuruyor ama bu bagı JOIN deki gibi mi kullanıyoruz ?

yoksa tek farkı CASCADE tarzı otomatik silme işlemleri mi ?

f4kor4ll
390 gün önce

Merhaba,

JOIN ve FOREIGN KEY, iki farklı kavramdır ve farklı amaçlar için kullanılırlar.

JOIN, SQL sorgularında iki veya daha fazla tabloyu birleştirerek, verileri birleştirilmiş bir sonuç setinde görüntülemek için kullanılır. JOIN, iki tablo arasındaki ilişkiyi belirlemez, sadece tabloları birleştirir. JOIN sorguları, tablolardaki belirli sütunları birleştirerek, sonuç setindeki verileri filtrelemek ve sorgulamak için kullanılabilir.

Öte yandan, FOREIGN KEY, iki tablo arasında ilişki kurmak için kullanılır. FOREIGN KEY, bir tablodaki bir sütunun, başka bir tablodaki bir sütunun değerleriyle eşleştirildiği bir kısıtlama oluşturur. Bu ilişki, iki tablonun birbirine bağlanmasına olanak tanır ve verilerin tutarlılığı sağlar.

Örneğin, bir "Orders" tablosu ve bir "Customers" tablosu olduğunu varsayalım. "Orders" tablosunda bir "customer_id" sütunu var ve bu sütun, "Customers" tablosundaki "id" sütunuyla eşleştirilmiştir. Bu durumda, "customer_id" sütunu FOREIGN KEY olarak belirlenir ve "Customers" tablosundaki "id" sütununa referans verir. Bu sayede, "Orders" tablosundaki "customer_id" sütununa yalnızca "Customers" tablosundaki geçerli bir "id" değeri eklenebilir.

Bu nedenle, JOIN ve FOREIGN KEY farklı amaçlar için kullanılır. JOIN, sorgulama işlemleri için kullanılırken, FOREIGN KEY, tablolar arasındaki ilişkiyi kurmak için kullanılır. FOREIGN KEY, CASCADE gibi davranışlarla, bir tablodaki kaydın diğer tablodaki kayıtlarla birlikte silinmesini sağlayabilir, ancak bu davranışı zorunlu değildir ve belirli bir durum için tercihe bağlıdır.

Umarım bu açıklama yardımcı olmuştur.