Tasarım ve Yazılım

SQL Sorguları ve SQL Sorgu Örnekleri (100+ Adet)

Sql Sorgu Komutları açıklamaları ve SQL Örnekleri ile bu sorgular kullanılarak hazırlanmış örnek çalışma soruları ve cevapları.

musterinoadsoyaddtarihsehircinsiyetpuan
1AhmetCansever1956-02-19 00:00:00.000İstanbulE64
2MehmetAydın1976-02-19 00:00:00.000SamsunE55
3AliyeSeven1966-06-10 00:00:00.000KonyaK45
4BurakSayın1996-02-19 00:00:00.000İstanbulE23
5BeyzaKılıç1955-12-30 00:00:00.000ManisaK85

SQL SELECT 

musteri tablosunda bulunan ad, soyad sütunlarını listelemek için;

1 Select ad,soyad FROM musteri 

musteri tablosunda bulunan tüm kayıtları listelemek için;

1 Select *From musteri 

SQL SELECT DISTINCT

Bir tabloda bir sütun yinelenen değerleri içerebilir. Distinct ile farklı değerleri listeleyebiliriz.

1 SELECT DISTINCT sehir FROM musteri; 

SQL WHERE

Where anahtar sözcüğü ile sadece belirlenen kurala uygun olan kayıtların listelenmesini sağlayabiliriz.

Örneğin musteri tablosunda sehir sütunu İstanbul olan kayıtları listelemek için;

1 SELECT * FROM musteri WHERE sehir=’istanbul’ 

yada cinsiyet “K” olan kayıtları listelemek için;

1 SELECT * FROM musteri WHERE cinsiyet=’K’ 

Where ile kullanabileceğimiz operatörler;

OperatorAçıklama
=Eşit
<>EşitDeğil. Note: Bazı versiyonlarda “!=” kullanılabilir.
>Büyüktür
<Küçüktür.
>=Büyük Eşit
<=Küçük Eşit
BETWEENarasında
LIKEÖrüntü arama
INBir sütun için birden çok olası değerleri belirtmek için

SQL AND – OR Kullanımı

AND Operatörü 1. Koşul ve 2. Koşulun doğru olması durumunda çalışır.

Örneğin musteri tablosunda  Cinsiyeti “E” ve Şehri “İstanbul” olanları listelemek için;

1 SELECT * FROM musteriWHERE sehir=’İstanbul’AND cinsiyet=’E’ 

OR operatörü 1. Koşul yada 2. Koşulun doğru olması durumunda çalışır.

Örneğin musteri tablosunda şehri İstanbul yada Samsun olanları listelemek için;

1 SELECT * FROM musteriWHERE sehir=’İstanbul’OR sehir=’Samsun’ 

AND ve OR operatörü birliktede kullanılabilir.

Örnek olarak musteri tablosunda cinsiyeti ‘K’ olan ve Şehri “Konya” yada “Manisa” olanları listelemek için.

1 SELECT * FROM musteriWHERE cinsiyet=’K’AND (City=’Konya’ OR City=’Manisa’) 

SQL ORDER BY Kullanımı

ORDER BY, varsayılan olarak artan düzende kayıtları sıralar. Azalan kayıtları sıralamak için DESC anahtar sözcüğünü kullanabilirsiniz.

Örnek olarak musteri tablosundaki kayıtları ad sütünuna göre artan ve azan olarak sıralayalım.

1 SELECT * FROM musteriORDER BY ad  

Azalan sıralama örneği;

1 SELECT * FROM musteriORDER BY ad DESC 

INSERT INTO Kullanımı

Kayıt eklemek için kullanılır.

örnek olarak musteri tablosuna bir kayıt ekleyelim.

1 INSERT INTO musteri(ad, soyad, dtarih, sehir, cinsiyet, puan)VALUES (‘Ali’,’Şahin’,’2000-10-12′,’Burdur’,’E’,68) 

SQL UPDATE kullanımı

Kayıtlar üzerinde değişiklik güncelleme yapmak için kullanılır.

Örnek olarak musterino su 3 olan kaydın puanını 90 olarak değiştirelim.

