SQL'E GİRİŞ

Merhabalar, bugün birlikte SQL'e giriş yapacağız. Ama ondan önce "veritabanı" kavramından biraz bahsetmek isterim.

Veritabanı, bir sistemde bulunan verilerin kaydolduğu yerdir. Yani bu veri bir kullanıcı adı, kullanıcı soyadı, öğrenci puanı ya da cinsiyet bilgisi olabilir. Örnekleri çoğaltabiliriz.
Mesela Facebook'a kaydolduğumuzda girdiğimiz tüm bilgiler bir veritabanına kaydolur. Bir sonraki girişimizde, veritabanından, bizimle ilgili olan tüm bilgiler çekilir ve bize sunulur. Adımız, soyadımız, "Hakkında" bölümündeki bilgiler, fotoğraflarımız, videolarımız ve daha bir sürü şey veritabanındadır, gerektiğinde bize getirilir. Bu sadece bir web sitesi için geçerli değildir, bir masaüstü uygulamasında da veritabanı kullanılabilir. Mesela kafe otomasyonu uygulaması düşünürsek, oradaki menü içeriği, güvenliği için kullanıcı adı ve şifresiyle mümkün olan girişler (ad ve şifre veritabanında) veritabanına saklanır.



Aslında bir önceki yayınlarımın hemen hemen hepsinde veritabanı bağlantısı yapmıştım, size de sql sorgusu yazmanın önemli olduğundan bahsetmiştim. Çünkü veritabanı bağlantıları arayüz olarak ne kadar kolaylaştırılmış olursa olsun mutlaka bu işin mantığını bilmek gerekli. Bu yüzden veritabanı işine, SQL sorgusunun mantığından başlamanın daha doğru olduğunu düşünüyorum. 


NEDİR BU SQL?


SQL(Structured Query Language), veritabanı üzerinde sorgulama yapmamızı, çıktı almamızı yani sonuç üretmemizi sağlayan yapısal sorgulama dilidir. SQL'i kullanarak veritabanımızda tablolar oluşturabilir, kayıtları silebilir, güncelleyebilir, kayıt ekleyebilir, gerektiğinde tablo silebilir, veritabanının güvenliğini sağlayabilir, tetikleyici oluşturabilir ve daha birçok gerekli iş yapabiliriz.



Bu dilin de, her programlama dilinde olduğu gibi belirli kuralları vardır.

SELECT DEYİMİ


"Select * from kullanici;" sorgusuna en kolay sorgu denebilir. Bu sorgu "kullanici" tablosundaki tüm alanları ve kayıtları getirir. Tüm alanları getireceğini * karakteriyle anlatırız.






İstediğimiz kayıtları getirmesi için (mesela İstanbul'da doğan kayıtlar, yaşı 18'den büyük olan kayıtlar gibi) filtreleme yaparız. Filtreleme işini yapmak için belirli sorgu kalıplarını kullanırız.



"Select * from kullanici where sehir='Edirne'; " bu sorguda da kayıtlar getirilir. Ama ufak bir filtreleme yaptık. Veritabanımızdaki, "kullanici" tablomuzda bulunan, "sehir" alanında "Edirne" yazan kayıtları listelemesini istedik. Bunu where komutuyla sorgumuzda anlatıyoruz. 

Tablodaki kayıtları getir. Peki hangi kayıtları? Şehri Edirne olan kayıtları getir.




ORDER BY DEYİMİ


Order By, sorgu sonucu dönen kayıtları sıralamak için kullanılır. Eğer artan şekilde (1->9, A->Z) sıralamak istiyorsak ASC, azalan şekilde sıralamak istiyorsak DESC kullanmamız gerekli. Varsayılan ASC'dir.

"Select * from kullanici ORDER BY 'k_soyisim' ASC"





Bu sorgunun sonucunda "kullanici" tablosundaki tüm kayıtları, soyisime göre A'dan Z'ye sıralı bir şekilde getirir. Eğer hiçbir şey yazmazsanız yine aynı şeyi yapar, varsayılanın ASC olduğunu söylemiştim.

ALIAS KULLANIMI

Alias takma addır. Bir sorgu sonucunda dönen değerlerin alan adları, tablodaki alan adlarını alır. Ama eğer alias kullanırsak alan adımızı istediğimiz şekilde, boşluk, Türkçe karakter kullanarak düzenleyebiliriz. Böylece dönen tablo daha güzel ve açıklayıcı olur. 

"Select no AS 'No', k_isim AS 'Kullanıcı Adı', k_soyisim AS 'Kullanıcı Soyadı', k_cinsiyet AS 'Cinsiyeti' from kullanici;" 




Gördüğünüz gibi, dönen tabloda alan adları takma isimde verdiğimiz şekilde düzenlendi. Eğer alias kullanmasaydık bu şekilde görünecekti;



Görüldüğü gibi tablonun asıl alan adları döndü. AS ile, kısıtlamalardan biraz da olsa kurtulabiliyoruz. Çünkü alanlar isimlendirilirken boşluk bırakılamaz, Türkçe karakterler kullanılamaz. Belirli kuralları vardır.

AGGREGATE (İŞLEM) FONKSİYONLARI

Bu fonksiyonlar, SQL'de matematiksel işlem yapmamızı sağlar.

AVG: Ortalama almayı sağlar.

"Select AVG(yas) AS 'Ortalama Yaş' from kullanici"




Burada yas alanlarındaki tüm sayıların ortalamasını alıp sonucunu döndürdü.

COUNT: Satır sayısını verir.

"Select COUNT(*) AS 'Toplam Kayıt' from kullanici;" 



Tablomuzdaki tüm kayıtları sayıp sonucunu döndürdü.

MIN: En küçük değeri verir.

"Select MIN(yas) AS 'En küçük' from kullanici;"



En küçük yaşı verdi.

MAX: En büyük değeri verir.

"Select MAX(yas) AS 'En büyük' from kullanici;"



En büyük yaşı verdi.

SUM: Toplam değeri verir.

"Select SUM(yas) AS 'Yaşlar Toplamı' from kullanici;"




Tüm yaşların toplamını verdi.


SQL'e giriş için bu kadarının yeterli olduğunu düşünüyorum. Tabiki de, SQL bir derya ama mantığı anlamak için ilk konuları hazmetmek gereklidir. Her konuda olduğu gibi. 

İyi günler dilerim, mutlu kalın.

Yorumlar

Bu blogdaki popüler yayınlar

VB.NET'TE VERİTABANI İŞLEMLERİ

C# - WPF APPLICATION - LISTBOX KULLANIMI

VB.NET'TE VERİTABANINA KAYIT EKLEME İŞLEMİ