MySQL de Sorgu Komutları -1-

MySQL de Sorgu Komutları -1-

Hepinize merhaba dostlarım :). Bu yazımda artık yavaş yavaş sql sorgularına giriş yapmaya başlayalım diyorum çünkü biliyorsunuz çağımız veri işleme çağı :). Sabırsızlandığınızı hissediyorum dostlarım :). Sözü fazla uzatmadan sql de sorgu nedir gelin onlara değinelim ve MySQL üzerinde sorguları inceleyerek ufak örnekler yapmaya başlayalım

Değinmeden önce Veri Tabanı ve Tablo Nedir , MYSQL de Veri Tipleri yazı linkimi bırakıyorum dostlarım. Okumayan dostlarımız varsa ve direk bu yazıya denk gelmişlerse aşağıdaki linklerden ulaşabilirler

1-) Veri Tabanı ve Tablo Nedir? : https://blog.mfsoftware.net/yazi/veri-tabani-ve-tablo-nedir
2-) MYSQL de Veri Tipleri : https://blog.mfsoftware.net/yazi/mysql-de-veri-tipleri

linklerinden ilerleyebilirsiniz :). Artık sql de sorgu nedir gelin onun tanımını mantıksal şekilde yapalım dostlarım :)

SQL de Sorgu Nedir

Dostlarım önceki yazılarımda veri tabanı ve tablo nedir diye bir yazı paylaşmıştım (okumak için buraya tıklayabilirsiniz). İşte orada ne diyordum verilerimizi bir arada tutuyor ilişkilendiriyor vs demiştim. Ama bu ilişkilendirme işlemini kenndi kendine yapacak hali yok :). Tamam verilerimizi bir arada tutuyor ama bu verilerin ilişkilendirilmesi olsun crud işlemleri (Ekleme ,Silme,Güncelleme,Listeleme) vs işlemleri yapabilmesi için bizim ona belirli komutlar göndermemiz gerekiyor dostlarım :). Kısaca bir programın işleyişi için komut vermek olarak aklınızda canlandırabilirsiniz mantığı tamamen bu şekilde işliyor dostlarım :).

Şimdi gelin dostlarım bu SQL komutlarını ve MySQL de kullanımlarından biraz bahsedelim :). Zor diye düşünüyorsanız dostlarım ben size şunu demek istiyorum

Hiçbir zorluğu yok. Olay tamamen istikrar ve pratik yapmaktan geçiyor :)

işte olay tamamen bu dostlarım. Bunu aşarsanız zaten her şeyde başarıyı yakalarsınız :). Çok konuştum özür diliyorum ve sorgu komutlarına girmek istiyorum dostlarım :)

1-) SELECT

İngilizce altyapınız birazcık varsa dostlarım zaten komutun mantığını da az çok anlamış oldunuz hemen :). Doğru bildiniz seçmek demek ama nasıl çalışır nasıl işler diye aklınızda soru işaretlerini de görüyorum dostlarım :). Gelin buna mantıksal bir şekilde değinelim dostlarım :)

Dostlarım SELECT komutu bizim veri tabanındaki tabloyu listelememizde büyük rol oynayan bir komuttur. Yeri geldi tablodaki tüm kayıtları çekmemiz gerekti, yeri geldi bayanları veya erkekleri, yeri geldi aktif ve pasif kullanıcılar (son verdiğim 2 örnekte koşul yazmamız gerekecek onları WHERE komutunda anlatacağım hiç kafanızı yormayın dostlarım) listelememiz gerekti. Direk tablo ismini yazarsak komut kısmına sql bize şunu der "Dostum ne yapıyorsun :)" işte bu listleme işlemlerinde SELECT komutu çok çok önemlidir dostlarım :). 

Peki bunu nasıl kullanırız diye soruyorsanız dostlarım 2 türlü kullanabiliriz

  1. * (Bütün Kolonları Getir)
  2. Belirtilen kolonları getir

Şimdi gelin bunları açıklayalım dostlarım 

* (Bütün Kolonları Getir)

Dostlarım verileri zaman zaman listeleme durumu ile karşılaşabiliriz. İşte bu durumlarda dostlarım tablomuzun tüm kolonlarını göstermek istediğimiz durumlarda * komutunu kullanabiliriz. Gelin bununla bir örnek yapalım.

Örneğin kullanıcılar isimli tablomuz olsun ve aşağıdaki bilgileri içersin

idadsoyademailşifrekayit_tarihi
1Zafer Yıldızzafer@a.com*****2020-02-18
2Arda Demirarda@b.com*****2020-02-18
3Emrullah Tanımaemrullah@c.com*****2020-02-18
4Veli Pınarveli@d.com*****2020-02-18
5Rahmi Yılmazrahmi@e.com*****2020-02-18

bu şekilde tablomuz olsun dostlarım veri tabanında. Verilerimizin hepsini getirmek istersek yazacağımız SQL Kodu

SELECT * FROM kullanıcılar

yukarıdaki yazdığımız kodda sql diyor ki tabloya dostlarım "Sen kullanıcılar tablosuna git (FROM işleminin amacı) hepsini seç (SELECT *)" 

bu yukarıda belirttiğim kodu yazınca dostlarım yukarıdaki tablonun aynısı veriliyor bize.

Belirtilen Kolonları Getir

Dostlarım bu kısımda ise bizim tablomuzda her alanların getirilmesinden ziyade istediğimiz kolonların getirilmesini sağlamamıza yarıyor. Mesela bir kişiler tablosu olsun kullanıcı adsoyad ve email adresleri getirilsin diyelim. Düşünsenize iki kolona ihtiyacımız varken * yazıp da hepsini getirmenin ne anlamı var :). İşte dostlarım bu sebepten dolayı biz belirli kolonları belirtip sadece o kolonların gelmesi işlemini gerçekleştiriyoruz :). Nasıl mı ? Gelin hep beraber bir örnek yapalım

Tablodan sadece id,adsoyad ve email kolonlarını çekelim dostlarım :). Bunu yapmak için ise dostlarım yazacağımız kod

SELECT id,adsoyad,email FROM kullanıcılar

yukarıdaki kodda sql tablosuna atılan sorguda şunlar diyor "Sen kullanıcılar tablosuna git, tablodan id,adsoyad,email kolonlarını çek" diyor dostlarım. Daha sonrasında da alttaki gibi çıktı veriyor

idadsoyademail
1Zafer Yıldızzafer@a.com
2Arda Demirarda@b.com
3Emrullah Tanımaemrullah@c.com
4Veli Pınarveli@d.com
5Rahmi Yılmazrahmi@e.com

şekilde gördüğünüz gibi dostlarım sadece 3 kolonu alıp ekranımıza bastırdık :). SQL in faydalarını yavaş yavaş görüyoruz. Gelelim diğer sorgu komutuna

2-) ORDER BY

Dostlarım order by komutu ise İngilizce'de düzen yani sıralama anlamına gelmektedir. SQL  işlemlerinde de örnek vermek gerekirse slider listeleme işlemlerinde olsun veya sayfaların header kısmında gösterilmesi olsun zaman zaman kullanılan bir yöntemdir.

Komutun amacı dostlarım bizim belirttiiğimiz kolonu bizim belirttiğimiz şekilde artan veya azalan şekilde sıralıyor (integer ise 0 dan başlayıp artan veya azalan, text ise ascii kodlarına göre artan veya azalan şekilde sıralama şeklinde) dostlarım. Dediğim gibi sıkça kullanılır ve öğrenmekte de faydası var dostlarım :). Gelin bununla da bir örnek yapalım

Örneğin slaytlar isimli bir tablomuz olsun dostlarım. Burada da 3 kaydımız olsun 

idresimdurumeklenme_tarihi
1a.png12021-02-18
2b.png12021-02-18
3c.png12021-02-18

şeklinde 3 kaydımız var. Biz bu kayıtları tersten sıralamak için aşağıdaki kodu kullanırız dostlarım

SELECT * FROM slaytlar ORDER BY id DESC

şeklinde kodumuzu yazıyoruz. Kod burada diyor ki "Sen slaytlar tablosuna git, id alanını büyükten küçüğe sırala ve bütün kolonları getir :)". Daha sonra da aşağıdaki gibi bir çıktı bizi bekliyor

idresimdurumeklenme_tarihi
3c.png12021-02-18
2b.png12021-02-18
1a.png12021-02-18

şeklinde karşımıza geliyor dostlarım :). Peki bizim sql tablomuzda bu şekilde kayıtlı olsaydı biz nasıl düz yani artan şekilde sıralayacaktık diye soruyorsanız dostlarım DESC yerini ASC yapmamız gerekirdi :). Gelin onun kodunu da yazalım

SELECT * FROM slaytlar ORDER BY id ASC

şeklinde ayarlıyoruz dostlarım :). Bu kod da diyor ki "Sen slaytlar tablosuna git, id alanını küçükten büyüğe sırala ve bütün kolonları getir :)". Ve aşağıdaki sonuç geliyor bize

idresimdurumeklenme_tarihi
1a.png12021-02-18
2b.png12021-02-18
3c.png12021-02-18

şeklinde bir çıktı geliyor :). 

Ek olarak bunların haricinde bir kullanım yeri daha var :). Bu da random şekilde sıralama dostlarım :). Özellikle e-ticaret sitelerinin vazgeçilmez dediği ve sürekli kullandığı sql içerisinde bir kullanımdır. Gelin bunun kodunu da yazalım dostlarım. Kullanımı basit böyle zor imkansız gibi düşünmeyin dostlarım :). 

SELECT * FROM slaytlar ORDER BY RAND()