1 UPDATE musterilerSET puan=90 WHERE musterino=3 

SQL DELETE Kullanımı

Tablodan kayıt silmek için kullanılır.

Örnek olarak musterino su 4 olan kaydı silmek için

1 DELETE FROM musterilerWHERE musterino=4 

musteriler tablosundaki tüm kayıtları silmek için

1 DELETE * FROM musteriler 

SQL SELECT TOP Kullanımı

Belirtilen sayıda kaydı görüntülemek için kullanılır.
örnek olarak musteriler tablosundaki ilk 5 kaydı listeleylim.

123 SELECT TOP 5 * FROM musteriler 

SQL LIKE Kullanımı

Belirtilen bir değeri aramak için kullanılır.
Örnek olarak musteriler tablosunda şehri S ile başlayan kayıtları listeleyelim.

1 SELECT * FROM musterilerWHERE sehir LIKE ‘s%’ 

Şehri s ile biten kayıtları listelemek için;

1 SELECT * FROM musterilerWHERE sehir LIKE ‘%s’ 

Şehrin içerisinde “tan” bulunan kayıtları listelemek için;

1234 SELECT * FROM musterilerWHERE sehir LIKE ‘%tan%’ 

SQL YER TUTUCU KARAKTERLER

musteriler tablosunda adı “al” ile başlayan kayıtları listelemek için;

1 SELECT * FROM musterilerWHERE AD LIKE ‘al%’ 

musteriler tablosunda adı “al” ile biten kayıtları listelemek için;

1 SELECT * FROM musterilerWHERE AD LIKE ‘%al’ 

musteriler tablosunda ismi A ile başlayıp ondan sonraki 2 karakteri herhangi bir harf olan ve e ile devam eden ve ondan sonraki harfi belli olmayan kayıtları listeleyelim.(Adı Ahmet olanları listeleyeceğiz. :))

1 SELECT * FROM musterilerWHERE ad LIKE ‘A _ _ e _’ 

Adı a ile b ile yada s ile başlayan kayıtları listeleyelim.

1 SELECT * FROM musterilerWHERE adLIKE ‘[abs]%’ 

şimdide tam tersi a ile b ile yada s ile başlamayan kayıtları listeleyelim.

1 SELECT * FROM musterilerWHERE adLIKE ‘[!abs]%’ 

SQL IN Kullanımı

IN operatörü, WHERE yan tümcesinde birden fazla değer belirlemenizi sağlar.
Örnek olarak şehri İstanbul ve Konya olan kayıtları listeleyelim.

1 SELECT * FROM musterilerWHERE sehir IN (‘İstanbul’,’Konya’) 

SQL BETWEEN KULLANIMI

Between operatörü belirli kriterler arasındaki kayıtları listelemek için kullanılır. Sayı metin yada tarih aralığı verilebilir.

Örnek olarak musteriler tablosunda puanı 70 ile 90 arasında olan kayıtları listeleyelim.

1 SELECT * FROM musterilerWHERE puanNOT BETWEEN 70 AND 90 

Doğum tarihi 01/01/1996 ile 01/01/2006 arasındaki kişileri listelemek için;

1 SELECT * FROM musterilerWHERE dtarih BETWEEN ’01/01/1996′ AND ’01/01/2006′ 

musteriler tablosunda adı C ve E arasında olan kayıtları listeleyelim.

1 SELECT * FROM musterilerWHERE ad  BETWEEN ‘C’ AND ‘E’ 

SQL ALIASES Kullanımı

SQL tablosunda yer alan sütunlara geçici bir ad vermek için kullanılır.

1 SELECT ad AS ADI, soyad AS SOYADI,dtarih AS [DOĞUM TARİHİ]FROM musteriler 

SQL JOIN Kullanımı

Orders ve Customers tablolarını kullanarak oluşturulan örneği inceleyelim.

OrderIDCustomerIDOrderDate
1030821996-09-18
10309371996-09-19
10310771996-09-20

CustomerIDCustomerNameContactNameCountry
1Alfreds FutterkisteMaria AndersGermany
2Ana Trujillo Emparedados y heladosAna TrujilloMexico
3Antonio Moreno TaqueríaAntonio MorenoMexico
1 SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDateFROM OrdersINNER JOIN CustomersON Orders.CustomerID=Customers.CustomerID; 

Sorgumuzu çalıştırdığımızda

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados9/18/1996
10365Antonio Moreno Taquería11/27/1996
10383Around the Horn12/16/1996
10355Around the Horn11/15/1996
10278Berglunds snabbköp8/12/1996

SQL LEFT JOIN Kullanımı

1 SELECT Customers.CustomerName, Orders.OrderIDFROM CustomersLEFT JOIN OrdersON Customers.CustomerID=Orders.CustomerIDORDER BY Customers.CustomerName 

SQL RIGHT JOIN Kullanımı

1 SELECT Orders.OrderID, Employees.FirstNameFROM OrdersRIGHT JOIN EmployeesON Orders.EmployeeID=Employees.EmployeeIDORDER BY Orders.OrderID 

SQL SELECT INTO Kullanımı

SELECT INTO deyimi bir tablodan veri seçer ve yeni bir tabloya ekler.

örnek olarak musteriler tablosunun musterilerbackup isimli yedeğini oluşturabiliriz.

1 SELECT *INTO musterilerbackupFROM musteriler 

Sadece şehri “İstanbul” olan kayıtları eklemek için;

1 SELECT *INTO musterilerbackupFROM musterilerWHERE sehir=’İstanbul’ 

SQL CREATE Kullanımı

Yeni bir database oluşturmak için;

1 SQL CREATE DATABASE dbname 

SQL CREATE TABLE Kullanımı

Yeni tablo oluşturmak için kullanılır.

1 CREATE TABLE musteriler(id int,ad varchar(255),soyad varchar(255),adres varchar(255),sehir varchar(255)); 

SQL AVG  Kullanımı

AVG () işlevi sayısal bir sütunun ortalama değerini döndürür.

Örnek olarak musteriler tablosunda puan ortalamasını bulalım.

1 SELECT AVG(puan) FROM musteriler 

Aşağıdaki sorguda ise musteriler tablosunda puanı, puan ortalamasının üstünde yer alan kayıtlara ait ad ve soyad verileri listelenmektedir.

1 SELECT ad, soyad FROM musterilerWHERE puan&gt;(SELECT AVG(puan) FROM musteriler); 

SQL COUNT Kullanımı

COUNT () işlevi, belirtilen ölçütlerle eşleşen satır sayısını döndürür.

Örnek olarak musteriler tablosundaki toplam kayıt sayısını bulalım.

1 SELECT COUNT(*) FROM musteriler; 

Şimdide musteriler tablosunda kaç farklı şehir olduğunu bulalım.

1 SELECT COUNT(DISTINCT sehir) FROM musteriler; 

Şimdi de Şubat ayında doğan Müşterileri sayısını bulalım.

1 SELECT COUNT (*) FROM musteriler  WHERE MONTH(dtarih)=2 

Aşağıdaki SQL Deyimi ise “Orders” tablosundan “CustomerID” = 7 ye ait siparişlerin sayısını bulur.

1 SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM OrdersWHERE CustomerID=7 

SQL ROUND Kullanımı

Ondalıklı sayıyı yuvarlamak için kullanılır.

1 SELECT urunadi, ROUND(fiyat,0) AS YuvarlanmisFiyatFROM urunler 

SQL LEN() KULLANIMI

LEN () işlevi, bir metin alanındaki değerin uzunluğunu döndürür.
Örnek olarak musteriler tablosunda ad alanını yanına soyad uzunluklarını yazdıralım.

1 SELECT ad,LEN(soyad) as soyaduzunluguFROM musteriler; 

SQL NOW() Kullanımı

NOW fonksiyonu sistem tarih ve saatini döndürür.

Örnek olarak Aşağıdaki SQL deyimi “Products” tablosundan bugün için ürün adını ve fiyatını seçelim.

1 SELECT ProductName, Price, Now() AS PerDateFROM Products; 

SQL MAX Kullanımı

MAX () işlevi, seçilen sütunun en büyük değeri döndürür.

Örnek olarak musteriler tablosunda en yüksek puanı görüntüleyelim.

1 Select MAX(puan) AS EnyuksekPuan FROM musteriler 

Şimdide en yüksek puana sahip müşterileri ad ve soyadı ile listeleyelim.

1 SELECT ad,soyad,puanFROM musteriler WHERE puan =(SELECT MAX(puan)FROM musteriler) 

SQL MIN Kullanımı

MIN() işlevi, seçilen sütunun en küçük değeri döndürür.

Ogrenciler tablosunda en düşük puanı görüntüleyelim.

1 Select MIN(puan) AS EndusukPuan FROM ogrenciler 

Şimdide en düşük puana sahip ogrencileri ad ve soyadı ile listeleyelim.

1 SELECT ad,soyad,puanFROM ogrencilerWHERE puan =(SELECT MAX(puan)FROM ogrenciler) 

SQL Örnek Çalışma Soruları

SELECT KOMUTU İLE İLGİLİ SQL SORGULARI

  1. Öğrenci tablosundaki tüm kayıtları listeleyin.
123 select * from ogrenci 
  1. Öğrenci tablosundaki öğrencinin adını ve soyadını ve sınıfını listeleyin.
123 select ograd,ogrsoyad,sinif from ogrenci 
  1. Öğrenci tablosundaki cinsiyeti Kız ve Sınıfı 10A olan öğrencileri listeleyiniz.
1 select * from ogrenci where cinsiyet=’K’ and sinif=’10A’ 
  1. Öğrenci tablosundaki 10A veya 10B sınıfındaki öğrencilerin adını, soyadını ve sınıfını listeleyiniz.
1 Select ograd, ogrsoyad, sinif from ogrenci where sinif=’10A’ or sinif=’10B’ 
  1. Öğrenci tablosundaki öğrencinin adını, soyadını ve numarasını okul numarası olarak listeleyiniz.
1 select ograd,ogrsoyad,ogrno as ‘okul numarası’ from ogrenci 
  1. kitap tablosundaki sayfa sayısı 50 ile 200 arasında olan kitapların adını ve sayfa sayısını listeleyiniz.
1 select * from kitap where sayfasayisi between 50 and 200 
  1. Öğrenci tablosunda adı Fidan, İsmail ve Leyla olan öğrencileri listeleyiniz.
1 select * from ogrenci where ograd in (‘Fidan’,’İsmail’,’Leyla’) 
  1. Öğrenci tablosundaki sınıfı 9A olan Erkekleri veya sınıfı 9B olan kızların adını, soyadını, sınıfını ve cinsiyetini listeleyiniz.
1 select ograd,ogrsoyad,sinif,cinsiyet from ogrenci where (sinif=’9A’ and cinsiyet=’E’) or (sinif=’9B’ and cinsiyet=’K’) 
  1. Öğrenci tablosunda doğum yılı 1989 olan öğrencileri listeleyiniz.
123 select * from ogrenci where dtarih between ’01/01/1989′ and ’12/31/1989′ 

DELETE KOMUTU İLE İLGİLİ SQL SORGULARI

1- Örnek ismini ikici harfi a olan kayıtları siler

1 DELETE FROM ogrenci WHERE adi like ‘_a%’; 

2- Örnek notu 50 den küçük olan kayıtları siler

1 DELETE FROM ogrenci WHERE notu <50; 

3- Örnek bilgisayar öğrencilerinin tüm not bilgilerini notlar tablsoundan silen sql komutu

1 DELETE FROM notlar WHERE no IN(SELECT no FROM ogrenci where bölüm ’531’ ) 

4- örnek: yazar tablosunu kaldırmak için gerekli olan sql deyimini yazınız.

1 DROP TABLE yazar 

5- örnek: isimi Kamil olan öğrenciyi siliyoruz.

1 DELETE FROM tblogrenci WHERE isim=‘Kamil’; 

6- elma tablosunun id nosu 15’ten büyük olan verileri siler

1 DELETE FROM elma WHERE id > ‘15’ 

