Blog,  PROGRAM,  SQL

SQL Notları 4-EXISTS-USING

İyi, okunabilir SQL sorguları yazmak ve iyi uygulama örnekleri.

Örnekler

Anahtar Kelimeler ve İsimlerin Biçimlendirilmesi ve Yazımı

Tablo/Sütun İsimleri
Tablo/sütun isimlerini biçimlendirmek için yaygın iki yöntem CamelCase ve snake_case’tir:

İsimler, objelerinde ne depolandığını tanımlamalıdır. Bu, sütun isimlerinin genellikle tekil olması gerektiği anlamına gelir. Tablo isimlerinin tekil mi yoksa çoğul mu olması gerektiği tartışmalı bir konudur, ancak pratikte çoğul tablo isimleri daha yaygındır.

Tablo veya sütun isimlerine tbl veya col gibi önekler veya son ekler eklemek okunabilirliği azaltır, bu yüzden kaçınılmalıdır. Ancak, SQL anahtar kelimeleriyle çakışmaları önlemek veya tetikleyiciler ve dizinlerle (sorgularda genellikle bahsedilmeyen) kullanmak için bazen kullanılırlar.

Anahtar Kelimeler
SQL anahtar kelimeleri büyük/küçük harf duyarlı değildir. Ancak, genellikle büyük harfle yazılırlar.

SELECT *
SELECT * tablo tanımı değiştikçe sorgunun döndürdüğü verinin değişmesine neden olabilir. Bu, uygulamanızın veya veritabanınızın farklı sürümlerinin birbirleriyle uyumsuz olma riskini artırır. Ayrıca, gerekenden fazla sütun okumak disk ve ağ I/O miktarını artırabilir. Bu yüzden, gerçekten almak istediğiniz sütunları açıkça belirtmelisiniz:

(Etkileşimli sorgular yaparken bu durumlar geçerli değildir.)

Ancak, EXISTS operatörünün alt sorgusunda SELECT * kullanmak zarar vermez, çünkü EXISTS gerçek veriyi kontrol etmez (sadece en az bir satır bulunup bulunmadığını kontrol eder). Aynı nedenle, EXISTS için belirli bir sütun belirtmek mantıklı değildir, bu yüzden SELECT * daha anlamlıdır:

Indenting
Geniş kabul gören bir standart yoktur. Ancak, her şeyi tek bir satıra sıkıştırmanın kötü olduğu konusunda herkes hemfikirdir:

En azından, her ifadeyi yeni bir satıra koyun ve satırlar çok uzun olursa bölün:

Bazen, bir ifade başlatan SQL anahtar kelimesinden sonraki her şey aynı kolona girintilenir:

(Bu, SQL anahtar kelimelerini sağa hizalarken de yapılabilir.)

Diğer yaygın bir stil, önemli anahtar kelimeleri kendi satırlarına koymaktır:

Benzer ifadeleri dikey olarak hizalamak okunabilirliği artırır:

Birden fazla satır kullanmak, SQL komutlarını diğer programlama dillerine yerleştirmeyi zorlaştırır. Ancak, birçok dilde çok satırlı dizeler için bir mekanizma vardır, örneğin, C#’ta @"...", Python’da """...""" veya C++’ta R"(...)".

Join’ler
Açık join’ler her zaman kullanılmalıdır; örtük join’lerin birkaç problemi vardır:

  • Join koşulu, WHERE ifadesinde diğer filtre koşullarıyla karışır. Bu, hangi tabloların join edildiğini ve nasıl join edildiğini görmeyi zorlaştırır.
  • Yukarıdaki durumlardan dolayı, hatalar yapma riski daha yüksektir ve bu hataların bulunması daha uzun sürebilir.
  • Standart SQL’de, dış join’leri kullanmanın tek yolu açık join’lerdir:
  • Açık join’ler USING ifadesini kullanmayı sağlar:
SELECT RecipeID,
Recipes.Name,
COUNT(*) AS NumberOfIngredients
FROM Recipes
LEFT JOIN Ingredients USING (RecipeID);

(Bu, her iki tablonun da aynı sütun adını kullanmasını gerektirir. USING, sorgudaki tekrarlayan sütunu otomatik olarak kaldırır, örneğin, bu sorguda join tek bir RecipeID sütunu döndürür.)

Bir cevap yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir