Lajiverta Academy Satın Al — 499₺

Academy 🗄️ SQL & Veritabanı Veri ve Tablolar

Sütun seçmek ve sırayı değiştirmek

🗄️ Veri ve Tablolar bölümü · Code Quest SQL & Veritabanı parkuru

Gerçek hayatta SELECT * nadiren doğru cevaptır. 30 sütunlu bir tablodan 2 sütun lazımsa, 30'unu birden istemek hem yavaştır hem de sonucu okunmaz yapar. Profesyoneller istediğini isimle ister.

Sütunları virgülle ayırarak sıralarsın. Ve önemli bir ayrıntı: yazdığın sıra, sonuçtaki sıradır. Tablodaki fiziksel sıra seni bağlamaz.

SQL
SELECT ad, id
FROM turler;
▸ SONUÇ
ad       | id
─────────┼───
Aksiyon  |  1
Bulmaca  |  2
Yarış    |  3
Strateji |  4
Macera   |  5
💡 Tabloda id önce geliyordu ama sonuçta ad önce geldi. Sonuç kümesi, tablonun kopyası değil; senin tarif ettiğin yeni bir tablodur.

Aynı sütunu birden çok kez de isteyebilirsin (nadiren işe yarar ama motorun mantığını gösterir), ya da sütunlarla birlikte sabit bir değer bile getirebilirsin.

SQL
SELECT ad, ad
FROM turler;
▸ SONUÇ
ad       | ad
─────────┼─────────
Aksiyon  | Aksiyon
Bulmaca  | Bulmaca
Yarış    | Yarış
Strateji | Strateji
Macera   | Macera

Peki olmayan bir sütun istersen? Motor seni sessizce affetmez — hata verir. Ve bu iyi bir şeydir: hata mesajı sana tam olarak neyi bulamadığını söyler.

SQL
SELECT isim FROM turler;
▸ SONUÇ
HATA: no such column: isim
⚠️ no such column: isim = "isim diye bir sütun yok". Sütunun gerçek adı ad. Aynı şekilde no such table: oyun görürsen tablo adını yanlış yazmışsındır (doğrusu oyunlar).

SQL öğrenirken hata mesajlarını okumayı alışkanlık edin. SQLite'ın mesajları kısa ve nettir; sana neredeyse her zaman hangi kelimeyi tanımadığını söyler.

Son bir alışkanlık: sorguyu okunur yaz. Aşağıdaki biçim, profesyonel kodda gördüğün biçimdir — her yan tümce (clause) yeni satırda başlar.

SQL
SELECT id,
       ad,
       fiyat
FROM   oyunlar;

Kendini test et

Bu sorgu neden hata verir?

  • turler tablosu yok
  • turler tablosunda isim adında bir sütun yok (sütunun adı ad)
  • Noktalı virgül eksik
Cevabı gör

Cevap: turler tablosunda isim adında bir sütun yok (sütunun adı ad)

"no such column: isim" mesajı tam olarak bunu söyler: sütunun gerçek adı ad.

Bu kodun çıktısı ne olur?

SELECT 9 / 2;
Cevabı gör

Çıktı:

4

İki tam sayının bölümü tam sayıdır: 4.5 değil 4. Ondalık istiyorsan 9.0 / 2 yazmalısın.