7- elma tablosunun id nosu 3 ile 10 arasında olan verileri siler

1 DELETE FROM elma WHERE id BETWEEN 3 AND 10 

8- elma tablosunun cins alanı “zonguldak” olan kayıt(lar)ı siler.

1 DELETE FROM elma WHERE cins = ‘zonguldak’ 

9- elma tablosundan id nosu 1 olan veriyi siler;

1 DELETE FROM elma WHERE id = ‘1’ 

10- Doğum yeri İzmir olan 11b sınıfındaki erkek öğrencileri silin

1 DELETE FROM ogrenci WHERE dogum_yeri=’izmir’ AND sinif=’11B’ AND cinsiyet=’E’; 

LIKE KOMUTU İLE İLGİLİ SQL SORGULARI

1- ev kelimesi ile başlayan kayıtlar(eve, evde, eve giderken, evli…)

1 SELECT * FROM TabloAdi WHERE AlanAdi LIKE ‘ev%’ 

2- içerisinde Ankara kelimesi geçen kayıtlar

1 SELECT * FROM TabloAdi WHERE AlanAdi LIKE ‘%Ankara%’ 

3- karakterden oluşan, son 2 karakteri en ve ilk karakteri herhangi bir karakter olan kayıtlar(sen, ben, fen…)

1 SELECT * FROM TabloAdi WHERE AlanAdi LIKE ‘_en’ 

4- A ile K arasındaki tüm harflerle (A ve K dadil) başlayan tüm kayıtlar(Ahmet, Burak, Esra, Kemal…)

1 SELECT * FROM TabloAdi WHERE AlanAdi LIKE ‘[A-K]%’ 

5- A ile L arasındaki harfler dışındaki harfler ile başlayan tüm kayıtlar(Melih, Mustafa, Sevcan)

1 SELECT * FROM TabloAdi WHERE AlanAdi LIKE ‘[^A-L]%’ 

INSERT INTO KOMUTU İLE İLGİLİ SQL SORGULARI

1- Adı Ali Dursun olan yazarı yazarlar tablosuna ekleyelim;

1 Insert into yazar(yazarad,yazarsoyad) values (‘ali’,’dursun’) 

2- Adı Ali Dursun olan yazarı yazarlar tablosuna ekleyelim;

1 Insert into yazar(yazarsoyad,yazarad) values (‘dursun’,’ali’) 

3- Adı Ali Dursun olan yazarı yazarlar tablosuna ekleyelim;

1 Insert into yazar values (‘ali’,’dursun’) Insert into yazar values (Null,’ali’,’dursun’) 

4- Adı Yaşar Kemal ve Mahmut Demir olan iki yazarı yazar tablosuna tek sorgu ile ekleyiniz.

1 Insert into yazar(yazarad,yazarsoyad) values (‘Yaşar’,’Kemal’),(‘Mahmut’,’Demir’) 

5- Örn: 10C sınıfı öğrencilerinin adını soyadını yazarlar tablosuna ekleyelim

1 Insert into yazar(yazarad,yazarsoyad) Select ograd,ogrsoyad from ogrenci where sinif = ’10C’ 

6- Tablomuzdaki bütün alanları kopyalama:

1 INSERT INTO personel_yedek SELECT * FROM personel 

7- Tablomuzdaki alanların adını değiştirerek kopyalama:

1 INSERT INTO personel_yedek (isim, sehir) SELECT  ad_soyad, sehir FROM personel 

8- Belli kritere göre seçilen kayıtları kopyalama

1 INSERT INTO istanbul_personelleri (isim) SELECT ad_soyad FROM personel WHERE sehir=’istanbul’ 

9- Kırmızı ile yazdıklarım bir öğrenci için girilecek bilgilerdir.

1 mysql_query(“INSERT INTO ogrenciler (no,isim)VALUES(´18´,´Aybars´)”); 

10- Personel tablosunda sadece Personel_no ve Bölümü alanlarına veri girişi yapmak istiyorsak SQL sorgu kodu aşağıdaki şekilde olacaktır.

