Lajiverta Academy Satın Al — 499₺

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.

SQL
SELECT id * 10 AS on_kat, ad
FROM turler;
▸ SONUÇ
on_kat | ad
───────┼─────────
    10 | Aksiyon
    20 | Bulmaca
    30 | Yarış
    40 | Strateji
    50 | Macera

Dö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).

SQL
SELECT ad, stok, fiyat * stok AS stok_degeri
FROM oyunlar;
▸ SONUÇ
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).

💡 Çözüm basit: 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.

SQL
SELECT ad, fiyat, fiyat * 0.8 AS indirimli
FROM oyunlar;
▸ SONUÇ
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.