MySQL de Sorgu Komutları -2-
Hepinize merhaba dostlarım :). Bu yazımda sql sorgularında kullanılan komutlara devam edeceğiz. Bir önceki yazımda sql komutlarına giriş yapmıştık. Okumayan veya tekrardan pekiştirmek isteyen dostlarım için linki bırakıyorum
MySQL'de Sorgu Komutları -1- : https://blog.mfsoftware.net/yazi/mysql-de-sorgu-komutlari-1
linkinden yazıma ulaşabilirsiniz dostlarım :). Bazı dostlarımın heyecanlandığını hissediyorum ve sözü daha fazla uzatmadan sql komutlarına giriş yapıyorum
1-) WHERE
Dostlarım where komutunda korkulacak hiçbir şeyin olmadığını söyleyebilirim. Where komutunu mantıksal şekilde açıklamak gerekirse bizim programlama dillerinde karar yapısının aynısı diyebilirim. Ama tek farkı şudur. If sağlanmazsa else de şunu yap dediğimiz gibi çalışmıyor. O şart sağlanıyorsa kayıtları listeliyor sağlanmazsa boş değer döndü diyor dostlarım :). Şimdi gelin sizinle bir örnek yapalım
Örneğin üyeler tablomuz olsun ve ismi Mahmut olanları ekrana listeleyelim.
id | isim | soyisim | yas | kayit_tarih |
1 | Ahmet | Akın | 21 | 2021-02-20 |
2 | Mahmut | Altun | 16 | 2021-02-20 |
3 | Veli | Pınar | 38 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
şeklinde tablomuz olsun dostlarım. Örnek sorusunda ismi sadece Mahmut olanları listele demiştik. Gelin bunun kodunu yazalım dostlarım
SELECT * FROM üyeler WHERE isim="Mahmut"
şeklinde kodumuzu yazıyoruz. Çok zor bir şey yok dostlarım where deyip şartımızı yazıyoruz :). Peki sorgu burada nasıl işliyor diye soracak olursanız hemen anlatıyorum. "Üyeler tablosuna git isimleri tek tek sorgula. İsmi Mahmut olanları al ve ekrana listele" şeklinde işlem yapıyor dostlarım. Ve aşağıdaki gibi sonuç çıkıyor
id | isim | soyisim | yas | kayit_tarih |
2 | Mahmut | Altun | 16 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
şeklinde ekranımıza bastırılıyor dostlarım :). Gördüğünüz gibi zor bir tarafı yok :). Zor geliyorsa dostlarım bol pratik yapmanızı öneririm sonradan o oturacaktır :). Gelelim diğer komuta
2-) LIKE
Dostlarım LIKE komutunu ilk duymuş olabilirsiniz. Bu komutun kullanımı biraz farklıdır. Kullanım amacı ise belirtilen belirtilen kolonda başında mı sonunda mı yoksa içerisinde mi geçtiğini kontrol etmemize yarıyor. Büyük küçük harf duyarsıızdır ve 3 farklı kullanımı vardır
- 'd%' (Örneğin: d ile başlayan)
- '%d' (Örneğin: d ile biten)
- '%d%' (Örneğin: içerisinde d geçen)
şeklinde 3 farklı kullanımı vardır dostlarım :). Biraz karmaşık gelmiş olabilir dostlarım. Örneklerle bunları kullanınca biraz daha zihninizde yer etmesini istiyorum
2.1-) '(belirtilen_ifade)%'
Dostlarım like komutunun kullanımlarından birisi olan bu ifade belirtilen kolonda belirttiğimiz ifade ile başlıyorsa bize kaydı döndürür dostlarım. Gelin birlikte örnek yapalım
Örneğin üyeler tablosunda soyismi Al ile başlayan kişileri bulup ekrana bastıralım dostlarım
id | isim | soyisim | yas | kayit_tarih |
1 | Ahmet | Akın | 21 | 2021-02-20 |
2 | Mahmut | Altun | 16 | 2021-02-20 |
3 | Veli | Pınar | 38 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
şeklinde tablomuz var dostlarım. Gelin sorgumuzu yazalım şimdi
SELECT * FROM üyeler WHERE soyisim LIKE 'Al%'
şeklinde sorgumuzu yazalım dostlarım. Sorgu burada diyor ki dostlarım "Soyisim kolonunda bütün soyisim kayıtlarına bak. Al ile başlayanları topla getir". Ve sonra aşağıdaki gibi sonuç çıkıyor dostlarım
id | isim | soyisim | yas | kayit_tarih |
2 | Mahmut | Altun | 16 | 2021-02-20 |
şeklinde ekranımıza bastırılıyor dostlarım. Gördüğünüz gibi zor bir kullanımı yok :). Tamamen pratik yapmanıza bağlı her şey dostlarım. Gelelim like komutunun diğer kullanımına
2.2-) '%(belirtilen_ifade)'
Dostlarım like komutunun bu kullanımı da önceki kullanımımızın aksine belirtilen ifadeyi belirtilen kolonda kayıtların son kısımlarında arar dostlarım. Gelin bunu da örnekle açıklayalım
Örneğin üyeler tablosunda ismi mut ile biten kullanıcıları ekrana bastıralım dostlarım
id | isim | soyisim | yas | kayit_tarih |
1 | Ahmet | Akın | 21 | 2021-02-20 |
2 | Mahmut | Altun | 16 | 2021-02-20 |
3 | Veli | Pınar | 38 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
şeklinde tablomuz var dostlarım. Gelin şimdi sorgumuzu yazalım
SELECT * FROM `üyeler` WHERE isim LIKE '%mut'
şeklinde kodumuzu yazdık dostlarım :). Kod burada diyor ki "İsimler tablosuna git ismi mut ile biten kullanıcıları al ve ekrana bastır". Ve daha sonra aşağıdaki tablo ekranımıza bastırılıyor
id | isim | soyisim | yas | kayit_tarih |
2 | Mahmut | Altun | 16 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
2.3-) '%(belirtilen_ifade)%'
Dostlarım gelelim like komutunun bir başka kullanımına :). Bu kullanım ise dostlarım 2.1 ve 2.2 gibi kullanılır lakin bir farkı vardır. 2.1 örneğinde belirtilen ifade ile başlayan ve 2.2 de belirtilen ifade ile biten kayıtları listelemiştik ya bu komutta ise belirttiğimiz kelime bizim belirttiğimiz kolonda geçiyor mu onun kontrolünü yapmamıza yarar. Gelin bir örnek yaparak bunları açıklayalım
Örneğin üyeler tablomuz olsun yine biz buradan soyisim alanında a harfi geçen kullanıcıları alalım
id | isim | soyisim | yas | kayit_tarih |
1 | Ahmet | Akın | 21 | 2021-02-20 |
2 | Mahmut | Altun | 16 | 2021-02-20 |
3 | Veli | Pınar | 38 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
şeklinde tablomuz var dostlarım. Şimdi gelelim kodumuzu yazmaya
SELECT * FROM `üyeler` WHERE soyisim LIKE '%a%'
şeklinde kodumuzu yazdık dostlarım :). Burada ise sorgu nasıl çalışıyor diyorsanız dostlarım "Soyisim kolonunu incele. İçerisinde a harfi geçen kayıtları ekrana bastır" şeklinde emir veriyor ve aşağıdaki çıktı bizi karşılıyor dostlarım
id | isim | soyisim | yas | kayit_tarih |
1 | Ahmet | Akın | 21 | 2021-02-20 |
2 | Mahmut | Altun | 16 | 2021-02-20 |
3 | Veli | Pınar | 38 | 2021-02-20 |
şeklinde bir çıktı bizi karşılıyor dostlarım :). Kontrol ederseniz soyisim kolonunda her kayıtta "a" harfi geçiyor. Kullanımı dediğim gibi gayet basit dostlarım :).
3-) COUNT
Dostlarım geldik diğer bir sql komutuna. Count zaten şu devirde hemen hemen karşımıza çıkan bir kelime ve anlamını da haliyle bildiğimiz kelimedir. İngilizce karşılığı "Sayaç" olan bu kelimenin kullanımı da sql veri tabanındaki tablomuzda kaç adet kayıt olduğunu bulmamıza yarar. Çok büyük fayda sağlar. Nasıl diye soruyorsanız dostlarım gelin ufak bir mantıkla bir anlatım yapayım
Dostlarım şimdi 10 kayıttan oluşan bir tablomuz var diyelim. Bunu rahatlıkla sayıyoruz 10 tane kayıt var diyoruz. Peki ya 200 300 tane kayıt var ve zamanla eklemeler vs yapıyoruz o kayıtları zamanı gelince tek tek mi sayacağız ? Bir programcı asla ama asla bu hatayı yapmaz. Kullanır count komutunu yoluna bakar :)
Şimdi gelin dostlarım üyeler tablosundan örnek verelim
id | isim | soyisim | yas | kayit_tarih |
1 | Ahmet | Akın | 21 | 2021-02-20 |
2 | Mahmut | Altun | 16 | 2021-02-20 |
3 | Veli | Pınar | 38 | 2021-02-20 |
4 | Mahmut | Tunç | 25 | 2021-02-20 |
5 | Zafer | Yıldız | 26 | 2021-02-20 |
6 | Arda | Demirci | 14 | 2021-02-20 |
şeklinde tablomuz olsun dostlarım. Zamanla üye kayıt olacak üyeliğini sildirecek vs vs durumlar olacağını varsayalım. Biz her seferinde gidip tablodan sayma işlemi mi yapacağız ? Hayır dostlarım ufak bir sql kodu ile bu kayıtları saydıracağız. Nasıl mı ? Gelin hemen kodu yazalım
SELECT COUNT(*) FROM üyeler
şeklinde dostlarım kodumuzu yazıyoruz. Yalnız anlatmam gereken ufak bir nokta var ve sizin de aklınızda olan bir soru
Neden COUNT(*) olarak kullandık ?
Dostlarım önceki sql komutları yazımda * ifadesinin tüm kayıtları çektiğinden bahsetmiştim. Gelen tüm kayıtları da count() içerisine attığımızda sayma işlemini gerçekleştiriyor dostlarım :). Bunu da anladığımıza göre sonuç çıktısı aşağıdaki gibi karşımıza geliyor dostlarım
count(*) |
6 |
şeklinde ekranımıza gelip bizi karşılıyor dostlarım :)
Dostlarım sql komutlarını elimden geldiğince basit ve anlaşılır şekilde anlatmaya çalıştım. Umarım faydalı olmuşumdur. Diğer sql komutları da var diğer yazılarımda onlara da değineceğim dostlarım. Komutlar ve komutların kullanımları karmaşık gelebilir dostlarım. Sizden istediğim tek şey "İstikrarlı ve azimli olmak, bolca pratik yapmak". Bunları yaptığınız taktirde başarı sizin kapınızı çalacaktır dostlarım.
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer