25 Ekim 2012 Perşembe

Temel SQL Sorguları


Select İşlemleri

--Personel tablosundaki tüm listeyi getirir

SELECT * FROM Personel

--Sadece istenilen sütündaki 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ı soyisime 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şı binlira 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Ş 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 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 RİGHT(Soyad,1)='y'

Sistem Tanımlı Fonksiyonlar ile İşlemler
--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.
SELECT COUNT(*) FROM Personel
WHERE isim<>'Mehmet'

--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 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ülerini 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östericeğini sorar.

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

--Soyisimlerin başındaki boşluklar silinir.
SELECT LTRİM(Soyad) FROM Personel

--Soyismin sonundaki boşlukları siler.
SELECT RTRİM(Soyad) FROM Personel

Gruplama İşlemleri
--Kesinlikle kullanılmaz yanlış bir ifadedir.
SELECT Ad,Soyad 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.

SELECT BolumNo, COUNT(*) AS 'Çalışan Sayısı',
SUM(Maas) AS 'Toplam Maaş' --,AVG(Maas) AS 'Ortalama Maaş'
FROM Personel
WHERE Maas1000
ORDER BY AVG(Maas) ASC

Hiç yorum yok:

Yorum Gönder