SQL Komutları,SQL Örnekleri

Tablodaki Verileri Sıralama – ORDER BY :

Verileri Sıralı olarak almak için ORDER BY ifadesi kullanılır. Bu ifadeden sonra sıralamanın hangi alana göre yapılacağı yazılır ve sıralamanın artan mı yoksa azalan mı olduğunu belirlemek için ASC ve DESC ifadeleri kullanılır. A dan Z ye doğru sıralamak için ASC kullanılır.

SELECT alanlar FROM tablo_adi ORDER BY alan_adi ASC

Z den A’ya doğru sıralama için DESC kullanılır.

SELECT alanlar FROM tablo_adi ORDER BY alan_adi DESC

Sıralama biçimi belirtilmezse  A’dan Z’ye sıralama yapılır.

Sıralama işleminde birden fazla alana göre de sıralama yapılabilir. Örneğin önce soyada sonra ada ve unvan alanına göre sıralama yapalım.

SELECT soyad,ad,unvan FROM personel  ORDER BY soyad,ad,unvan

Burada birinci ölçü soyad alanıdır. Soyad alan içerikleri aynı olduğunda Ad alanı, o da aynı olduğunda unvan alanına göre sıralanır.

Birden fazla alana göre sıralama yaparken bütün alanlar artan ya da azalan sırada olmak zorunda değildir. Örneğin soyad alanına göre artan sıralama yaparken Ad alanına göre azalan sıralama yapılabilir.

SELECT soyad,ad FROM personel ORDER BY soyad ASC, ad DESC

Burada birinci ölçü soyad alanıdır ve artan sırada istenmiştir.Soyad aynı olduğunda Ad alanına göre azalan sıralama yapılır.

WHERE ile Veri Filtreleme :

Tabloda bulunan verileri istediğimiz belli şartlara bağlı olarak listeleyebiliriz. Bu şartları oluşturmak için WHERE kullanılır.

SELECT alanlar FROM tablo_adi WHERE şart_ifadesi

Örneğin Başlık alanında “Satış Danışmanı” yazan kayıtları listelemek için sorgu cümlemiz şu şekilde olacaktır.

SELECT * FROM personel WHERE başlık=”Satış Danışmanı”

Örnek 2:Görevi yonetici olan ve gorev suresi 25 yıldan fazla olan personel soyad,ad, görevsüresini Adına göre artan şekilde listeleyen SQL sorgusunu yazınız.

SELECT soyad,ad,gorevsuresi FROM personel WHERE gorev=”Yonetici” AND gorevsuresi>25 ORDER BY ad ASC

Şartlı Sorgulama Operatörleri:

Şart ifadesi olarak kullanabileceğimiz operatörler şunlardır.

Operatör Anlamı
Küçük
Büyük
<= Küçük eşit
>= Büyük Eşit
= Eşit
<>  Eşit Değil
And Ve anlamındadır. İki şartın sağlanmasıİçin kullanılır.
Or Veya anlamındadır.Sadece bir şartın sağlanması durumunda kullanılır.
Not Şartın olumsuz olması durumunda(olmaması) kullanılır.
Between x AND y X ve y değerleri arasındaki değerler için kullanılır.
LIKE Bir alanın başlangıç, bitiş ya da orta kısımlarını süzer.
NOT LIKE LIKE ile verilen şartın dışındakileri süzer
IN Parantez içindeki değerleri süzer
NOT IN Parantez içinde verilen değerlerin dışındakileri süzer.
!= Eşit Değil

 

Örneğin doğum tarihi 1.1.1960 dan küçük olanları listelemek için sorgu cümlemiz şöyle düzenlenmelidir.

SELECT * FROM uyeler WHERE dogumtarihi<#1/1/1960#

Şartlarımızı yazarken AND, OR, NOT gibi mantıksal ifadeleri kullanarak birden fazla şartı da verebiliriz.

