kazimyaver | Tüm yazılar etiketlendi 'SQL sorguları'

Temel SQL Sorguları

/*Temel Select İşlemleri*/

--Personel tablosundaki tüm listeyi getirir

SELECT * FROM Personel

--Sadece istenilen sütündaki verileri gösterir.

SELECT Tcno, isim, soyisim, maas FROM Personel

--Bölüm tablosundaki tüm verileri listeler

SELECT * FROM Bolum

--Sıralama (Alfabetik veya rakamsal sıralama)

SELECT * FROM Personel ORDER BY Maas ASC --DESC

--Önce isme sonra aynı isimde olanları soyisime göre sıralar.

SELECT isim, soyisim FROM Personel ORDER BY isim DESC , soyisim DESC

 --Koşullu sorgu için WHERE anahtar kelimesi kullanılır.

--Maaşı binlira olanları getirir.

SELECT * FROM Personel WHERE Maas=1000

--Maaşı 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<500 AND isim='kadir'

--İsminde ğ harfi olanlar

SELECT * FROM Personel WHERE isim LIKE '%ğ%'

--İsmi k ile başlayanlar

SELECT * FROM Personel WHERE isim LIKE 'k%'

--İsmi r ile bitenler 

SELECT * FROM Personel WHERE isim LIKE '%r'

--İkinci karakteri ‘h’ ve beşinci karakteri ‘t’  olan kayıtları getirir.

SELECT * FROM Personel WHERE isim LIKE '_h__t'

--BAŞ HARFİ A VEYA K OLANLARI GETİRİR 

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 soyisim LIKE '[s-z]%' AND soyisim LIKE '%a'

--Takma sütun adı as'le verilir. Birden fazla kelime içeriyorsa tırnak arasına yazılmalı

SELECT isim AS Adlar, Maas AS 'Maaşlar Geliri' FROM Personel 

--Sütunları birleştirir.

SELECT isim + '  ' + soyisim AS AdSoyad FROM Personel

--Soy ismi boş olanları getirir.

SELECT * FROM Personel WHERE soyisim IS NULL

--Doğum tarihi boş olanları göstermesin

SELECT * FROM Personel WHERE DogumTarihi IS NOT NULL --and soyisim 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 TcNo DESC

--Kayıtların %50sini ve soyadı ayan'dan farklı olanları getirir.

SELECT TOP 50 PERCENT  * FROM Personel WHERE Soyisim <> 'Barlık' ORDER BY TcNo 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 PersonelWHERE 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 WHERE isim='Ahmet'

--İlk 3 harfi kad olan tüm verileri getirir.

SELECT * FROM Personel WHERE LEFT(isim,3)='kad'

--Soyisminin son harfi y olanları getirir.

SELECT * FROM Personel WHERE RİGHT(soyisim,1)='y'


/*Sistem Tanımlı Fonksiyonlar ile İşlemler*/


--Herhangi bir sütundaki veri sayısını getirir.

SELECT COUNT(TcNo) FROM Personel

--NULL olanları saymaz

SELECT COUNT(DogumTarihi) FROM Personel

--Toplam sayıyı getirir.

SELECT COUNT(*) FROM Personel WHERE isim<>'Uğur'

--Toplam Maaşı Getirir.

SELECT SUM(Maas) FROM Personel WHERE maas BETWEEN 1000 AND 2000

--Ortalama Maaşı getirir.

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

--4tane 'a' yeni 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 TcNo,İsim, Len(isim) AS 'İsim Uzunluğu' ,soyisim, Len(soyisim) AS 'Soyisim Uzunluğu' FROM Personel

--Eğer cast edilmezse iki farklı tür birleştirilemez

--cast değişken tülerini değiştirmek için kullanılır.

SELECT CAST(Tcno as varchar) + '  ' + isim AS 'Olcakmi' FROM Personel

--Yazı tipindeki verileri bölme. 2.parametre 

--başlangıç harfinin sırası

--3.parametre kaç harf göstericeğini sorar.

SELECT SUBSTRİNG(isim,1,1) FROM Personel

--Soyisimlerin başındaki boşluklar silinir.

SELECT LTRİM(soyisim) FROM Personel

--Soyismin sonundaki boşlukları siler.

SELECT RTRİM(soyisim) FROM Personel

/*Gruplama İşlemleri*/

--Kesinlikle kullanılmaz yanlış bir ifadedir.

SELECT Adi,Soyadi FROM Personel GROUP BY BolumNo

--having group by ile kullanılır.

--yani grouplama işleminden sonra da bir koşul konulacaksa 

--having kullanılır.

SELECT BolumNo, COUNT(*) AS 'Çalışan Sayısı',

SUM(Maas) AS 'Toplam Maaş' --,AVG(Maas) AS 'Ortalama Maaş'

FROM Personel

WHERE Maas<2500

GROUP BY BolumNo 

HAVİNG BolumNo IN(1,2,5)  -- AVG(Maas)>1000

ORDER BY AVG(Maas) ASC