Temel SQL komutları
TEMEL SQL KOMUTLARI
Herkese merhaba,
Bu yazımla sizlere SQL dilinde kullanılan temel komutlardan bahsedeceğim.
Keyifli okumalar ☺
SQL Nedir?
SQL, verileri yönetmek ve tasarlamak için kullanılan bir dildir.
SQL, kendisi bir programlama dili olmamasına rağmen birçok
kişi tarafından programlama dili olarak bilinir. SQL herhangi bir
veri tabanı ortamında kullanılan bir alt dildir.
Şimdi de SQL dilinde kullanılan temel komutlardan bahsedelim.
SELECT KULLANIMI
Select, veri tabanında bulunan verileri seçmek için kullanılmaktadır.
Select ifadesinden sonra tabloda görüntülenmesi istenen alanlar yazılmalıdır. Tablodaki tüm alanların
görüntülenmesi isteniyor ise * yazılması gereklidir.
Yazım şekli ;
SELECT Alan Adı, Alan Adı1 FROM [Tablo Adı]
SELECT * FROM [Tablo Adı]
Örnek 1 : “Select * from Ortak.Yapi” yazarak Ortak.Yapi tablosundaki tüm alanların görüntülenmesi
sağlandı.
Örnek 2 : “Select Id, YapiAdi, Bucak, Mahalle from Ortak.Yapi” yazarak Ortak.Yapi tablosundaki ID, Yapı Adı,
Bucak ve Mahalle alanlarının görüntülenmesi sağlandı.
WHERE KULLANIMI
Sql’de where ifadesi sorguya koşul belirtmek için kullanılmaktadır.
Bir tablodaki tüm alanları görüntülemek istemediğimiz zaman ya da tabloda güncelleme ve silme
yapacağımız durumlarda bir koşula göre yapmamız gerekebilir. Bu gibi durumlar için where koşulunu
kullanmamız gerekebilir.
Yazım şekli ;
SELECT Alan Adı, Alan Adı1 FROM [Tablo Adı] Where [ŞART]
Örnek 1 : “select * from Ortak.Yapi where YapiDurumu=27” yazarak Ortak.Yapi tablosundaki yapı durumu
“yıkılmış” olan yapıların görüntülenmesi sağlandı. (27 = “yapı yıkıldı” durumudur)
Toplamda 190,421 kayıt geldiği görülmüştür.
İhtiyaca göre koşul sayısı arttırılabilir.
Örnek 2 : “select * from Ortak.Yapi where YapiDurumu=27 and IsActive=1” yazarak Ortak.Yapi
tablosundaki yapı durumu “yıkılmış” ve “aktif“ olan yapıların görüntülenmesi sağlandı.
Aktif olanlar sorgulandığında toplam kayıt sayısının 185,986 olduğu görülür.
UPDATE KULLANIMI
Update işlemi tabloda bulunan bilgilerin değiştirilmesi için kullanılmaktadır.
Update işleminde değiştirilmesi istenen kolon isimleri yazılır ve yeni değeri koşul ya da koşulsuz bir şekilde
güncellenir.
Yazım şekli;
Update [Tablo Adı] set Alan1= Değer1, Alan2= Değer2 where [ŞART]
Update ifadesinden sonra güncellenmek istenen tablo adı, set ifadesinden sonra güncellenecek alanlar yazılır ve alanların karşısına yeni değerleri yazılır. Şart ifadesi ile de eklenerek kayıt güncellenir.
Örnek 1 : “update Ortak.Yapi set YapiAdi=DEMİR where Id=1” yazılarak Ortak.Yapi tablosunda Id’si 1 olan kaydın yapı adı “DEMİR” olarak güncellenmiştir.
Eğer şart belirtilmez ise tablodaki güncellenmek istenen alan tüm kayıtlar için güncellenecektir.
Örnek 2 : “update Ortak.Yapi set YapiAdi= ‘Derya’ ” yazıldığında şart belirtilmediği için Ortak.Yapi tablosundaki tüm yapıların yapı adı “Derya” olarak güncellenecektir.
DELETE KULLANIMI
Delete işlemi bir tablo içerisindeki kayıtları silmek için kullanılır.
Koşul kullanılarak belirtilen satırlardaki kayıtların silinebileceği gibi tabloda bulunan tüm kayıtların da silinmesi sağlanabilir.
Yazım şekli;
Delete from [Tablo Adı] where [ŞART]
Delete from ifadesinden sonra tablo adı yazılır ve şart ile de tabloda hangi alanların silineceği yazılır.
Delete from [Tablo Adı]
Şart ifadesi yazılmaz ise tabloda bulunan tüm kayıtların silinmesi sağlanır.
Örnek 1 : “Delete from Ortak.Yapi where Id=1” yazılarak Ortak.Yapi tablosunda Id’si 1 olan kaydın silinmesi sağlanır.
Örnek 2 : “Delete from Ortak.Yapi” yazılarak Ortak.Yapi tablosunda bulunan tüm kayıtların silinmesi sağlanır.
INSERT KULLANIMI
Bir tabloya veri eklemek için insert komutu kullanılır.
Tabloda bulunan satırlar yazılır ve satırlar için değerler atanarak Insert işlemi gerçekleştirilir.
Yazım şekli;
INSERT INTO [Tablo Adı] (Kolon) values (Değer)
Örnek : “select * from Ortak.Kurum” Ortak.Kurum tablosunda Kurumlar sorgulandığında 2727 kaydın geldiği görülmektedir.
Ortak.Kurum tablosuna 1 kayıt daha eklemek için aşağıdaki gibi Insert komutu kullanılmıştır.
“ Insert into Ortak.Kurum (KurumAdi, IlId, IlceId, IletisimAdresi, KurumTipi) values (‘Türkay’, ‘6’, ‘164’, ‘Ankara’, ‘4’)” yazdığımızda Ortak.Kurum tablosuna KurumAdı=Türkay, IlId=6, IlceId=164, IletisimAdresi=Ankara ve KurumTipi=4 olan yeni bir kayıt eklenmiştir.
Toplam kayıt sayısının 2728 olduğu görülmektedir.
LIKE KULLANIMI
“Like” genellikle sütunda belirtilen bir kelimeyi aramak için kullanılır.
Bir alan içerisinden arama yapabilmek için kullanılmaktadır.
Like operatörü ile birlikte sıkça kullanılan iki tip vardır. Bunlar;
- % : Yüzde işareti sıfır, bir veya birden çok karakteri temsil eder.
- _ : Alt çizgi tek bir karakteri temsil eder.
Yazım şekli;
Select * from [Tablo Adı] where [sütun adı] like ‘aranmak istenen her ne ise yazılır’
Yukarıdaki şekilde kullanımda like operatörü where ile sorgulama ile aynı mantıkla çalışmaktadır. Bu nedenle aranılan ifadenin tam olarak eşit yazılması gerekmektedir.
Örnek 1 : select * from Ortak.Kurum where KurumAdi like 'Ankara İl Müdürlüğü'
Arama yapacağımız değerin sadece başlangıç değerini biliyoruz ve gerisini tam olarak bilmiyorsak % işaretini arama yapacağımız kelimenin sonuna ekleriz.
Örnek 2 : select * from Ortak.Kurum where KurumAdi like ‘Anka%’ > bu ifade ile sorgulama yapıldığında Ortak.Kurum tablosunda kurum adı “Anka” ile başlayan kurumlar listelenecektir.
Arama yapacağımız değerin başını tam olarak bilmeyip sonunu bildiğimiz durumda % işaretini arama yapacağımız kelimenin başına ekleriz.
Örnek 3 : select * from Ortak.Kurum where KurumAdi like ‘%sitesi’ > bu ifade ile sorgulama yapıldığında Ortak.Kurum tablosunda kurum adı “sitesi” ile biten kurumlar listelenecektir.
Arama yapacağımız ifade arama yapacağımız alan içerisinde herhangi bir yerde geçiyor ise % ifadesini değerin başına ve sonuna ekleriz. Bu şekilde bize içerisinde ifadenin geçtiği bütün değerleri listeleyecektir.
Örnek 4 : select * from Ortak.Kurum where KurumAdi like “%sam% > bu ifade ile sorgulama yapıldığında Ortak.Kurum tablosunda kurum adı içerisinde “sam” geçen bütün kayıtlar listelenecektir.
TOP KULLANIMI
Tablodaki bütün kayıtları getirmek yerine belirtilen sayıda kaydı görüntülemek için kullanılır.
Örnek : select Top (10) * from Ortak.Kurum bu ifade ile sorgulama yapıldığında Ortak.Kurum tablosundaki ilk 10 kayıt listelenecektir.
REPLACE KULLANIMI
Tablolarımızda çok sayıda kayıt varken bu kayıtlarda geçen bir ifadeyi başka bir ifade ile değiştirerek göstermek istediğimizde Replace komutunu kullanabiliriz.
Örneğin tabloda TCKN, ya da şifre gibi özel bilgiler varsa ve bunları göstermek yerine gizleyerek sorgulamak istiyorsak replace komutu ile TCKN ya da şifre gibi alanları “****” sembolü ile gizleyerek sorgulama yapabiliriz.
Yazım şekli;
Select Replace (Alan Adı, Eski Veri, Yeni Veri) from Tablo Adı
Örnek: Select Replace (KurumAdi, ‘FATİH’, ‘****’) from Ortak.Kurum bu ifade ile sorgulama yapıldığında Ortak.Kurum tablosunda KurumAdi alanında FATİH ifadesi geçen kayıtlar *** ile gösterilecektir.
COUNT() KULLANIMI
Tablonun herhangi bir alanındaki kayıt sayısını öğrenmek için count fonksiyonunu kullanırız.
Yazım şekli;
Select Count(*) from Tablo Adı where şart
Select Count(alan adı) from Tablo Adı
Örnek: Yetki.Kullanici tablosundan KurumId=425 (Adıyaman il müdürlüğü) olan kurumun kullanıcı sayısı için sorgu yazalım.
Select Count(*) from Yetki.Kullanici where KurumId=425
Adıyaman İl Müdürlüğünde yetkili 21 kullanıcının olduğu görüntülenir.
Yukarıdaki örnekte Count(*) ifadesindeki * yerine KurumId yazıldığında da sorgunun aynı sonucu verdiği görülür.
Select Count(KurumId) from Yetki.Kullanici where KurumId=425
MAX() KULLANIMI
Seçilen sütunun en büyük değerini verir.
Sadece sayısal alanda değil aynı zamanda metinsel alanlarda da kullanılabilir. Bu durumda metinsel veriyi A’dan Z’ye dizip en sondaki kaydı verecektir.
Yazım şekli;
Select Max(Alan Adı) from Tablo Adı
Örnek: Select Max(TaksitTutari) from Finans.FaizYardimiKrediOdemePlani
Finans.FaizYardimiKrediOdemePlani tablosunda Taksit Tutarı en yüksek olan kaydın taksit tutarı bilgisi görüntülenir.
MİN() KULLANIMI
Seçilen sütunun en küçük değerini verir.
Sadece sayısal alanda değil aynı zamanda metinsel alanlarda da kullanılabilir. Bu durumda metinsel ifadeyi A’dan Z’ye dizip en sondaki kaydı verecektir.
Yazım şekli;
Select Min(Alan Adı) from Tablo Adı
Örnek: Select Min(TaksitTutari) from Finans.FaizYardimiKrediOdemePlani
Finans.FaizYardimiKrediOdemePlani tablosunda Taksit Tutarı en düşük olan kaydın taksit tutarı bilgisi görüntülenir.
SUM() KULLANIMI
Sum() fonksiyonu, belirtilen alandaki değerlerin toplamını görmek için kullanılır. Sadece sayısal alanlarda kullanılabilir.
Yazım şekli;
Select Sum(Alan Adı) from Tablo Adı
Örnek: Select Sum(TaksitTutari) from Finans.FaizYardimiKrediOdemePlani
Finans.FaizYardimiKrediOdemePlani tablosunda Taksit Tutarı alanındaki tutarların toplam bilgisi görüntülenir.
DISTINCT KULLANIMI
Select sorgusunda dönen aynı kayıtların listelenmemesi için, aynı kayıtları tek kayda indirerek listelemek için distinct komutu kullanılır.
Yazım şekli;
Select DISTINCT kolon Adı1, kolon Adı2, … from Tablo Adı
Örnek: Ortak.CografiKod tablomuzda normalde 1065 kayıt vardır.
Select DISTINCT Bolgesi from Ortak.CografiKod sorgusu çalıştırıldığında 8 adet kaydın listelendiği görülmüştür. Bölgeye göre tekrarlanan kayıtların listelenmediği görülür.
Tekrar eden kayıtların sayısını öğrenmek için COUNT DISTINCT komutu birlikte kullanılır.
Yazım şekli;
Select COUNT (DISTINCT Kolon Adı) from Tablo Adı
Örnek : Select COUNT (DISTINCT Adi) from Yetki.Kullanici sorgusunda aynı isimde olan kayıtların listesini verecektir. Bu örnekte 12388 kişinin ismi aynıdır.
AND ve OR KULLANIMI
AND : And operatöründe tüm koşullar sağlandığında kayıtlar görüntülenir.
OR : Or operatöründe koşullardan biri bile sağlanırsa kayıtlar görüntülenir.
Örnekler üzerinden daha anlaşılır olacaktır.
Yazım Şekli;
Select * from Tablo Adı where koşul1 and koşul2 …
Select * from Tablo Adı where koşul1 or koşul2
Örnek: Ortak.Kurum tablosundan KurumTipi=4 (belediye) ve IsActive=1 (aktif) olan kayıtları and operatörü ile listeyelim.
Select * from Ortak.Kurum where KurumTipi=4 and IsActive=1
Ortak.Kurum tablosunda bu koşula uyan 985 adet kaydın listelendiği görüntülenir.
Örnek: Ortak.Kurum tablosundan KurumTipi=4 (belediye) ya da KurumTipi=7 (İl Müdürlüğü) olan kayıtları or operatörü ile listeleyelim.
Select * from Ortak.Kurum where KurumTipi=4 or KurumTipi=7
Ortak.Kurum tablosunda bu koşula uyan 1190 adet kaydın listelendiği görüntülenir. Belediye ve il müdürlüklerinin listelendiği görüntülenir.
GROUP BY KULLANIMI
Group By komutu belirtilen alandaki değerleri gruplandırarak, her grup için istenen bilgiyi elde etmemizi sağlar.
Count, Max, Min, Sum ve Avg gibi fonksiyonlar ile birlikte kullanılır.
Yazım şekli;
Select AlanAdı1 , Fonksiyon(AlanAdı2) from Tablo Adı Group By AlanAdı1
Örnekler üzerinden daha net anlaşılabilir.
Örnek : Select YapiDurumu, Count(YapiDurumu) from Ortak.Yapi where YapiDurumu=27 group by YapiDurumu
Bu örnek ile Ortak.Yapi tablosunda Yapı Durumu=27 olan yapıların sayısı görüntülenir.
Örnek : Select YapiDurumu, Count(YapiDurumu) from Ortak.Yapi group by YapiDurumu
Bu örnek ile Ortak.Yapi tablosundaki tüm yapı durumlarında kaç adet yapının olduğu bilgisi görüntülenir.
ORDER BY KULLANIMI
Order By komutu select sorgusundan dönen sonuç tablosunda küçükten büyüğe (artan) ya da büyükten küçüğe (azalan) doğru sıralama yapmak için kullanılır.
Kayıtları artan şekilde sıralamak için ASC (ascending) , azalan şekilde sıralamak için DESC (descending) anahtar sözcükleri kullanılır.
Yazım şekli;
Select * from Tablo Adı Order By Alan Adı Asc > Alandaki değerler küçükten büyüğe doğru sıralanır.
Select * from TabloAdı Order By Alan Adı Desc > Alandaki değerler büyükten küçüğe doğru sıralanır.
Örnek: Select * from Finans.KiraYardimiOdemePlani Order By OdenecekYardimMiktar Asc
Bu örnek ile Finans.KiraYardimiOdemePlani tablosunda OdenecekYardimMiktar alanındaki değerlerin küçükten büyüğe doğru sıralandığı görüntülenir.
Örnek: Select * from Finans.KiraYardimiOdemePlani Order By OdenecekYardimMiktar Desc
Bu örnek ile Finans.KiraYardimiOdemePlani tablosunda OdenecekYardimMiktar alanındaki değerlerin büyükten küçüğe doğru sıralandığı görüntülenir.
Kaynakça
https://www.lifeacode.com/sql-dersleri/sql-egitimi.html
https://www.sqlkodlari.com/01-sql-kullanimi.asp
Türkay TÜRKÖZ