Bir dili yada kavramı öğrenmenin en iyi yolu, o kavram ile ilgili bol örnek çözmektir. Bu yazıda MySQL Veritabanı ile hazırlanmış çok sayıda veritabanı sorgusu bulacaksınız. Hazırlanan MySQL Sorguları, MySQL Çalışma Soruları olarak da faydalanabilmeniz için Soru-Cevap şekilde hazırlanmıştır.
MySQL en popüler açık kaynak veritabanıdır. Popüler olmasının sebebi, PHP dilinin webte en çok kullanılan dil olması ve MySQL veritabanının bütün sunucularda çalışmasıdır. PHP çalışmalarınızda MySQL Sorgu Örneklerinindeki sorguları amacınıza uygun olarak değiştirerek rahatlıkla kullanabilirsiniz. Bu yazı ile veritabanı temel sorgusu SELECT ile başlayıp, INSERT INTO, UPDATE, DELETE, WHERE, ORDER BY, GROUP BY, JOIN, Tarih Fonksiyonları, Aggregate fonksiyonlar, MySQL Joker Karakterler ve aklıma gelmeyen çok sayıda sorgulama yapılacaktır.
İlginizi çekebilir: MySQL Dersleri
Aşağıdaki sorgu örnekleri için kütüphane veritabanı kullanılmıştır. Veritabanı şeması aşağıdaki gibidir.
MySQL Select Sorguları
MySQL Basit Select Sorguları
Soru: Yazar tablosundaki yazarların adını ve soyadını listeleyin.
1 2 3 | select yazarad,yazarsoyad from yazar; |
Soru: Kitap tablosundaki tüm bilgileri listeleyin.
1 2 3 | select * from kitap; |
Soru: Ogrenci tablosundaki sinif isimlerini tekrarsız olarak getirin.
1 2 3 | select distinct sinif from ogrenci; |
MySQL Select Where Sorguları
Soru: Yazar tablosundaki yazarnosu 5 olan yazarın adını ve soyadını getirin.
1 2 3 | select yazarad,yazarsoyad from yazar where yazarno=5; |
Soru: 11A sınıfındaki öğrencilerin adı, soyadı ve sınıfını listeleyin.
1 2 3 | select ograd,ogrsoyad, sinif from ogrenci where sinif='11A'; |
İlginizi çekebilir: MySQL Where Kullanımı
Soru: Öğrenci tablosundaki cinsiyeti kız (K) olan kayıtları listeleyiniz.
1 2 3 | select * from ogrenci where cinsiyet='K' |
Soru: Öğrenci tablosundaki cinsiyeti Kız ve Sınıfı 10A olan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where cinsiyet='K' and sinif='10A' |
Soru: Kitap tablosundaki kitaplardan türü 2 yada 5 olan kitapların adını ve türünü listeleyin.
1 2 3 | select kitapad,turno from kitap where turno=2 or turno=5; |
Soru: Kitap tablosundaki sayfa sayısı 150den küçük yada 350den büyük olan kitapları adını ve sayfasayısını listeleyin
1 2 3 | select kitapad, sayfasayisi from kitap where sayfasayisi<100 or sayfasayisi >350; |
Soru: Kitap tablosundaki kitaplardan sayfa sayısı 200-300 arasında olan kitapları listeleyin. (Yötem 1)
1 2 3 | select * from kitap where sayfasayisi>=200 and sayfasayisi<=300; |
Soru: Kitap tablosundaki kitaplardan sayfa sayısı 200-300 arasında olan kitapları listeleyin. (Yötem 2)
1 2 3 | select * from kitap where sayfasayisi between 200 and 300; |
Soru: Kitap tablosundaki kitaplardan sayfa sayısı 200-300 arasında ve türü 4 olan kitapları listeleyin.
1 2 3 | select * from kitap where sayfasayisi between 200 and 300 and turno=4; |
MySQL AS Kullanımı
Soru: Öğrenci tablosundaki öğrencinin adını ve soyadını birleştirip, adsoyad olarak listeleyiniz. (as kullanım örneği)
1 2 3 | select concat(ograd,' ',ogrsoyad) as 'Adı Soyadı' from ogrenci; |
Soru :Yazar tablosundaki yazarın adını ve soyayını birleştirip “yazar adı soyad” olarka yazdırın.
1 2 3 | SELECT concat(yazarad,' ',yazarsoyad) as 'Yazar Ad Soyad' FROM yazar; |
Soru: Yazar adı A ile başlayan yazarları listeleyin.
1 2 3 | select * from yazar where yazarad like 'A%'; |
Soru: A şubelerinde olan öğrencilerin bilgilerini listeyin.
1 2 3 | select * from ogrenci where sinif like '%A'; |
Soru: Öğrenci tablosunda adı Fidan, İsmail ve Leyla olan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where ograd in ('Fidan','İsmail','Leyla') |
Soru: Öğrenci tablosundaki öğrencilerden adı A, D ve K ile başlayan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where ograd REGEXP '^[ADK]' |
Soru: Öğrenci tablosunda doğum yılı 1989 olan öğrencileri listeleyiniz.
1 2 3 4 | select * from ogrenci where dtarih between '01/01/1989' and '12/31/1989' |
Soru: Öğrencileri adına göre sıralayınız.
1 2 3 | select * from ogrenci order by ograd |
Soru: Öğrencileri adına, adı aynı olanlarıda soyadlarına göre sıralayınız.
1 2 3 | select * from ogrenci order by ograd,ogrsoyad |
Soru: 10A sınıfındaki öğrencileri okul numarasına göre azalan olarak sıralayınız.
1 2 3 | select * from ogrenci where sinif='10A' order by ogrno desc |
Soru: Öğrenciler tablosundaki ilk 10 kaydı listeleyiniz.
1 2 3 | SELECT * FROM ogrenci limit 0,10; |
Soru: Öğrenci tablosundaki ikinci 10 öğrenciyi getirin.
1 2 3 | SELECT * FROM ogrenci LIMIT 10,10; |
Soru: Öğrencileri adına göre artan şekilde sıralayınız.
1 2 3 | SELECT * FROM ogrenci order by ograd asc; |
Soru: Öğrencileri adına göre artan, adı aynı olanları soyadına göre azalan şekilde sıralayınız.
1 2 3 | SELECT * FROM ogrenci order by ograd asc, ogrsoyad desc; |
Soru: 10A sınıfındaki öğrencileri yaşı büyük olandan küçük olana doğru sıralayınız.
1 2 3 | SELECT * FROM ogrenci WHERE sinif='10A'order by dtarih asc; |
Soru: Okulun A şubesindeki öğrencileri doğum tarihlerini göre sıralayınız. (doğum tarihi küçük olandan başlasın)
1 2 3 | SELECT * FROM ogrenci WHERE sinif LIKE '%A' ORDER BY dtarih desc; |
Soru: 11A sınıfındaki en yaşlı öğrencinin adını, soyadını, doğum tarihini yazdırın
1 2 3 | SELECT ograd,ogrsoyad, dtarih FROM ogrenci WHERE sinif ='11A' ORDER BY dtarih asc LIMIT 0,1; |
MySQL Sık Kullanılan Tarih Fonksiyon Sorguları
Soru : Şuanki zamanı getirin
1 2 3 | SELECT now(); |
Soru: Günün tarihini getirme getirin
1 2 3 | SELECT CURDATE(); |
Soru: Verilen tarihin gününü getir
1 2 3 4 | select YEAR(CURDATE()); SELECT YEAR('1985/05/25'); |
Soru: Verilen tarihin ayını getir.
1 2 3 | SELECT MONTH(CURDATE()); |
Soru: verilen TARİHİN gününü getir.
1 2 3 4 | SELECT DAY(CURDATE()); SELECT DAY('2005/05/16'); |
Soru: Verilen TARİHİN zaman mührünü getirir.
1 2 3 | SELECT TIMESTAMP(NOW()); |
Soru: İki tarih arasındaki farkı alıp gün olarak getir.
1 2 3 | SELECT DATEDIFF(NOW(),'2015/05/10'); |
Soru: Mevcut yıldan belirli bir tarihi çıkar.
1 2 3 | SELECT YEAR(NOW())- YEAR('2010/07/14'); |
Soru: 11A sınıfındaki en yaşlı öğrencinin adını,soyadını ve yaşını (dtarih değil) yazıdırın.
1 2 3 | SELECT ograd,ogrsoyad, YEAR(NOW())- YEAR(dtarih) FROM ogrenci WHERE sinif ='11A' ORDER BY dtarih asc LIMIT 0,1; |
Soru: Doğum ayı ile doğum günü aynı olan öğrencileri getirin.
1 2 3 | SELECT * FROM ogrenci WHERE MONTH(dtarih) =DAY(dtarih); |
MySQL Rastgele Seçim Yapma
Soru: Rastgele bir değer getirin.
1 2 3 | Select RAND(); |
Soru: Kitapları rastgele sıralayın
1 2 3 | SELECT * FROM kitap order by rand(); |
Soru: Rastgele bir tane kitap ve bilgirini seçin
1 2 3 | SELECT * FROM kitap order by rand() limit 0,1; |
Soru: 11A sınıfından rastgele bir öğrencinin adını, soyaadını ve sınıfını seçin
1 2 3 | SELECT ograd,ogrsoyad,sinif FROM ogrenci WHERE sinif='11A' ORDER BY RAND() LIMIT 0,1; |
Soru:
Soru:
Soru:
Soru:
Soru:
Soru:
Soru:
Soru:
Faydalı bilgileriniz için teşekkür ederim. Eklenebilecek yeni bir soru türü olarak sütunun içerisinde içereceği herhangi bir harfi sorgulayabilir misiniz?