MySQL de Sorgu Komutları -2-

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.

idisimsoyisimyaskayit_tarih
1AhmetAkın212021-02-20
2MahmutAltun162021-02-20
3VeliPınar382021-02-20
4MahmutTunç252021-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

idisimsoyisimyaskayit_tarih
2MahmutAltun162021-02-20
4MahmutTunç252021-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

  1. 'd%' (Örneğin: d ile başlayan)
  2. '%d' (Örneğin: d ile biten) 
  3. '%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

idisimsoyisimyaskayit_tarih
1AhmetAkın212021-02-20
2MahmutAltun162021-02-20
3VeliPınar382021-02-20
4MahmutTunç252021-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

idisimsoyisimyaskayit_tarih
2MahmutAltun162021-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

idisimsoyisimyaskayit_tarih
1AhmetAkın212021-02-20
2MahmutAltun162021-02-20
3VeliPınar382021-02-20
4MahmutTunç252021-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

idisimsoyisimyaskayit_tarih
2MahmutAltun162021-02-20
4MahmutTunç252021-02-20
şeklinde tablo ekranımıza listeleniyor. Gelelim like komutunun diğer kullanımına

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

idisimsoyisimyaskayit_tarih
1AhmetAkın212021-02-20
2MahmutAltun162021-02-20
3VeliPınar382021-02-20
4MahmutTunç252021-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

idisimsoyisimyaskayit_tarih
1AhmetAkın212021-02-20
2MahmutAltun162021-02-20
3VeliPınar382021-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

idisimsoyisimyaskayit_tarih
1AhmetAkın212021-02-20
2MahmutAltun162021-02-20
3VeliPınar382021-02-20
4MahmutTunç252021-02-20
5ZaferYıldız262021-02-20
6ArdaDemirci142021-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 :)


Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıMySQL de Sorgu Komutları -1-
Sonraki YazıPHP de Diziler
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz