Genelde MSSQL’ de kullanılan sorgular.Ancak birçoğu SQL sorgular olduğu için örneğin top ifadesi MSSQL de çalışırken MySQL de çalışmayacaktır. Onun yerine LIMIT ifadesi kullanılmaktadır. Çalışmayan olursa google da örneğin bu durum için mysql top kullanımı yazarsanız karşınıza limitin nasıl kullanılacağı çıkacaktır.
Personel tablosundaki tüm listeyi getirir
SELECT * FROM Personel
Sadece istenilen sütundaki verileri gösterir.
SELECT Tc, Ad, Soyad FROM Personel
Sıralama (Alfabetik veya rakamsal sıralama)
Asc küçükten büyüğe desc tam tersi
SELECT * FROM Personel ORDER BY Ad ASC --DESC
Önce isme sonra aynı isimde olanları soy isime göre sıralar.
SELECT Ad, Soyad FROM Personel ORDER BY isim DESC , soyisim DESC
Koşullu sorgu için WHERE anahtar kelimesi kullanılır.
Maaşı bin lira olanları getirir.
SELECT * FROM Personel WHERE Maas=1000
Maaşı 500 ve 500den küçük olanları getirir.
SELECT * FROM Personel WHERE Maas<=500
Maaşı 500den küçük olanları ve ismi kadir olanı getirir.
SELECT * FROM Personel WHERE Maas
İsminde m harfi olanlar
SELECT * FROM Personel WHERE isim LIKE '%m%'
İsmi k ile başlayanlar
SELECT * FROM Personel WHERE isim LIKE 'k%'
İsmi r ile bitenler
SELECT * FROM Personel WHERE isim LIKE '%r'
Üçüncü karakteri ‘h’ ve altıncı karakteri ‘t’ olan kayıtları getirir.
SELECT * FROM Personel WHERE isim LIKE '__h__t'
Baş harfi ‘a’ veya ‘k’ olanları getirir.
SELECT * FROM Personel WHERE isim LIKE '%[ak]%'
Soy ismi ‘s’ ile ‘z’ arasındaki tüm harflerden herhangi biriyle başlayanları getirir.
SELECT * FROM Personel WHERE Soyad LIKE '[s-z]%' AND Soyad LIKE '%a'
Takma sütun adı as’le verilir.
Birden fazla kelime içeriyorsa tırnak arasına yazılmalıdır.
SELECT isim AS Adlar, Maas AS 'Maaşlar Geliri' FROM Personel
Sütunları birleştirir.
SELECT isim + ' ' + soyisim AS AdSoyad FROM Personel
Soyadı boş olanları getirir.
SELECT * FROM Personel WHERE Soyad IS NULL
Doğum tarihi boş olanları göstermesin
SELECT * FROM Personel WHERE DogumTarihi IS NOT NULL --and Soyad is NULL
Maaşı 1000 ile 2000 arasında olanlar
SELECT * FROM Personel WHERE Maas BETWEEN 1000 AND 2000
Baş harfi ‘k’ ile ‘z’ arasında olanları getirir.
SELECT * FROM Personel WHERE isim BETWEEN 'k' AND 'z'
İstenilen sayı kadar veri getirme
SELECT TOP 3 * FROM Personel ORDER BY Tc DESC
Kayıtların %50sini ve soyadı Kılıç’dan farklı olanları getirir.
SELECT TOP 50 PERCENT * FROM Personel WHERE Soyad <> 'Kılıç' ORDER BY Tc ASC
Tanımladığım 3 bölümde çalışan elemanları listele
SELECT * FROM Personel WHERE BolumNo=1 OR BolumNo=2 OR BolumNo=4 SELECT * FROM Personel WHERE BolumNo IN(1,2,4)
Zamlı maaşları göster
SELECT Maas AS 'Asıl Maaş', Maas+1000 AS 'Zamlı Maaş' FROM Personel
İsme göre aynı olanları eler
SELECT DISTINCT isim FROM Personel
İlk 3 harfi ‘meh’ olan tüm verileri getirir.
SELECT * FROM Personel WHERE LEFT(Ad,3)='meh'
Soyadının son harfi ‘y’ olanları getirir.
SELECT * FROM Personel WHERE RIGHT(Soyad,1)='y'
Herhangi bir sütundaki veri sayısını getirir.
SELECT COUNT(Tc) FROM Personel
NULL olanları saymaz
SELECT COUNT(DogumTarihi) FROM Personel
Toplam sayıyı getirir. İsmi ‘Mehmet’ olanlar hariç.
SELECT COUNT(*) FROM Personel WHERE isim<>'Mehmet'
Toplam Maaşı Getirir. 1000 ve 2000 arasında olan maaşları. Sayıyı değil toplamı döndürür.
SELECT SUM(Maas) FROM Personel WHERE maas BETWEEN 1000 AND 2000
Ortalama Maaşı getirir. 2 türlü yapabilirsiniz.
SELECT SUM(Maas)/COUNT(*) FROM Personel SELECT AVG(Maas) FROM Personel
BolumNosu en büyük olan kaydı getirir.
SELECT MAX(BolumNo) FROM Personel
Bolumnosu en küçük olan kaydı getirir.
SELECT MIN(BolumNo) FROM Personel
4 tane ‘a’ yerine tek ‘a’ yazar. Yani veriyi değiştirip gösterir.
SELECT isim AS Ad, REPLACE(soyisim,'aaaa','a') AS Soyad FROM Personel
Len o sütunun karakter uzunluğunu getirir.
SELECT Tc,Ad, Len(Ad) AS 'İsim Uzunluğu' ,Soyad, Len(Soyad) AS 'Soyad Uzunluğu' FROM Personel
Eğer cast edilmezse iki farklı tür birleştirilemez. Cast değişken türlerini değiştirmek için kullanılır.
SELECT CAST(Tc as varchar) + ' ' + Ad AS 'Olcakmi' FROM Personel
Yazı tipindeki verileri bölme. 2.parametre başlangıç harfinin sırası. 3.parametre kaç harf gösterileceğini sorar.
SELECT SUBSTRİNG(Ad,1,1) FROM Personel
Soy isimlerin başındaki boşluklar silinir.
SELECT LTRİM(Soyad) FROM Personel
Soy ismin sonundaki boşlukları siler.
SELECT RTRİM(Soyad) FROM Personel
Gruplama İşlemleri
BolumNo ya göre gruplama yapma.
SELECT COUNT(*) AS 'Personel Sayısı',BolumNo FROM Personel GROUP BY BolumNo
Having group by ile kullanılır.
Yani gruplama işleminden sonra da bir koşul konulacaksa having kullanılır. Bölüm numarasına göre personelleri grupla ancak maaşları 3000 liranın üstünde olanları.
SELECT BolumNo, AVG(maas) FROM Personel GROUP BY BolumNo HAVING AVG(maas) > 3000