Temel SQL Sorguları

Programlama dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
velociraptor
Yottabyte3
Yottabyte3
Mesajlar: 28498
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek

Temel SQL Sorguları

Mesaj gönderen velociraptor » 08 Eki 2012, 12:22

--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 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
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

Özgür ÇAKMAK
Knowledge determines destiny, And ye shall know the Truth and the Truth shall make you free



Cevapla