SELECT ile Veri Görüntüleme
Bir önceki derste veritabanlarının satır ve sütunlardan oluşan tablolar hâlinde nasıl düzenlendiğini, birincil anahtar kavramını ve bir tablonun yapısını incelemiştik. Artık elimizde bir tablo olduğuna göre, sırada bu tablonun içindeki verileri ekrana getirmek var. Bu derste SQL dilinin en sık kullanılan komutu olan SELECT ile tanışacağız. Bir sonraki derste ise WHERE ile bu verileri belirli koşullara göre nasıl filtreleyeceğimizi öğreneceğiz; yani bu ders, filtreleme dersinin de temelini oluşturuyor.
Bu derste ne yapacağız?
Bu dersin hedefi, bir veritabanı tablosundaki verileri SELECT komutuyla listeyebilmek, tüm sütunları ya da yalnızca ihtiyaç duyduğumuz belirli sütunları ekrana getirebilmektir. Dersin sonunda, elinizdeki herhangi bir tablodan istediğiniz bilgileri kendi başınıza sorgulayabilecek düzeye geleceksiniz.
Ön koşul olarak, bir önceki dersteki tablo, satır, sütun ve birincil anahtar kavramlarını hatırlamanız yeterlidir. Ayrıca bilgisayarınızda çalışan bir veritabanı yönetim aracına (örneğin MySQL Workbench, DBeaver, pgAdmin veya SQL Server Management Studio gibi bir program) erişiminizin olması gerekir. Bu araçların arayüzü sürümden sürüme değişebilir; bu derste anlatılan menü ve düğme adları genel bir örnek niteliğindedir, kullandığınız programda küçük farklılıklar görebilirsiniz.
Kavram
SELECT komutunu bir kütüphaneden kitap istemeye benzetebiliriz. Kütüphaneye gidip "bana tüm kitapları getir" diyebilirsiniz ya da "sadece yazar adı ve basım yılı olan kitapları getir, diğer bilgilere ihtiyacım yok" diyebilirsiniz. SELECT komutu da tam olarak bunu yapar: bir tablodan (kütüphaneden) hangi sütunları (hangi bilgi türlerini) görmek istediğinizi veritabanına söylersiniz.
Her SELECT sorgusunun temel iki parçası vardır: ne istediğiniz ve nereden istediğiniz. "Ne istediğiniz" kısmı SELECT kelimesinden sonra gelen sütun adlarıdır, "nereden istediğiniz" kısmı ise FROM kelimesinden sonra gelen tablo adıdır. Bu iki parça olmadan bir SELECT sorgusu çalışmaz.
Bir tabloda genellikle onlarca hatta yüzlerce sütun olabilir. Her seferinde tüm sütunları görmek, kalabalık ve dağınık bir görünüm yaratabilir. Bu yüzden SQL, size istediğiniz sütunları seçme özgürlüğü tanır; tıpkı bir formda sadece doldurmanız gereken alanlara bakmanız gibi, gereksiz bilgi kalabalığından kurtulmuş olursunuz.
Adım adım uygulama
Aşağıdaki örneklerde ogrenciler adında, id, ad, soyad, sehir ve not sütunlarından oluşan hayali bir tablo kullanacağız. Kendi veritabanınızda farklı bir tablo varsa, tablo ve sütun adlarını kendi tablonuza göre uyarlayın.
- 1. Adım — Sorgu penceresini açın. Kullandığınız veritabanı programında genellikle üst menüde Yeni Sorgu veya New Query adlı bir düğme ya da menü öğesi bulunur. Bu düğmeye tıklayarak boş bir sorgu ekranı açın. Bazı programlarda bu ekran otomatik olarak açık gelir.
- 2. Adım — Doğru veritabanını seçin. Sorgu penceresinin üstünde ya da yan panelde, üzerinde çalışmak istediğiniz veritabanının seçili olduğundan emin olun. Genellikle bir açılır liste (dropdown) üzerinden veritabanı adını seçebilirsiniz.
- 3. Adım — Tüm sütunları görüntüleyin. Sorgu penceresine şu satırı yazın: SELECT * FROM ogrenciler; Buradaki yıldız işareti (*) "tüm sütunlar" anlamına gelir. Bu komut, ogrenciler tablosundaki bütün sütunları ve bütün satırları ekrana getirir.
- 4. Adım — Sorguyu çalıştırın. Yazdığınız komutu çalıştırmak için genellikle Çalıştır, Execute ya da Run adlı bir düğmeye tıklamanız gerekir; birçok programda bunun yerine klavyeden F5 tuşuna ya da Ctrl+Enter tuş bileşimine basabilirsiniz. Sonuçlar genellikle ekranın alt kısmında bir tablo şeklinde belirir.
- 5. Adım — Sonuçları okuyun. Ekrana gelen tabloda, her satır bir öğrenciyi, her sütun ise o öğrenciye ait bir bilgiyi (id, ad, soyad, sehir, not) temsil eder. Sütun başlıkları en üstte, tablo adındaki sütun adlarıyla aynı görünür.
- 6. Adım — Belirli sütunları seçin. Tüm sütunlar yerine sadece ad ve soyad bilgisini görmek isterseniz şu satırı yazın: SELECT ad, soyad FROM ogrenciler; Burada yıldız işareti yerine, virgülle ayırarak istediğiniz sütun adlarını tek tek yazdık. Sonuç tablosunda artık yalnızca bu iki sütun görünecektir.
- 7. Adım — Sütun sırasını değiştirin. SELECT satırındaki sütun adlarını yazdığınız sıra, sonuç tablosundaki sütun sırasını belirler. Örneğin SELECT soyad, ad FROM ogrenciler; yazarsanız, soyad sütunu ad sütunundan önce görünür. Bu, orijinal tablodaki sütun sırasını değiştirmez; sadece o sorgunun sonucundaki görünümü değiştirir.
- 8. Adım — Sütuna takma ad (alias) verin. Bir sütunun sonuç tablosunda farklı bir başlıkla görünmesini isterseniz AS kelimesini kullanabilirsiniz: SELECT ad AS isim, soyad AS soyisim FROM ogrenciler; Bu sorgu, ad sütununu "isim" başlığıyla, soyad sütununu "soyisim" başlığıyla gösterir. Bu, özellikle rapor hazırlarken sütun başlıklarını daha anlaşılır hâle getirmek için kullanışlıdır.
- 9. Adım — Noktalı virgülü unutmayın. Her SQL komutunun sonuna bir noktalı virgül (;) koymak iyi bir alışkanlıktır. Bazı programlar tek bir komut çalıştırırken bunu zorunlu tutmaz, ancak birden fazla komutu art arda yazdığınızda noktalı virgül, komutların nerede bittiğini belirtir.
Sık karşılaşılan sorunlar
| Hata / Sorun | Olası Neden | Çözüm |
|---|---|---|
| "Tablo bulunamadı" veya "table doesn't exist" uyarısı | Tablo adı yanlış yazılmış ya da yanlış veritabanı seçilmiş | Tablo adının yazımını kontrol edin ve sol paneldeki veritabanı/tablo listesinden doğru adı kopyalayıp yapıştırın |
| "Sütun bulunamadı" veya "unknown column" uyarısı | Sütun adı yanlış yazılmış veya o sütun bu tabloda yok | Tablonun sütun listesini (genellikle sol panelde tablo adına tıklayınca açılır) kontrol edin |
| Sorgu çalışmıyor, hiçbir şey olmuyor | Çalıştır düğmesine değil, yanlış bir düğmeye basılmış olabilir ya da imleç sorgu satırında değil | İmlecin sorgu metninin içinde olduğundan emin olun, ardından Çalıştır/Execute/F5 ile tekrar deneyin |
| Sonuç tablosu çok kalabalık ve okunmuyor | SELECT * ile tüm sütunlar getirilmiş | Sadece ihtiyaç duyduğunuz sütunları isim isim yazarak sorguyu daraltın |
| Sözdizimi (syntax) hatası alınıyor | Virgül unutulmuş, FROM kelimesi eksik ya da yazım hatası var | Sütun adları arasında virgül olduğundan ve FROM ile tablo adının doğru yazıldığından emin olun |
Mini görev
Şimdi sıra sizde. Kendi veritabanı programınızda, ders boyunca kullandığımız ogrenciler tablosu ya da elinizdeki başka bir tablo üzerinde şu adımları uygulayın:
- Tablodaki tüm sütunları ve satırları listeleyen bir SELECT sorgusu yazıp çalıştırın.
- Ardından sadece iki veya üç sütunu seçen ikinci bir sorgu yazın.
- Seçtiğiniz sütunlardan birine AS ile bir takma ad verin.
- Sütun sırasını değiştirerek sorguyu tekrar çalıştırın ve sonucun nasıl değiştiğini gözlemleyin.
Kontrol listesi:
- SELECT ve FROM kelimelerini doğru sırada kullandım mı?
- Sütun adlarını virgülle ayırdım mı?
- Sorgumun sonunda noktalı virgül var mı?
- Sorguyu çalıştırdıktan sonra sonuç tablosunu inceledim mi?
Kendini sına
1. Bir tablodaki tüm sütunları görüntülemek için SELECT komutundan sonra hangi işaret kullanılır?
2. Aşağıdaki sorgunun ne işe yaradığını açıklayın: SELECT ad, sehir FROM ogrenciler;
3. Bir sorguda hangi tablodan veri çekileceğini belirten anahtar kelime nedir?
4. Bir sütuna sonuç tablosunda farklı bir başlık vermek için hangi kelime kullanılır?
5. SELECT sorgusunda sütun adlarını yazarken aralarına ne koymamız gerekir?
Cevaplar
1. Yıldız işareti (*) kullanılır; bu, "tüm sütunlar" anlamına gelir.
2. Bu sorgu, ogrenciler tablosundan yalnızca ad ve sehir sütunlarını, tablodaki tüm satırlar için listeler.
3. FROM anahtar kelimesi, verinin hangi tablodan çekileceğini belirtir.
4. AS kelimesi kullanılır; örneğin ad AS isim gibi.
5. Sütun adları arasına virgül (,) konmalıdır.
Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol