logo

SQL CÜMLELERİ

  • SQL cümlesi, tablodan bir dizi veya kayıt kümesini almamıza yardımcı olur.
  • SQL cümlesi, bir tablonun sütunları veya kayıtları üzerinde bir koşul belirtmemize yardımcı olur.

Yapılandırılmış Sorgu Dili'nde bulunan farklı cümleler şunlardır:

  1. NEREDE MADDESİ
  2. MADDESE GÖRE GRUPLA
  3. MADDESİ VAR
  4. MADDEYE GÖRE SİPARİŞ

Her cümleyi bir örnekle tek tek görelim. Örneklerdeki sorguları yazmak için MySQL veritabanını kullanacağız.

1. NEREDE MADDESİ

SQL'de WHERE cümlesi, veri işleme dili komutlarından biri olan SELECT sorgusu ile birlikte kullanılır. WHERE deyimleri sonuç kümesinde görüntülenecek satır sayısını sınırlamak için kullanılabilir, genellikle kayıtların filtrelenmesine yardımcı olur. Yalnızca WHERE yan tümcesinin belirli koşullarını karşılayan sorguları döndürür. WHERE cümlesi SELECT, UPDATE, DELETE deyiminde vb. kullanılır.

SELECT Sorgusu ile WHERE yan tümcesi

Yıldız işareti simgesi, bir tablodaki her kayıt için tüm sütun değerlerini almak üzere bir SELECT sorgusunda WHERE yan tümcesiyle birlikte kullanılır.

Bir tablodaki her kayıt için tüm sütun değerlerini almaya yönelik seçme sorgusu içeren Where cümlesinin sözdizimi:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Gereksinime göre yalnızca seçili sütunları almak istiyorsak aşağıdaki sözdizimini kullanacağız:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Aşağıdaki verileri içeren çalışan tablosunu düşünün:

E_ID İsim Maaş Şehir Tanım Katılım tarihi Yaş
1 Sakshi Kumari 50000 Mumbai Proje Müdürü 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistem Mühendisi 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Müdür 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Yazılım test uzmanları 2021-06-13 24
5 Rucha Jagtap 45000 Bangalor Proje Müdürü 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalor Müdür 2019-07-17 26
7 Baviskar'ın sesi 55000 Jaipur Sistem Mühendisi 2021-10-10 24
8 Şeyh var 45000 Pune Yazılım Mühendisi 2020-09-10 26
9 Swati Kumari 50000 Pune Yazılım test uzmanları 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Proje Müdürü 2020-10-02 24
on bir Simran Khanna 45500 Kolhapur İK 2019-01-02 26
12 Şivani Wagh 50500 Delhi Yazılım geliştirici 2016-09-10 25
13 Kiran Maheshwari 50000 Naşik İK 2013-12-12 23
14 Tejal Jain 40000 Delhi Proje Müdürü 2017-11-10 25
on beş Mohini Şah 38000 Pune Yazılım geliştirici 2019-03-05 yirmi

Örnek 1:

Çalışan maaşının 50.000'den fazla olduğu bir çalışanın tüm kayıtlarını almak için bir sorgu yazın.

Sorgu:

Java yerel tarihi
 mysql> SELECT * FROM employees WHERE Salary > 50000; 

Yukarıdaki sorguda maaşı 50.000'den fazla olan çalışana ait tüm kayıtlar görüntülenecektir. Koşullar gereği maaşı 50.000'in altı görüntülenmeyecektir.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Beklenen çıktıya göre, yalnızca çalışanın maaşının 50000'den büyük olduğu kayıtlar görüntülenir. Çalışan tablosunda verilen koşulu karşılayan altı kayıt vardır.

Örnek 2:

Çalışanın kaydını güncellemek için bir sorgu yazın ve güncellenen adı, çalışanın şehir adının Jaipur olduğu 'Harshada Sharma' olarak ayarlayın.

Sorgu:

 mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur'; 

SQL CÜMLELERİ

Yukarıdaki sorgu, çalışanın adını, çalışanın şehrinin Jaipur olduğu 'Harshada Sharma' olarak güncelleyecektir.

Kayıtların güncellenip güncellenmediğini doğrulamak için bir seçme sorgusu çalıştıracağız.

 mysql> SELECT * FROM employees; 

SQL CÜMLELERİ

Çalışanın tablosunda çalışanın şehrinin 'Jaipur' olduğu tek bir kayıt var. Kaydın kimliği, verilen koşulu karşılayan 3'tür. Dolayısıyla verilen koşula göre çalışan kimliği 3 olan çalışanın adı artık 'Harshada Sharma' olarak değiştirildi.

Örnek 3:

Çalışanın katılma tarihinin '2013-12-12' olduğu bir çalışanın kaydını silmek için bir sorgu yazın.

Sorgu:

 mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12'; 

SQL CÜMLELERİ

Yukarıdaki sorgu, işe giriş tarihi '2013-12-12' olan çalışanın çalışan bilgilerini silecektir.

Yukarıdaki sorgunun sonuçlarını doğrulamak için seçme sorgusunu çalıştıracağız.

 mysql> SELECT *FROM employees; 

SQL CÜMLELERİ

Çalışan tablosunda çalışanın işe giriş tarihinin '2013-12-12' olduğu tek bir kayıt bulunmaktadır. Kaydın kimliği, verilen koşulu karşılayan 13'tür. Dolayısıyla verilen koşula göre çalışan kimliği 13 olan çalışan artık çalışan tablosundan silinmiştir.

2. MADDESE GÖRE GRUPLAMA

Group By cümlesi, Yapılandırılmış Sorgu Dili'ndeki benzer türdeki kayıtları gruplar halinde düzenlemek için kullanılır. Yapılandırılmış Sorgu Dili'ndeki Group by cümlesi Select İfadesi ile birlikte kullanılır. Group by cümlesi, SQL deyimindeki Where cümlesinden sonra yerleştirilir. Group By cümlesi, sonucu bir veya daha fazla sütuna göre gruplandırmak için özellikle toplama işleviyle, yani max (), min (), avg (), sum (), count () ile birlikte kullanılır.

Group By cümlesinin sözdizimi:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

Yukarıdaki sözdizimi, tablodaki tüm verileri veya kayıtları seçecektir, ancak tüm bu verileri veya kayıtları, sorguda verilen sütun adına göre gruplar halinde düzenleyecektir.

Toplama İşlevleri ile Group By yan tümcesinin sözdizimi:

 SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME; 

Örnekler yardımıyla Group By cümlesini anlayalım.

dizi ekleme elemanları java

Aşağıdaki verileri içeren çalışanlar tablosunu düşünün:

E_ID İsim Maaş Şehir Tanım Katılım tarihi Yaş
1 Sakshi Kumari 50000 Mumbai Proje Müdürü 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistem Mühendisi 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Müdür 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Yazılım test uzmanları 2021-06-13 24
5 Rucha Jagtap 45000 Bangalor Proje Müdürü 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalor Müdür 2019-07-17 26
7 Baviskar'ın sesi 55000 Jaipur Sistem Mühendisi 2021-10-10 24
8 Şeyh var 45000 Pune Yazılım Mühendisi 2020-09-10 26
9 Swati Kumari 50000 Pune Yazılım test uzmanları 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Proje Müdürü 2020-10-02 24
on bir Simran Khanna 45500 Kolhapur İK 2019-01-02 26
12 Şivani Wagh 50500 Delhi Yazılım geliştirici 2016-09-10 25
13 Kiran Maheshwari 50000 Naşik İK 2013-12-12 23
14 Tejal Jain 40000 Delhi Proje Müdürü 2017-11-10 25
on beş Mohini Şah 38000 Pune Yazılım geliştirici 2019-03-05 yirmi

Örnek 1:

Çalışanlar tablosunun tüm kayıtlarını görüntülemek ancak sonuçları yaş sütununa göre gruplandırmak için bir sorgu yazın.

Sorgu:

 mysql> SELECT * FROM employees GROUP BY Age; 

Yukarıdaki sorgu, çalışanlar tablosunun tüm kayıtlarını ancak yaş sütununa göre gruplandırılmış olarak gösterecektir.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Örnek 2:

Görev ve maaşa göre gruplandırılmış çalışanlar tablosunun tüm kayıtlarını görüntülemek için bir sorgu yazın.

Sorgu:

 mysql> SELECT * FROM employees GROUP BY Salary, Designation; 

Yukarıdaki sorgu, çalışanlar tablosunun tüm kayıtlarını ancak maaş ve unvan sütununa göre gruplandırılmış olarak gösterecektir.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Toplama işlevlerini kullanan Group By yan tümcesi örnekleri

Örnek 1:

Belirli bir atama üzerinde çalışan çalışanların sayısını listelemek için bir sorgu yazın ve sonuçları çalışanın atamasına göre gruplandırın.

Sorgu:

 mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation; 

Yukarıdaki sorgu, atamayı o atama üzerinde çalışan ilgili çalışan sayısıyla birlikte görüntüleyecektir. Tüm bu sonuçlar atama sütununa göre gruplandırılacaktır.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Beklenen çıktıya göre ilgili çalışan sayısını içeren atama görüntülenir.

Örnek 2:

Bir çalışanın maaşının toplamını, çalışanın yaşına göre gruplandırılmış olarak görüntülemek için bir sorgu yazın.

Sorgu:

 mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City; 

Yukarıdaki sorgu öncelikle her şehirde çalışan maaşların toplamını hesaplayacak, ardından maaş toplamını ilgili maaşla birlikte ancak yaş sütununa göre gruplanmış olarak gösterecektir.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Beklenen çıktıya göre çalışanın ait olduğu şehre göre maaş toplamı görüntülenir. İki çalışan aynı şehre aitse aynı grupta olacaklardır.

css'in ilk çocuğu

3. HÜKÜM SAHİBİ:

Tablonun sütununa herhangi bir koşul yerleştirmemiz gerektiğinde SQL'de WHERE deyimini kullanırız. Ancak o anda Group By cümlesinde bir sütunda herhangi bir koşulu kullanmak istiyorsak, sütun koşulları için HAVING cümlesini Group By cümlesiyle birlikte kullanacağız.

Sözdizimi:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Aşağıdaki verileri içeren çalışanlar tablosunu düşünün:

E_ID İsim Maaş Şehir Tanım Katılım tarihi Yaş
1 Sakshi Kumari 50000 Mumbai Proje Müdürü 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistem Mühendisi 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Müdür 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Yazılım test uzmanları 2021-06-13 24
5 Rucha Jagtap 45000 Bangalor Proje Müdürü 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalor Müdür 2019-07-17 26
7 Baviskar'ın sesi 55000 Jaipur Sistem Mühendisi 2021-10-10 24
8 Şeyh var 45000 Pune Yazılım Mühendisi 2020-09-10 26
9 Swati Kumari 50000 Pune Yazılım test uzmanları 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Proje Müdürü 2020-10-02 24
on bir Simran Khanna 45500 Kolhapur İK 2019-01-02 26
12 Şivani Wagh 50500 Delhi Yazılım geliştirici 2016-09-10 25
13 Kiran Maheshwari 50000 Naşik İK 2013-12-12 23
14 Tejal Jain 40000 Delhi Proje Müdürü 2017-11-10 25
on beş Mohini Şah 38000 Pune Yazılım geliştirici 2019-03-05 yirmi

Örnek 1:

Çalışanların adını, maaşını ve çalışanın maksimum maaşının 40.000'den fazla olduğu şehri görüntülemek için bir sorgu yazın ve sonuçları atamaya göre gruplandırın.

Sorgu:

 mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000; 

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Yukarıdaki çıktı, çalışan maaşının 40.000'den fazla olduğu çalışanın adını, maaşını ve şehrini atamaya göre gruplandırılmış olarak gösterir. (Benzer unvana sahip çalışanlar bir gruba, diğer unvana sahip çalışanlar ayrı ayrı yerleştirilir).

Örnek 2:

Bir çalışanın maaşı toplamının 45.000'den fazla olduğu çalışanların adını ve atamasını görüntülemek için bir sorgu yazın ve sonuçları şehre göre gruplandırın.

Sorgu:

 mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000; 

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Yukarıdaki çıktı, çalışanın adını, unvanını ve maaşını gösterir. Maaş toplamı şehre göre gruplandırılmış 45000'den fazladır. (Benzer şehirdeki çalışanlar bir gruba, farklı şehirdeki çalışanlar ise ayrı ayrı yerleştirilir).

4. MADDEYE GÖRE SİPARİŞ

SQL'de herhangi bir şeyi sıralamak istediğimizde ORDER BY cümleciğini kullanırız. SQL'deki ORDER BY cümlesi, verileri bir tablonun belirli sütununa göre sıralamamıza yardımcı olacaktır. Bu, ORDER BY yan tümcesini yürüttüğümüz belirli sütunda saklanan tüm verilerin sıralanacağı anlamına gelir. Karşılık gelen sütun değerleri, önceki adımda değerleri elde ettiğimiz sırayla görüntülenecektir.

Hepimizin bildiği gibi sıralama, AZALAN SIRADA veya AZANAN SIRADA anlamına gelir. Aynı şekilde ORDER BY CLAUSE da ihtiyacımıza göre verileri artan veya azalan şekilde sıralar. Veriler her seferinde artan sırada sıralanacaktır. ASC anahtar sözcüğü ORDER by cümlesiyle birlikte kullanılır ve DESC anahtar kelimesi kayıtları azalan düzende sıralayacaktır.

Varsayılan olarak, SQL'de sıralama, sıralama düzeninden bahsetmediysek, ASCENDING düzeninde ORDER BY cümleciği kullanılarak yapılacaktır.

Kayıtları sıralamak için ORDER BY cümleciği örneğine geçmeden önce öncelikle sözdizimine bakacağız, böylece örnek üzerinden geçmemiz kolay olacaktır.

ORDER BY yan tümcesinin asc ve desc anahtar sözcüğü olmadan sözdizimi:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

ORDER BY cümlesinin artan düzende sıralamak için sözdizimi:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Azalan düzende sıralamak için ORDER BY cümleciğinin sözdizimi:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Aşağıdaki verileri içeren bir çalışan tablomuz olduğunu düşünün:

E_ID İsim Maaş Şehir Tanım Katılım tarihi Yaş
1 Sakshi Kumari 50000 Mumbai Proje Müdürü 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Sistem Mühendisi 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Müdür 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Yazılım test uzmanları 2021-06-13 24
5 Rucha Jagtap 45000 Bangalor Proje Müdürü 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalor Müdür 2019-07-17 26
7 Baviskar'ın sesi 55000 Jaipur Sistem Mühendisi 2021-10-10 24
8 Şeyh var 45000 Pune Yazılım Mühendisi 2020-09-10 26
9 Swati Kumari 50000 Pune Yazılım test uzmanları 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Proje Müdürü 2020-10-02 24
on bir Simran Khanna 45500 Kolhapur İK 2019-01-02 26
12 Şivani Wagh 50500 Delhi Yazılım geliştirici 2016-09-10 25
13 Kiran Maheshwari 50000 Naşik İK 2013-12-12 23
14 Tejal Jain 40000 Delhi Proje Müdürü 2017-11-10 25
on beş Mohini Şah 38000 Pune Yazılım geliştirici 2019-03-05 yirmi

Örnek 1:

Kayıtları çalışanlar tablosundan çalışan tanımına göre artan sırada sıralamak için bir sorgu yazın.

Sorgu:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Burada bir SELECT sorgusunda, kayıtları sıralamak için 'Atama' sütununa bir ORDER BY cümleciği uygulanır, ancak artan düzende sıralamak için ORDER BY cümleciğinden sonra ASC anahtar sözcüğünü kullanmadık. Dolayısıyla, eğer asc anahtar sözcüğünü belirtmezsek, veriler varsayılan olarak artan düzende sıralanacaktır.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Beklenen çıktıya göre kayıtlar çalışanın atamasına göre artan sırada görüntülenir.

Örnek 2:

Çalışanlar tablosundan çalışanın adını ve maaşını çalışanın maaşına göre artan sırada görüntülemek için bir sorgu yazın.

Sorgu:

 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Burada bir SELECT sorgusunda, kayıtları sıralamak için 'Maaş' sütununa ORDER BY cümlesi uygulanır. Çalışanın maaşını artan düzende sıralamak için ASC anahtar sözcüğünü kullandık.

Aşağıdaki çıktıyı alacaksınız:

javascript if ifadesi
SQL CÜMLELERİ

Tüm kayıtlar çalışanın maaşına göre artan sırada görüntülenir.

Örnek 3:

Verileri, çalışanlar tablosunda depolanan çalışan adına göre azalan düzende sıralamak için bir sorgu yazın.

Sorgu:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Burada verileri sıralamak için Name sütununa uygulanan SELECT sorgusu ile ORDER BY deyimini kullandık. Verileri azalan düzende sıralamak için ORDER BY cümleciğinden sonra DESC anahtar sözcüğünü kullandık.

Aşağıdaki çıktıyı alacaksınız:

SQL CÜMLELERİ

Tüm kayıtlar çalışan adına göre azalan sırada görüntülenir.