![...](/f/14c7ca74d0accf01184229f710faeb14.jpg)
Veritabanı sorguları, veritabanından belirli bilgileri alır.
Bir alt sorgu, başka bir sorgu içindeki bir sorgudur. Bir alt sorgu, başka bir alt sorgu da içerebilir. Bunların "iç içe" alt sorgular olduğu söylenir. Birleştirme, sorgunun "Kimden" yan tümcesinde iki veya daha fazla tabloya başvurulmasıdır. Farklı veritabanı motorları, alt sorguları ve birleştirmeleri farklı şekilde optimize edebilir. Örneğin, belirli ölçütler karşılanırsa, DB2'nin optimize edicisi bir alt sorguyu bir birleştirmeye dönüştürür. Bazı durumlarda, bir birleştirme, bir alt sorgudan daha iyi performans sağlar.
Bir Alt Sorguyu Ne Yapar?
Bir alt sorgu, bir dış "INSERT", "UPDATE", "MERGE" veya "DELETE" ifadesinin "WHERE" veya "HAVING" yan tümcesi içindeki bir "SELECT" ifadesidir. Alt sorgu ayrıca "iç sorgu" veya "iç seçim" olarak da adlandırılır. Alt sorguda bir veya daha fazla tablo içeren bir "FROM" yan tümcesi olabilir ve isteğe bağlı olarak "WHERE", "GROUP BY" veya "HAVING" yan tümcesi olabilir. Her zaman parantez içine alınır.
Günün Videosu
Alt Sorguların Avantaj ve Dezavantajları
Alt sorgular avantajlıdır çünkü sorguyu ifadenin her bir parçasını izole edecek şekilde yapılandırırlar. normalde karmaşık birleştirmeler ve birleştirmeler gerektiren ve daha kolay olan aynı işlemi gerçekleştirin. okuman. Alt sorgular, kolayca okunabilen yapıları nedeniyle "Structured Query Language" (SQL) adının temeli bile oldu. Bir dezavantajı, bir tabloyu değiştiremez ve aynı SQL deyiminde bir alt sorgu içinde aynı tablodan seçim yapamazsınız. Alt sorguların yürütülmesi, veritabanı iyileştiricisinin bunları nasıl işlediğinden dolayı bir birleştirmeden daha uzun sürebilir.
Bir Katılmayı Ne Yapar?
Çoğu alt sorgu, birleşim olarak yeniden yazılabilir ve çoğu birleşim, alt sorgu olarak yeniden yazılabilir. Birleştirme, iki veya daha fazla tabloyu ilgili bir sütunla tanımlar. Tablolar genellikle birincil ve yabancı anahtarlarda birleştirilir. Örneğin, bir çalışan tablosu bir çalışan kimliği sütununun birincil anahtarına sahip olabilirken, bir zaman çizelgesi tablosunda ayrıca çalışan tablosunun yabancı anahtarı olan bir çalışan kimliği sütunu bulunur. SQL birleştirme, "WHERE çalışan.empid = timesheet.empid" veya "FROM çalışan JOIN timesheet ON (employee.empid = timesheet.empid)" olarak yazılabilir.
Birleştirmelerin Avantajları ve Dezavantajları
Bir birleştirmenin ana avantajı, daha hızlı yürütülmesidir. Performans artışı son kullanıcı tarafından fark edilmeyebilir. Bununla birlikte, sütunlar veritabanı motoru tarafından özel olarak adlandırıldığından ve dizine eklendiğinden ve optimize edildiğinden, geri alma süresi hemen hemen her zaman bir alt sorgununkinden daha hızlı olacaktır. Ayrıca iç ve dış birleşimler, sol ve sağ birleşimler, tam birleşimler ve çapraz birleşimler vardır. Birleştirmeleri kullanmanın bir dezavantajı, alt sorgular kadar kolay okunmamalarıdır. Diğer bir dezavantaj, istenen doğru sonuç kümesini elde etmek için kullanılacak uygun birleştirme türünün hangi birleştirme olduğu konusunda kafa karıştırıcı olabilmesidir.