Academy › 🗄️ SQL & Veritabanı › SELECT'in Gücü
Sütunlarla hesap yapmak
🔎 SELECT'in Gücü bölümü · Code Quest SQL & Veritabanı parkuru
SELECT'e sadece sütun adı değil, ifade de yazabilirsin. Motor bu hesabı her satır için ayrı ayrı yapar ve sonucu yeni bir sütun gibi sunar. Tabloya hiçbir şey yazılmaz — hesap uçucudur.
SELECT id * 10 AS on_kat, ad FROM turler;
on_kat | ad
───────┼─────────
10 | Aksiyon
20 | Bulmaca
30 | Yarış
40 | Strateji
50 | MaceraDört işlemin hepsi vardır: +, -, *, / ve kalan için %. Şimdi gerçek bir iş yapalım: her oyunun stok değeri (elimizdeki mal kaç lira eder).
SELECT ad, stok, fiyat * stok AS stok_degeri FROM oyunlar;
ad | stok | stok_degeri ───────────────┼──────┼─────────────────── Neon Drift | 12 | 2398.8 Piksel Kale | 40 | 3580 Gölge Avcısı | 7 | 1743 Kelime Kulesi | 0 | 0 Yıldız Sürüsü | 25 | 3725 Zaman Kapısı | 9 | 1615.5 Robot Bahçesi | 33 | 2607 Kara Yörünge | 5 | 1495 Buz Vadisi | 18 | 2338.2000000000003 Kule Savunması | 60 | 3594 Derin Mavi | 3 | 657 Sessiz Ada | 11 | 1089
Buz Vadisi'ne bak: 2338.2000000000003. Hesap makinesi bozulmadı — bu, bilgisayarların ondalık sayıları ikilik sistemde saklamasından doğan klasik bir kayan nokta sapmasıdır (Python'da 0.1 + 0.2 yazınca da aynısını görürsün).
ROUND(fiyat * stok, 2). ROUND fonksiyonunu 5. bölümde ayrıntısıyla öğreneceksin. Şimdilik şunu bil: para gösteren her hesabı yuvarla.Bir indirim senaryosu daha: %20 indirimli fiyat.
SELECT ad, fiyat, fiyat * 0.8 AS indirimli FROM oyunlar;
ad | fiyat | indirimli ───────────────┼───────┼─────────────────── Neon Drift | 199.9 | 159.92000000000002 Piksel Kale | 89.5 | 71.60000000000001 Gölge Avcısı | 249 | 199.20000000000002 Kelime Kulesi | 49.9 | 39.92 Yıldız Sürüsü | 149 | 119.2 Zaman Kapısı | 179.5 | 143.6 Robot Bahçesi | 79 | 63.2 Kara Yörünge | 299 | 239.20000000000002 Buz Vadisi | 129.9 | 103.92000000000002 Kule Savunması | 59.9 | 47.92 Derin Mavi | 219 | 175.20000000000002 Sessiz Ada | 99 | 79.2
Bir ifadeye takma ad vermezsen başlık, yazdığın ifadenin kendisi olur — bu yüzden hesaplanmış her sütuna AS ile isim ver. Rapor okuyan insan fiyat * 0.8 değil indirimli görmek ister.
Kendini test et
Metin birleştirme operatörü hangisidir?
+||&
Cevabı gör
Cevap: ||
SQL standardında birleştirme || ile yapılır. + sayılar içindir.
Bu kodun çıktısı ne olur?
SELECT 'Kod' || 'Quest' AS ad;
Cevabı gör
Çıktı:
KodQuest
|| iki metni araya hiçbir şey koymadan birleştirir; boşluk istersen kendin eklemelisin.