Hayır, hiç doğru değil. Yazar, okurlarını karışıklık için hazırlıyor ve standart sözdizimi ile tercih ettiği daha eski değişkenler arasındaki çok güçlü bir yapısal farklılığı önleyen kargo-kült programlamasını teşvik ediyor. Özellikle, karışık bir WHERE deyimi sorgusunu özel kılan şeyin ne olduğunu bulmayı zorlaştırır.
Örneği, okuyucunun, çok fazla dağınıklığı olan, zihinsel bir haritasını çıkarmasına yol açar.
SELECT pet.id, pet.name, pet.age, pet.dead
FROM pet, person_pet, person
WHERE
pet.id = person_pet.pet_id AND
person_pet.person_id = person.id AND
person.first_name = "Zed";
Kabaca, yukarıdaki:
Evcil hayvanın kimliği, NAME, AGE ve DEAD'in tüm evcil hayvanlar, person_pet ve evcil hayvan kimliğinin bir person_pet'in evcil hayvan kimliği ile eşleştiği ve bu kaydın kişi kimliği için FIRST_NAME "Zed" olan bir kişinin kimliği ile eşleşecek şekilde alın
Bunun gibi zihinsel bir harita ile, okuyucu (SQL'i bir nedenden dolayı elle yazan), muhtemelen bir veya daha fazla tabloyu atlayarak kolayca kolayca hata yapabilir. Ve bu şekilde yazılmış bir kod okuyucusu, SQL yazarının tam olarak ne yapmaya çalıştığını anlamak için daha çok çalışmak zorunda kalacaktır. ("Zor", sözdizimi vurgulaması olan veya olmayan SQL okuma düzeyindedir, ancak yine de sıfırdan büyük bir fark vardır.)
JOIN’lerin yaygın olmasının bir nedeni var ve bu eski klasik “kaygıların ayrılması” canavarı. Özellikle, bir SQL sorgusu için verinin nasıl yapılandırıldığını ve verilerin nasıl filtrelendiğini ayırmak için iyi bir neden vardır .
Sorgu temizleyici ise, örneğin
SELECT pet.id, pet.name, pet.age
FROM pet
JOIN person_pet ON pet.id = person_pet.pet_id
JOIN person ON person.id = person_pet.person_id
WHERE
person.first_name = "Zed";
O zaman okuyucu, istenen şeyin bileşenleri arasında daha net bir ayrım yapar. Bu sorgunun ayırt edici filtresi, bileşenlerinin birbirleriyle olan ilişkisinden ayrılır ve her bir ilişkinin gerekli bileşenleri, doğrudan gerekli oldukları yerin yanındadır.
Tabii ki, herhangi bir modern veritabanı sistemi, iki stil arasında anlamlı bir fark görmemelidir. Ancak, veritabanı performansı tek düşünce olsaydı, SQL sorgusu da beyaz boşluk ya da büyük harf kullanmazdı.