Örneğin doğum tarihi 1.1.1960 dan büyük ve bölümü Dahiliye olanları listelemek için SQL cümlemiz :

SELECT * FROM uyeler WHERE dogumtarihi>#1/1/1960# AND bolum=”Dahiliye”

BETWEEN kullanımı:

İki aralık belirtirken bu şartı between deyimi ile de kullanabiliriz.

Örneğin 1.1.2012 ile 1.2.2012 tarihleri arasında satılan ürünleri listelemek için sorgumuz :

SELECT * FROM satışlar WHERE satıstarihi BETWEEN #1/1/2012# AND #1/2/2012#

IN Kullanımı :

Birden fazla şartı belirtirken IN deyimini de kullanabiliriz. Örneğin bolum içerisinde ‘Elektrik’,’Bilişim’,’Makine’ olanları bulmak için  SQL cümlemiz:

SELECT * FROM ogrenciler WHERE bolum IN (‘Elektrik’,’Bilişim’,’Makine’)

Aynı sorguyu OR kullanarak da yazabiliriz.

SELECT * FROM ogrenciler WHERE bolum=’Bilişim’ OR bolum=’Elektrik’ OR bolum =’Makine’

NOT IN Kullanımı:

IN parantezinde verilen değerlerin dışındaki değerleri içeren kayıtları listeler.

Örneğin bolum içerisinde ‘Elektrik’,’Bilişim’,’Makine’ olmayanları bulmak için  SQL cümlemiz:

SELECT * FROM ogrenciler WHERE bolum NOT IN (‘Elektrik’,’Bilişim’,’Makine’)

LIKE Kullanımı:

Benzer kayıtları listelemek için LIKE deyimi kullanılır. LIKE operatörü yardımcı karakterler ile kullanılarak daha geniş bir sorgu imkanı sağlar.

Yardımcı Karakter Kullanım Biçimi Açıklama
% %van Birden fazla karakterleri temsil eder.Tatvan,Elvan,Tavan,Kavan Gibi
  Van% Vanlı, Vanilya gibi
  %van% İlvan,Tatvan,Karavana gibi
z-p Tek karakterleri temsil eder.Zip,Zap,Zep gibi…
[  ] Ahmet [p k ]ara Köşeli parantez içindeki tek karakteri temsil eder. Ahmet Para ya da Ahmet Kara gibi sonuçları listeler.
[ ^ ] %p[ ^a ]% Köşeli parantez içinde yazılan karakterleri içermeyen sonuçları listeler.Burada P den sonra a karakteri kesinlikle yer almayan kelimeleri listeleyecektir.
[ – ] [a-d]% Bir aralıktaki karakterlerle başlayan sonuçları listeleyecektir. Burada a,b,c,d ile başlayan kelimeler listelenecektir.
# N1## Sayısal olan tek karakterleri simgeler. Burada N100 ya da N124 gibi sonuçlar bulunacaktır. N10 ya da N1000 gibi sonuçlar bulunmayacaktır.

 

Örnek : Bir Harf ile başlayan kayıtları sorgulama

Örneğin soyadı D harfi ile başlayan kayıtları listelemek için SQL cümlesi:

SELECT * FROM ogrenciler WHERE soyad LIKE ‘D%’

Burada LIKE ‘%D’ şeklinde kullanılırsa sonu D harfi ile bitenler listelenir.

LIKE %D% şeklinde kullanılırsa içinde D harfi geçenler listelenir.

Örneğin Adı alanında içerisinde ‘an’ harfi geçmeyen kayıtların ad ve soyad bilgilerini Adına göre artan şekilde listelemek için

SELECT ad,soyad FROM ogrenciler WHERE ad NOT LIKE ‘%an%’ ORDER BY ad ASC

Örneğin Soyad alanı içinde b,c,d,e,f ile başlayan kişilerin soyad ve ad bilgilerini listeleyen SQL sorgusu:

SELECT soyad,ad FROM ogrenciler WHERE soyad LIKE ‘[b-f]%’

NULL DEĞERLER

Boş kayıtları bulmak için IS NULL ifadesi şart olarak kullanılır. Örneğin soyadı girilmeyen kayıtların tüm bilgilerini listelemek için

SELECT * FROM ogrenciler WHERE soyad IS NULL

IS NOT NULL

Boş olmayan kayıtları listelemek için IS NOT NULL kullanılır. Örneğin soyad alanı boş olmayan kayıtları listelemek için

SELECT * FROM ogrenciler WHERE soyad IS NOT NULL

Örnek 1: Personel veritabanında uyeler tablosundan Doğum tarihi 1 Ocak 1980 ile 1 Ocak 1995 tarihleri arasında olan personelin adsoyad,bolum ve maaş bilgilerini maaşına göre artan şekilde sıralayan SQL cümlesi:

SELECT adsoyad,bolum,maas

FROM uyeler WHERE dogumtarihi BETWEEN #01/01/1980# AND #01/01/1995# ORDER BY maas ASC;

Örnek 2: Uyeler tablosundan maası 2500 den fazla ve 3000 den az olan personel adsoyad,bölüm,maaş bilgilerini Adsoyadına tekrarsız maaşına göre azalan şekilde listeleyen SQL sorgusu

SELECT adsoyad,bolum,maas DISTINCT adsoyad

FROM uyeler

WHERE maas BETWEEN 2500 AND 3000 ORDER BY maas DESC

Örnek 3:uyeler tablosundan bütün kişileri adsoyad alanına göre artan maaşına göre azalan şekilde listeleyen SqL Sorgusu

SELECT *

FROM uyeler

ORDER BY adsoyad ASC, maas DESC;

Örnek 4:uyeler tablosundan bütün kişileri maaşına göre azalan ve adsoyad alanına göre artan şekilde listeleyen SQL Sorgusu

SELECT *

FROM uyeler

ORDER BY maas DESC , adsoyad ASC;

Örnek5: Adres alanı  içinde Çumra Kelimesi geçen kayıtların adsoyad ve adresini listeleyen SQL sorgusu

SELECT adsoyad,adres

FROM uyeler WHERE adres LIKE ‘*Çumra*’

Örnek 6 : Adresi Çumra olmayan kayıtları adsoyad alanına göre artan şekilde listeleyen SQL Sorgusu

1.Yöntem:

SELECT *

FROM uyeler

WHERE adres <>’Çumra’

2.Yöntem:

SELECT *

FROM uyeler

WHERE adres NOT LIKE ‘Çumra’

Örnek 7: Adresi içerisinde Çumra kelimesi geçmeyen veya maaşı 5000 ile 3000 arasında olan kişileri adsoyad, adres ve maaş bilgilerini maaşına göre artan şekilde listeleyen SQL sorgusu

SELECT adsoyad,adres,maas

FROM uyeler

WHERE adres NOT LIKE ‘*Çumra*’ OR maas BETWEEN ‘5000’ AND ‘3000’ ORDER BY maas ASC;

İSTATİSTİKSEL İŞLEMLER YAPMA:

Veritabanındaki bir alanda bulunan verilerin toplamını, ortalamasını, en büyük değeri veya en küçük değeri bulmak için istatistik amaçlı olarak kullanılan max, min, count, sum ve avg gibi fonksiyonlar kullanılır. Bu fonksiyonlar genellikle Group By cümlesi ile kullanılır.

MAX :

Max alandaki en büyük değeri verir. Örneğin Ürünler tablosunda fiyatı en yüksek olan ürünü bulan SQL sorgusu:

SELECT MAX(fiyat) AS enyuksekfiyat FROM urunler

Aynı ifadeyi şartlı olarak da yazabiliriz.

SELECT MAX(fiyat) AS enyuksekfiyat FROM urunler WHERE kategori=Anakart