1 INSERT INTO PERSONEL(Personel_no, Bölümü) VALUES (18, ‘Müzik’); 

ORDER BY KOMUTU İLE İLGİLİ SQL SORGULARI

1- Küçükten büyüğe sıralama için ASC anahtarını koymayabilirsiniz. Zaten default olarak sonuçlar bu şekilde geliyor

1 SELECT * FROM SONUCLAR ORDER BY OGRENCI_NO 

2- Sorgularımızı DESC anahtar kelimesini kullanarak büyükten küçüğe olacak şekilde revize edelim.

1 SELECT * FROM SONUCLAR ORDER BY OGRENCI_NO DESC 

3- Burada, çok sayıda alana göre sıralama, farklı sıralama kriterlerine göre gerçekleştirilebilir. Örneğin aşağıdaki SELECT komutu ile ad alanına göre artan, soyad alanına göre azalan, maas alanına göre artan sıralanmış tablo elde edilmektedir.

1 SELECT sicil,ad,soyad,maas FROM Personel ORDER BY ad ASC,soyad DESC,maas ASC; 

4- Personel isimli bir tabloda sicil, ad, soyad, maas sütunları olsun. Maaşa göre artan sırada (küçükten büyüğe doğru) sıralı olarak listeleyiniz.

123 SELECT sicil,ad,soyad,maas FROM Personel ORDER BY maas ASC; 

5- Her bölümdeki ortalama maaş nedir?

1 SELECT bol_no,AVG(maas) FROM Personel GROUP BY bol_no; 

UPDATE KOMUTU İLE İLGİLİ SQL SORGULARI

  1. Elemanlar tablosundan maaşı 1500 TL den az olanların maaşlarını 1800 TL olarak güncelleyin.
1 update elemanlar set maas = 1800 where maas < 1500 
  1. Şirket çalışanlarından Leyla’nın maaşını 2000 tl olarak güncelleyiniz.
1 update elemanlar set maas=2000 where ad=’leyla’ 
  1. Ali işten ayrıldığı için onun yerine gelen Hakanın bilgilerini şu şekilde güncelleyiniz Ad = Hakan Maaş = 2200 Tc = 6321456.
1 update elemanlar set ad=’Hakan’, maas=2200, tc=6321456 where ad=’Ali’ 
  1. elma tablosundan id nosu 1 olan veri(ler)in cins alanını amasya yapar.
1 UPDATE elma SET cins = ‘amasya’ WHERE id = ‘1’ 
  1. Örnekte ‘Global Fast Foods’ veriabanındaki bir mü şterinin telefon numarası UPDATE komutu kullanılarak de ğiştirilmektedir. ‘copy_f_customers’ tablosu bu i şlemde kullanılmaktadır.
1 UPDATE copy_f_customers Set phone number=’05489752159’ WHERE id=123; 
  1. Global Fast Foods’ veritabanı kullanılarak mü şteri numarası 123 olan satır silmek için bir örnek verilmektedir.
1 DELETE FROM copy_ f_customers WHERE ID =123; 
  1. 2500 tl’den fazla maaş ve 200 tl’den az prim alan personellerin primini 50  tl arttırın
1 UPDATE personel SET prim=prim+50 WHERE maas>2500 AND prim<200; 
  1. işe balsama tarihi 2015 öncesi veya primi 300 tl’nin altında olanların maaşına 100 tl zam yapın
1 UPDATE personel SET maas=maas+100 WHERE ise_baslama_tarihi<‘2015.01.01’ or prim<300; 
  1. Öğrenci listesi tablosun’da ki adı deniz olan bütün kayıtların bölümünü bilişim olarak değiştirir.
1 UPDATE OgrenciListesi SET Bolum =” Bilişim” WHERE Ad=”Deniz”; 
  1. Ogrenci Listesindeki bütün ad alanındaki verileri Deniz yapar. (bu kullanıma dikkat etmeli. Şart verilmediği için bütün ad alanındaki verileri Deniz yapacaktır.

     UPDATE OgrenciListesi SET ad=”Deniz” 

MS SQL Server
MS SQL Server

Yorum yaz