Hesaplanan Sütunlar ve İfade Önceliği
SELECT listeleri içinde aritmetiği, birleştirmeyi ve işleç önceliğini öğrenin.
Hesaplanan Sütunlar ve İfade Önceliği, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 2. 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, Coding Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Coding Interview Prep kursu toplamda 4 dersten oluşur.
SELECT İçindeki Hesaplanan Sütunlar
Hesaplanan sütun, bir değeri doğrudan okumak yerine türeten SELECT ifadesidir; örneğin price * quantity. Ona her zaman anlaşılır bir takma ad verin.
SELECT product,
price,
quantity,
price * quantity AS line_total
FROM order_items;Aritmetik İşleçler
SQL'de beklediğiniz matematik işleçleri bulunur: +, -, *, / ve ayrıca mod alma işleci. Sonucun türü işlenenlere göre belirlenir; bir sonraki tuzak da burada gizlidir.
SELECT 7 + 3 AS sum_val,
7 - 3 AS diff_val,
7 * 3 AS prod_val,
7 % 3 AS remainder;Tamsayı Bölmesi Tuzağı
Dikkat: iki tamsayıyı bölmek tamsayı bölmesi yapar; bu nedenle 5 / 2 sonucu 2 olur, 2.5 değil. Bir tarafı ondalık türe dönüştürerek veya 1.0 ile çarparak bunu düzeltebilirsiniz.
SELECT 5 / 2 AS int_div, -- 2
5 * 1.0 / 2 AS real_div, -- 2.5
CAST(5 AS DECIMAL) / 2 AS cast_div; -- 2.5İşleç Önceliği
SQL, normal matematikteki öncelik kurallarını izler: * ve / işlemleri + ve - işlemlerinden önce yapılır. Bu nedenle 2 + 3 * 4 sonucu 20 değil, 14'tür. Parantezler tüm öncelik kurallarını geçersiz kılar.
SELECT 2 + 3 * 4 AS no_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20Gerçek Bir İndirim Sorgusunda Öncelik
Öncelik hataları iş mantığında sık görülür. İndirimli fiyat için price - price * rate doğrudur; çünkü * önce çalışır. Motorun gerçekten kullandığı gruplamayı her zaman akıl sağlığı kontrolünden geçirin.
SELECT price,
discount_rate,
price - price * discount_rate / 100 AS net_price
FROM products;Metin Birleştirme
Metinleri birleştirme veritabanına göre değişir: PostgreSQL ve standart SQL'de || , SQL Server'da +, MySQL'de ise CONCAT() kullanılır. CONCAT(), güvenli ve taşınabilir tercihtir.
-- Postgres / standard
SELECT first_name || ' ' || last_name AS full_name
FROM employees;
-- Portable
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;NULL Aritmetiği Bozar
Önemli bir nokta: NULL ile yapılan her matematik işlemi NULL verir. Bu nedenle bonusu eksik olan bir kişinin base_salary + bonus değeri NULL olur. Varsayılan bir değer sağlamak için riskli sütunları COALESCE içine alın.
SELECT base_salary,
bonus,
base_salary + bonus AS unsafe_total,
base_salary + COALESCE(bonus,0) AS safe_total
FROM employees;Lehçelere Göre Birleştirme ve NULL
NULL metinleri de etkiler ve lehçeler farklı davranır: PostgreSQL tüm dizenin yok olmasına neden olurken SQL Server'daki CONCAT, NULL değerini boş kabul eder. Öngörülebilir çıktı için her parçayı COALESCE içine alın.
SELECT COALESCE(first_name,'') || ' ' || COALESCE(last_name,'') AS full_name
FROM employees;İfadelerin İçinde İşlevler
Hesaplanan sütunlar ROUND, ABS veya UPPER gibi işlevleri rahatlıkla içerebilir. Bir işlev çağrısı da başka bir ifade olduğundan, onu doğrudan matematik işleminizin içine yerleştirebilirsiniz.
SELECT product,
ROUND(price * quantity * 1.0, 2) AS line_total,
UPPER(product) AS product_caps
FROM order_items;Tür Dönüşümü ve CAST
İşlenenlerin türleri farklı olduğunda SQL, sizi şaşırtabilecek örtük bir dönüşüm yapar. CAST(expr AS type) kullanarak türü açıkça belirtin; mülakat yapanlar bunu dikkatli ve korumacı kod olarak değerlendirir.
SELECT 'Order #' || CAST(order_id AS VARCHAR) AS label
FROM orders;Sütun Olarak Mantıksal İfadeler
price > 100 gibi bir karşılaştırma da başlı başına bir ifadedir. PostgreSQL bunu doğru/yanlış olarak seçebilir; ancak taşınabilir çözüm, 1/0 veya bir etiket üretmek için ifadeyi bir CASE içine almaktır.
-- Portable
SELECT product,
CASE WHEN price > 100 THEN 1 ELSE 0 END AS is_pricey
FROM products;Hızlı Kontrol
İfadeyi değerlendirin.
Özet
Özet: Hesaplanan sütunlarınıza takma ad verin. Ondalık bölme için tür dönüşümü yapın, öncelik kurallarına dikkat edin, taşınabilir metin işlemleri için CONCAT() kullanın ve NULL'ın matematiği bozduğunu unutmayın; bu nedenle onu COALESCE ile koruyun.
Sıkça Sorulan Sorular
“Hesaplanan Sütunlar ve İfade Önceliği” dersi ücretsiz mi?
Evet — “Hesaplanan Sütunlar ve İfade Önceliği” 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 Coding Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Coding Interview Prep kursu toplamda 4 dersten oluşur.
“Hesaplanan Sütunlar ve İfade Önceliği” dersinde ne öğreneceğim?
SELECT listeleri içinde aritmetiği, birleştirmeyi ve işleç önceliğini öğrenin. Coding 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.
Coding Interview Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Coding 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 2. dersidir.
“Hesaplanan Sütunlar ve İfade Önceliği” 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 Coding Interview Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Coding 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