MİN:

Min Alandaki en düşük değeri verir.

Örneğin SELECT MIN(fiyat) AS endusukfiyat FROM urunler

Veya

SELECT MIN(fiyat) AS endusukfiyat FROM urunler WHERE kategori=Anakart

Gibi.

AVG:

AVG bir sütundaki değerlerin ortalamasını verir.

Örneğin ürünler tablosundaki ürünlerin fiyat ortalamasını veren SQL sorgusu

SELECT AVG(fiyat) AS ortalamafiyat FROM urunler

Ya da

SELECT AVG(fiyat) AS anakartortalamafiyat FROM urunler WHERE kategori=Anakart

SUM:

SUM bir alandaki değerlerin toplamını verir. Örneğin Ürünler tablosundaki ürünlerin fiyatlarının toplamını veren SQL Sorgusu

SELECT SUM(fiyat) AS toplamfiyat FROM urunler WHERE kategori=’Anakart’

COUNT:

Count bir tablodaki kayıt sayısını listeler. Örneğin ürünler tablosundaki kayıt sayısı aşağıdaki gibi olacaktır.

SELECT COUNT(*) AS kayitsayisi FROM urunler

Örneğin fiyatı 20 TL den büyük olan ürünlerin sayısını aşağıdaki gibi bulabiliriz.

SELECT COUNT(*) AS kayitsayisi FROM urunler WHERE fiyat>20

Hangi Şehirde Kaç Kişi Yaşıyor?

Bir şehirde kaç kişinin yaşadığını bulmak için aşağıdaki gibi bir sorgu kullanabiliriz.

SELECT adres, COUNT(*) AS kisi FROM uyeler GROUP BY adres  

Örnekler

Örnek 1:Uyeler Maaşı en yüksek olan kişinin maaşını bulan SQL Sorgusu

SELECT MAX(maas) AS enyuksekmaas FROM uyeler

Örnek 2: Bölümü KBB olan kişilerden maaşı en yüksek olan kişinin maaşını listeleyen SQL Sorgusu

SELECT MAX(maas) AS enyuksekmaas FROM uyeler WHERE bolum=’KBB’

Örnek 3: Bölümü Göz olan kişilerden maaşı en düşük olan kişinin maaşını listeleyen SQL Sorgusu

SELECT MIN(maas) AS endusukmaas FROM uyeler WHERE bolum=’Göz’

Örnek 4: Uyeler tablosundaki maaşların ortalamasını veren SQL Sorgusu

SELECT AVG(maas) AS ortmaas

FROM uyeler;

Örnek 5: Bölümü ‘Dahiliye’,’Ortopedi’veya ‘Kardiyoloji’ olmayan kişilerin maaşlarının toplamını veren SQL Sorgusu

SELECT SUM(maas) AS toplammaas

FROM uyeler WHERE bolum NOT IN (‘DAhiliye’,’Ortopedi’,’Kardiyoloji’);

Örnek 6 : Adres alanı içerisinde ÇUMRA kelimesi geçenlerin sayısını veren SQL sorgusu

SELECT COUNT(*) AS kisi FROM uyeler WHERE adres LIKE ‘*Çumra*’

Örnek 7 : Adresi  ÇUMRA olan kişilerin sayısını veren SQL sorgusu

SELECT  COUNT(*) AS kisi

FROM uyeler WHERE adres=’Çumra’;

Verileri Gruplandırma – GROUP BY

GROUP BY deyimi ile verileri belirli alanlara göre gruplandırabiliriz.

SELECT alanlar FROM Tablo_adi WHERE şart_ifadesi GROUP BY alan_adi

Örneğin Ürünler tablosundaki ürünlerin toplam fiyatlarını Ürün_id sutünuna göre aşağıdaki gibi gruplandırabiliriz.

SELECT ürün_id, SUM(urunfiyati)  AS toplamfiyat FROM urunler GROUP BY urun_id

Örnek : Personel tablosundaki kişilerin bölümlerine gruplandırılmış bir şekilde göre toplam maaşlarını bulan SQL sorgusu:

SELECT bolum, SUM(maas) AS toplammaas FROM personel GRUP BY bolum

Örnek: 3 Mayıs 2012 tarihinde yapılan satışların ürün kategorisine göre gruplandırılmış bir şekilde elde edilen para miktarını veren SQL sorgusu

SELECT urunkategori, SUM(fiyat) AS toplamfiyat FROM satışlar WHERE tarih=’03/05/2012’ GROUP BY urunkategori

Örnek: Nisan ayında yapılan satışlardan ürün kategorisine göre gruplandırılmış bir şekilde elde edilen para miktarını veren SQL sorgusu

SELECT urunkategori, SUM(fiyat) AS toplamfiyat FROM satışlar WHERE tarih BETWEEN #01/04/2012# AND #31/04/2012# GROUP BY urunkategori

HAVING KULLANIMI:

Grup içinden sadece belirli şartlara sahip elemanları seçmek için kullanılır. Örneğin fiyat toplamı 100 TL yi geçen ürünlerin listesini ürün kategorisi sütununa göre aşağıdaki gibi gruplandırabiliriz.

SELECT  ürün_id, SUM(fiyat) AS toplamfiyat FROM urunler GROUP BY ürün_id HAVING SUM(fiyat)>100

Örnek: Maaşları toplamı 6000 TL yi geçen kişilerin bölümlerini ve maaşları toplamını bölümlerine göre gruplandırarak listeleyen SQL sorgusu:

SELECT bolum, SUM(maas) AS toplammaas

FROM uyeler GROUP BY bolum  HAVING SUM(maas)>=6000;

Örnek:  Üyeler tablosundan aynı şehirde oturan kişi sayısının 3 ten büyük olanların sayıları ve şehir isimlerini listeleyen SQL sorgusu.

SELECT şehir,COUNT(*) AS kişi FROM üyeler GROUP BY şehir HAVING COUNT(*)>3

ALANLAR ÜZERİNDE İŞLEM YAPMA:

Veritabanında gerçekte bulunmayan alanları diğer alanlar üzerinde işlem yaparak oluşturabiliriz. Örneğin Günlük_Satışlar tablosunda FIYAT ve ADEDİ alanları olsun ama TUTUAR alanı bulunmasın. TUTAR alanı FIYAT ile ADEDİ çarpımından oluşacağı için bu işlemi yaparak şöyle bir sütun oluşturabiliriz.

SELECT adısoyadı, aldığıürün,adedi,fiyatı,(adedi*fiyatı) AS tutarı FROM Günlük_Satışlar

Buradaki  (adedi*fiyatı) AS tutarı ifadesi fiyat ve adedi alanlarının çarpılarak Tutarı isimli alanda gösterileceğini belirtir. Bu işlem sonucunda tabloya Tutarı alanı eklenmez. Sadece ekranda bir sütun olarak listelenir.

Böylece tabloda olmayan ama kullanıcıya göstermek istediğimiz bilgileri hesap yoluyla oluşturabiliriz. Diğer alanlar üzerinde işlem yapılarak oluşturulabilecek alanları fazla yer kaplamaması için veritabanına yazmak istemiyorsanız bu yöntemi kullanarak işlemler oluşturabiliriz.

Aynı örneği geliştirerek tablomuzda olmamasına rağmen KDV ve TOPLAM_TUTAR alanlarını da oluşturabiliriz.

SELECT adısoyadı, adlığıürün,adedi,fiyatı, (adedi*f

yatı) AS TUTARI, (adedi*fiyatı*0.18) AS KDV, (adedi*

fiyatı*1.18) AS TOPLAM_TUTARI FROM Günlük_Satışlar

26.969 defa okundu.

10 Responses to SQL Komutları,SQL Örnekleri

  1. Ahmet Kurt dedi ki:

    S.a
    Bende bi Database Var.
    Tablo = Musterıler
    Kolonlar = Ad,Soyad,MusterıNo

    Kardeş benim yapmak istedigim şey, Musterıler Tablosundakı bi müşteride AD-SOYAD-MUSTERIno ları aynı olanları listelemek ıstıyorum. ama birtürlü yapamadım bi yardım edermisin nasıl yapabılırım :S

    Örnek =

    Adı = 57 Soyadı = 57 Musterı_No =57.

    ben bu şekilde olanları listelemek istiyorum bi yardım ederseniz sevinirim :S

    • admin dedi ki:

      SELECT * FROM musteriler WHERE Ad = Soyad AND Soyad = Musteri_No

      Burada soya ve müşteri no alan türleri farklı olduğu için bir dünüşüm yaparak karşılaştırmak gerekiyor. SQL dönüşüm komutlarını araştırmak lazım.

      Örnek olarak şöyle birşey olacak:

      SELECT * FROM musteriler WHERE Ad = Soyad AND Soyad = STRINGE_CEVIR(Musteri_No)

  2. DUYGU dedi ki:

    Teşekkürler, çok güzel anlatmışsınız.

  3. furkan selçuk dedi ki:

    allah razı olsun hocam 😉 🙂

  4. Kristoferrrrr ::::S dedi ki:

    arkadaşım bende LIKE kullanıcam mesela personel tablosunda Baş farfi F ile baslıyanları listelemek istiyorum yardımcı olur musun

  5. tugrul dedi ki:

    Hangi Şehirde Kaç Kişi Yaşıyor?

    sorgunuz hayatımı kurtardı… yoksa hayatta yapamazdım 😀

    çok teşekkürler…

  6. Serkan dedi ki:

    Form1 yüklendiğinde datagridwiev1 verileri çekerken progressbarda göstersin istiyorum.Bir türlü yapamadım yardımcı olur musunuz? Örneğin telefon rehberini açtık telefondan kişileri yüklerken küçük bir daire dönüyor.Sonra kişiler yüklenince’de daire ortadan kayboluyor.Bunun progressbar şeklinde veya resim şeklinde olanını nasıl yaparım?

    • Kadir GÜRBÜZ dedi ki:

      Merhaba Serkan;
      Bunu yapabilmen için bir timer’e ihtiyaç vardır. çünkü veriler aniden çekilmektedir bundan dolayı progressbarı istediğin kadar ekle veriler aniden gelir ve progressbar’dan bağımsız olurlar eğerki bir progressbar ile datagridview’i bağlarsan sorun çözülecektir. Yani istediğini yapmış olusun. Form’a bir timer ve progressbar ekle ve timer’in tick olayına gel progressbarın increment değerini ver ve if-else ile hallet eğerki progressbar dolduysa yani value=100 ise timeri durdursun ve listeleme yapsın eğerki değilse birşey yapmassın gibi… Şimdiden KOLAY GELSİN. kardeşim.

  7. Fuat dedi ki:

    Iyi gunler hocam urunler tablosunda kategory degeri apartman olan ve 200 ile 500 tl arasindaki verilerin tum bilgilerini getiren sql kodu cok acil lazim mail adresime yada burada iletirseniz cok sevinirim

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Powered by WordPress | Designed by: credit repair | Thanks to st louis web design, essay writing and fire glass
c# örnekleri , csharp örnekleri , c# örnek , C# Örnekleri , örnekleri c# , C# ÖRNEKLERİ
BTT Sınavları

C# Uygulamaları

Müdür Yardımcılığı Sınavına Hazırlık Sayfası

Müdür Yardımcılığı Çalışma Notları

C# Uygulamaları

Yazılı Soruları Php Dersleri Bilişim Teknolojileri Alanı Yazılı Soruları C# Dersleri C# Örnekleri