işte dostlarım değişen tek kısım id ASC veya id DESC yerine RAND() yazmamız bize bütün kayıtları random şekilde sıralanmış olarak getirmeye yaradı :). Örnek olarak da aşağıdaki gibi bir sonuç geldi (Dikkat edelim dostlarım :) Örnek dedim yani her zaman bu şekilde sıralamaz ben burada size örnek açısından random bir sıralama yapacağım)

idresimdurumeklenme_tarihi
1a.png12021-02-18
3c.png12021-02-18
2b.png12021-02-18

şeklindeki gibi sıralama yapar ama her zamanki gibi bu sonucu vermez mesela bir sonraki deneyişimizde 3 - 1 - 2 olarak sıralayabilir. Yani random olarak sıralaması sisteme bağlı :). Gelelim bir diğer komutumuza dostlarım

3-) LIMIT

Dostlarım direk anladınız bu sql komutunu :). Limit yani sınır olarak geçiyor sql işleminde de :). Kullanımı basit hiç zor değil öncelikle onu belirtebilirim. İki farklı kullanımı var gelin bunları inceleyip birer örnek yapalım dostlarım

  1. Tek Parametreli
  2. Çift Parametreli

gördüğünüz gibi 2 farklı kullanımı var dostlarım. Gelin sözü daha fazla uzatmadan başlayalım

3.1 Tek Parametreli

Dostlarım limitin tek parametreli kullanımındaki amaç şudur dostlarım :). Tabloyu çekme işlemi yapıyoruz diyelim. Burada maksimum kaç satır çekileceğini belirtmek istediğimizde tek parametreli limit kullanırız. Buna da yazılar diye bir tablo açalım.

idbaslikicerikkategorikayit_tarihi
1yazi-1yazi icerik 1genel2020-02-18
2yazi-2
yazi icerik 2
genel
2020-02-18
3yazi-3
yazi icerik 3
genel
2020-02-18
4yazi-4
yazi icerik 4
genel
2020-02-18
5yazi-5
yazi icerik 5
genel
2020-02-18

şeklinde tablomuzu oluşturalım dostlarım. Şimdi ilk 3 satırı yazdırmak için gelin aşağıdaki sql kodunu yazalım

SELECT * FROM yazilar LIMIT 3

bu kodu yazdık dostlarım :). Kod burada diyor ki "Yazılar tablosuna git ve baştan 3 kayıt listele". Buradan da gelen sonuç aşağıdaki gibidir

idbaslikicerikkategorikayit_tarihi
1yazi-1yazi icerik 1genel2020-02-18
2yazi-2
yazi icerik 2
genel
2020-02-18
3yazi-3
yazi icerik 3
genel
2020-02-18

şeklinde bir çıktı karşımıza gelecektir dostlarım :). İşte tek parametreli limit kodu bu şekilde çalışıyor dostlarım :). Şimdi gelelim çift parametreli limit koduna :)

3.2 Çift Parametreli

Dostlarım çift parametreli limit kullanımı tek parametreli limit kullanımına benzer lakin birtakım farklılık var. Tek parametreli limit kısmında belirttiğmiz satır kadar yazarken çift parametreli limit kullanımında belirtilen kayıt sayısından sonra belirlediğimiz kayıda kadar almamıza yarar.

Gelin bunu yazılar tablomuzda uygulayalım dostlarım. 3. kayıttan sonra gelen 2 kaydı listeleyelim. Gelin bunun kodunu yazalım

SELECT * FROM yazılar LIMIT 3,2

kodunu yazalım dostlarım :). Burada kod diyor ki "Yazılar tablosuna git, 3. satırı bul ama 3. satırdan sonra gelen 2 satırı al listele". Bu kodun çıktısı da dostlarım aşağıdaki gibi oluyor

idbaslikicerikkategorikayit_tarihi
4yazi-4
yazi icerik 4
genel
2020-02-18
5yazi-5
yazi icerik 5
genel
2020-02-18

şekilde gördüğünüz gibi dostlarım 3. kayıttan sonra gelen 2 kaydı aldı listeledi :). Dostlarım sql sorgularındaki komutlara bu yazımızda ufak bir başlangıç yapmış oldum. Devamı diğer yazılarımda gelecektir dostlarım. Elimden geldiğince yalın bir anlatımla ve eğlendirirken öğretme amaçlı anlatmaya çalıştım. Umarım faydalı olabilmişimdir. Takıldığınız yerler olabilir anlıyorum çünkü aynı yollardan geçtim ben de. Yapmanız gereken tek şey her yazımın sonunda belirttiğim gibi "İstikrarlı bir çalışma, Azimli olmak ve bol pratik yapmak". Bu 3 şeyi uyguladığınız taktirde başarınız kaçınılmaz olacaktı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 Veri Tipleri
Sonraki YazıMySQL de Sorgu Komutları -2-
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz