İçeriğe geç

SQL’de Basit SELECT Sorguları: Verilere İlk Adım :)

Merhaba millet! Nasılsınız? Ben yine buralardayım, kod dünyasında ufak tefek maceralara atılıyorum. Bu ara SQL’le biraz haşır neşir olmaya başladım diyebilirim. Hani bazen böyle bir konuya dalarsın ya, ilk başta gözünde büyür ama sonra baktıkça aslında ne kadar da basit ve keyifli olduğunu anlarsın. İşte SQL’in SELECT kısmı da benim için tam olarak böyle bir şey oldu.

Şimdi düşününce, hepimiz bir yerlerden başlıyoruz değil mi? Bir zamanlar ben de ilk bilgisayarla tanıştığımda, ekrandaki o pikselleri hareket ettirmek bile bana acayip gelirdi. Şimdi ise o piksellerin ardındaki devasa veri dünyasına şöyle bir göz atıyoruz. Tabi ilk başta neyin ne olduğunu anlamak biraz zaman alıyor. O yüzden bu yazıda, SQL’in en temel yapı taşı diyebileceğimiz SELECT komutunu, sanki yan yana oturmuş sohbet ediyormuşuz gibi anlatmaya çalışacağım. Ne dersiniz, başlayalım mı?

SELECT ne işe yarar diye soracak olursanız, en basit haliyle bir veritabanındaki tablolardan istediğiniz bilgileri çekmenizi sağlar. Hani koca bir kütüphaneye girersiniz de, sadece belirli bir konudaki kitapları ararsınız ya, işte SELECT da tam olarak bunu yapıyor. Bize o koca veri yığınından sadece işimize yarayanları getiriyor. Bu arada, benim kütüphanede en sevdiğim şey, bazen aramadığım bir kitapla karşılaşıp bambaşka bir dünyaya dalmaktır. SQL’de de bazen sorgu yazarken farkında olmadan keşfettiğin yeni bilgiler olabiliyor, bu da ayrı bir keyif.

En temel SELECT komutu şöyle:

SELECT * FROM TabloAdi;

Buradaki yıldız (*) işareti, o tablodaki tüm sütunları istediğimizi belirtiyor. Yani, tablonun içindeki her şeyi gözümüzün önüne getir diyor. Mesela bir ‘Musteriler’ tablonuz var diyelim. Bu komutla o tablodaki tüm müşterilerin adını, soyadını, adresini, telefonunu, yani ne varsa hepsini listelersiniz. Çok değil mi? Bazen böyle tek komutla bir sürü bilgiye ulaşmak insanı bir tuhaf yapıyor. Hani markete gidip her şeyi tek bir sepete doldurmak gibi.

Peki ya sadece belirli sütunları istiyorsak? Mesela sadece müşterilerin adını ve soyadını görmek istiyoruz. O zaman yıldız yerine istediğimiz sütunların isimlerini virgülle ayırarak yazarız:

SELECT MusteriAdi, MusteriSoyadi FROM Musteriler;

Bu şekilde daha temiz, daha odaklı sorgular yazabiliyoruz. Bu da bana bazen hayatımızda da böyle olması gerektiğini düşündürüyor. Her şeyi her zaman istemek yerine, neye gerçekten ihtiyacımız olduğunu bilip onu talep etmek daha akıllıca sanırım. Ne güzel değil mi?

Şimdi gelelim işin biraz daha eğlenceli kısmına. Bazen veritabanlarında öyle garip isimler olur ki, insanın aklı karışır. Mesela bir tablonun adı ‘tbl_MusteriBilgileri_Son’ falan olabilir. Ya da bir sütun ‘Mstr_Adi’ gibi kısaltılmış olabilir. Bu durumda SELECT komutunu yazarken hem doğru tablo adını hem de doğru sütun adını bilmek gerekiyor. Yanlış yazdığınızda ne olur? Hiçbir şey. Sadece sorgunuz hata verir. İşte kendi programımda da böyle ufak tefek hata yakalamaları eklemek bazen can sıkıcı olabiliyor ama sonunda işe yarıyorlar. Bir keresinde şöyle bir şey olmuştu, bir projede veri tabanı şemasını hazırlarken sütun adlarını ‘id’, ‘name’, ’email’ gibi basit tutmuştum. Sonra bir arkadaşım, ‘Abi bunları daha anlaşılır yapalım, ‘MusteriID’, ‘MusteriIsmi’, ‘MusteriEmail’ gibi’ dedi. Haklıydı da. O an fark ettim ki, bazen basitlik en iyi çözümdür, ama anlaşılırlıktan da ödün vermemek lazım. Neyse efendim, konumuza dönelim.

Bu arada, bazen bir tablodaki verilerin tamamını görmek istemeyebiliriz. Mesela sadece belirli bir koşula uyanları görmek isteriz. İşte burada ‘WHERE’ komutu devreye giriyor. WHERE, bir nevi filtre gibi çalışır. Sadece istediğimiz şartları sağlayan verileri getirir. Mesela, sadece ‘Ankara’da yaşayan müşterileri listelemek istediğimizde şöyle yazarız:

SELECT * FROM Musteriler WHERE Sehir = ‘Ankara’;

Buradaki ‘=’ işareti, ‘eşitse’ anlamına geliyor. Eğer bir metin değeri arıyorsak, onu tek tırnak içine alırız. Eğer sayısal bir değer arıyorsak, tırnak kullanmayız. Mesela yaşı 30’dan büyük müşterileri görmek isteseydik:

SELECT * FROM Musteriler WHERE Yas > 30;

Bu WHERE komutu sayesinde veriler üzerinde çok daha esnek davranabiliyoruz. Sanki bir dedektif gibi, elimizdeki ipuçlarıyla doğru suçluyu bulmaya çalışıyoruz. 🙂 Hani bazen bir bilgiyi ararsın da, onu bulmak için bir sürü yere bakman gerekir ya, işte WHERE de o arayışı kolaylaştırıyor.

Sonuç olarak, SELECT komutu SQL’in giriş kapısı gibi. Bu kapıdan girerek veritabanınızdaki bilgilere ulaşabiliyorsunuz. Başlangıçta biraz yabancı gelse de, pratik yaptıkça ne kadar güçlü ve esnek olduğunu göreceksiniz. Bu arada, bu temel komutları öğrenince, ileride daha karmaşık sorgular yazmak için sağlam bir temel atmış oluyorsunuz. Mesela, bir keresinde bir arkadaşım için basit bir raporlama ekranı yapmam gerekmişti. Sadece temel SELECT ve WHERE komutlarını kullanarak bile istediği verileri çekip ekrana dökmüştü. Ne güzel değil mi? Sonuçta, teknolojiyle iç içe olduğumuz bu hayatta, veriyi doğru okuyabilmek ve yorumlayabilmek bence çok önemli.

Eğer merak ederseniz, bu konuda daha fazla bilgiye şuradan ulaşabilirsiniz: Google’da SELECT WHERE.

Unutmayın, her büyük macera küçük bir adımla başlar. SQL’de de bu ilk adım SELECT komutuyla atılıyor. Hadi bakalım, siz de deneyin, bakın ne kadar keyifliymiş!