Sütunları Seçme ve Takma Ad Tuzakları
WHERE içinde bir SELECT takma adına neden başvuramayacağınızı ve mülakatçıların takma ad kapsamını nasıl test ettiğini öğrenin.
Sütunları Seçme ve Takma Ad Tuzakları, CoddyKit'te ücretsiz bir SQL Interview Prep dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Interview Prep kursu toplamda 4 dersten oluşur.
Projeksiyon: Sütunlarınızı Seçme
Bir sorgunun döndüreceği sütunları seçmeye projeksiyon denir — SELECT yazdığınızda her seferinde yaptığınız şey budur. Gerçek kodda sütunların adlarını açıkça belirtin; SELECT * ifadesini hızlı keşif için saklayın.
SELECT id, first_name, email
FROM employees;Mülakatçılar SELECT * İfadesini Neden Sevmez
Mülakatçılar uygulama kodunda SELECT * ifadesini neden sevmez? Bu ifade kırılgandır (sütun sırası değişebilir), bant genişliğini boşa harcar, dizin kullanımını olumsuz etkiler ve gerçekte neye ihtiyaç duyduğunuzu gizler. Sütunlarınızın adlarını belirtin. 👍
AS ile Sütuna Takma Ad Verme
Takma ad, çıktınızdaki bir sütunu yeniden adlandırır. Açıklık için AS kullanın — özellikle hesaplanan sütunlarda çok işe yarar; maaş * 12 gibi karmaşık ifadelere temiz ve okunabilir bir başlık verir.
SELECT first_name AS name,
salary * 12 AS annual_salary
FROM employees;Boşluk İçeren Takma Adları Tırnak İçine Alma
Bir takma ad boşluk içeriyorsa veya rezerve edilmiş bir sözcükse onu tırnak içine almalısınız. Taşınabilir ve standart yöntem çift tırnak işaretleri kullanmaktır. İpucu: Yalnızca snake_case adlarına bağlı kalın ve tırnak kullanımını tamamen atlayın.
SELECT salary AS "Annual Pay"
FROM employees;Büyük Tuzak: WHERE İçinde Takma Ad Kapsamı
İşte en sık sınanan tuzak: SELECT içinde bir takma ad tanımlayıp ardından WHERE içinde bu takma ada göre filtrelerseniz işlem başarısız olur. WHERE, SELECT'ten önce çalışır; dolayısıyla bu takma ad henüz mevcut değildir.
-- This raises an error
SELECT salary * 12 AS annual_salary
FROM employees
WHERE annual_salary > 100000;Nedeni: Mantıksal Yürütme Sırası
Çözüm, mantıksal yan tümce sırasını bilmektir: FROM, WHERE, GROUP BY, HAVING, SELECT ve ardından ORDER BY. SELECT sona yakındır; bu nedenle daha önceki yan tümceler onun takma adlarını göremez.
1. Çözüm: İfadeyi Tekrarlayın
En taşınabilir çözüm basittir: WHERE içinde takma ad yerine ifadeyi tekrarlayın. Biraz uzun olabilir, ancak her veritabanında ve her zaman çalışır.
SELECT salary * 12 AS annual_salary
FROM employees
WHERE salary * 12 > 100000;2. Çözüm: Alt Sorgu veya CTE İçine Alın
Uzun bir ifadeyi tekrarlamak hoş görünmüyorsa, önce bunu bir alt sorgu veya CTE içinde hesaplayın. Böylece takma ad gerçek bir sütuna dönüşür ve dıştaki WHERE bu sütuna göre filtreleme yapabilir.
SELECT *
FROM (
SELECT first_name, salary * 12 AS annual_salary
FROM employees
) t
WHERE annual_salary > 100000;Takma Adların Kullanılabildiği Yer: ORDER BY
İyi haber: ORDER BY, SELECT takma adını kullanabilir; çünkü SELECT'ten sonra çalışır. Bu nedenle WHERE, GROUP BY ve HAVING takma adları göremez, ancak ORDER BY görebilir.
SELECT first_name, salary * 12 AS annual_salary
FROM employees
ORDER BY annual_salary DESC;Anılmaya Değer Lehçe Farkları
Özellikle belirtmeye değer: MySQL, GROUP BY ve HAVING içinde takma adlara esnek biçimde izin verirken PostgreSQL ve SQL Server standarda bağlı kalır. Önce mantıksal sırayı temel alın, ardından bu istisnayı belirtin.
Tablo Takma Adları ve Sütun Takma Adları
Bunları karıştırmayın. Bir tablo takma adı tablo adını kısaltır ve WHERE içinde bile her yerde görünür. Sütun takma adı ise çıktıyı yeniden adlandırır ve görünür değildir; yani durum tam tersidir.
SELECT e.first_name, e.salary AS pay
FROM employees AS e
WHERE e.salary > 50000;Hızlı Kontrol
Temel yanılgıyı sınayın.
Özet
Özet: SELECT * yerine açıkça belirtilmiş sütunları tercih edin ve AS ile takma ad verin. Bir SELECT takma adı WHERE/GROUP BY/HAVING içinde görünmez, ancak ORDER BY içinde çalışır. Sorunu ifadeyi tekrarlayarak veya bir CTE kullanarak çözün.
Sıkça Sorulan Sorular
“Sütunları Seçme ve Takma Ad Tuzakları” dersi ücretsiz mi?
Evet — “Sütunları Seçme ve Takma Ad Tuzakları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Interview Prep kursu toplamda 4 dersten oluşur.
“Sütunları Seçme ve Takma Ad Tuzakları” dersinde ne öğreneceğim?
WHERE içinde bir SELECT takma adına neden başvuramayacağınızı ve mülakatçıların takma ad kapsamını nasıl test ettiğini öğrenin. SQL Interview Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Interview Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Interview Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Sütunları Seçme ve Takma Ad Tuzakları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Interview Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Interview Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Sütunları Seçme ve Takma Ad Tuzakları
- Hesaplanan Sütunlar ve İfade Önceliği
- Benzersizlik için DISTINCT ve GROUP BY Karşılaştırması
- SELECT içinde CASE İfadeleri