- ORDER BY, SQL'de, bir tablodan kayıtları artan veya azalan sırada getirmek için SELECT sorgusu ile kullanılan bir cümledir.
- Tabloların sütunlarında saklanan tamsayı ve dize değerlerini sıraladığımız gibi, benzer şekilde SQL tablosunun sütununda saklanan tarihleri de sıralayabiliriz.
- Tüm kayıtlar varsayılan olarak artan sırada sıralanacaktır. Kayıtları azalan düzende sıralamak için DESC anahtar sözcüğü kullanılır.
Bu kavramı daha net anlamak için birkaç pratik örnek görelim. Tüm sorguları yazmak için MySQL veritabanını kullanacağız.
tamsayıyı dizeye dönüştür Java
Aşağıdaki verilerle MySQL veritabanında çalışanlar adlı bir tablo oluşturduğumuzu düşünün:
İD | İsim | Maaş | Katılma_Tarihi | DOB |
---|---|---|---|---|
1 | Daha Fazla | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Örnek 1:
Çalışanların tüm ayrıntılarını doğum tarihlerine göre artan sırada görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT *FROM employees ORDER BY DOB;
Kayıtları çalışanların doğum tarihine göre artan şekilde sıralamak istediğimiz için 'DOB' sütununda ORDER BY deyimini uyguladık.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Katılma_Tarihi | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Daha Fazla | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Yukarıdaki sorgudan elde edilen sonuçlar kayıtların DOB'a göre artan sıralamaya göre görüntülendiğini göstermektedir.
Örnek 2:
Çalışanların tüm ayrıntılarını katılma tarihlerine göre azalan sırada görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Kayıtları çalışanların katılma tarihine göre azalan şekilde sıralamak istediğimiz için 'Joining_Date' sütununda ORDER BY ifadesini DESC anahtar kelimesiyle uyguladık.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Katılma_Tarihi | DOB |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Daha Fazla | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların birleştirme tarihlerine göre azalan sıraya göre görüntülendiğini göstermektedir.
Örnek 3:
Çalışanların tüm ayrıntılarını doğum yıllarına göre artan sırada görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Kayıtları çalışanların doğum yılına göre artan şekilde sıralamak istediğimiz için ORDER BY deyimini uyguladık. 'DOB' sütunundan sadece yılı çıkarmak için DATE_FORMAT () işlevi DOB sütununa '%Y' parametresi ile uygulanır.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Katılma_Tarihi | Doğum yılı |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990 |
1 | Daha Fazla | 50000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanın doğum yılına göre büyükten küçüğe doğru görüntülendiğini göstermektedir.
Örnek 4:
Çalışanların tüm ayrıntılarını doğum saatine göre azalan sırada görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Kayıtları çalışanların doğum saatine göre azalan şekilde sıralamak istediğimiz için DESC anahtar kelimesiyle ORDER BY deyimini uyguladık. DATE_FORMAT() fonksiyonu DOB sütununa '%H' parametresi ile uygulanarak 'DOB' sütunundan yalnızca doğum saatinin çıkarılması sağlanır.
Aşağıdaki çıktıyı alacaksınız:
engellenen Kişiler
İD | İsim | Maaş | Katılma_Tarihi | Hour_Of_Birth |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 19 |
1 | Daha Fazla | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 2018-08-27 | on beş |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 02 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanın doğum saatine göre azalan sıraya göre görüntülendiğini göstermektedir.
Örnek 5:
Çalışanların tüm ayrıntılarını, katıldıkları yıla göre artan sırada görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Kayıtları çalışanların giriş yılına göre artan şekilde sıralamak istediğimiz için ORDER BY deyimini uyguladık. 'Joining_Date' sütunundan yalnızca yılı çıkarmak için '%Y' parametresi ile joining_Date sütununa DATE_FORMAT () işlevi uygulanır.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Year_Of_Joining | DOB |
---|---|---|---|---|
5 | Krishna Sharma | 48000 | 2010 | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61000 | 2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018 | 1978-06-29 15:45:13 |
1 | Daha Fazla | 50000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021 | 1990-05-15 19:10:00 |
6 | Bhavesh Jain | 37000 | 2021 | 1998-08-02 13:00:01 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanların işe giriş yıllarına göre büyükten küçüğe doğru görüntülendiğini göstermektedir.
Örnek 6:
Çalışanların işe giriş günlerine göre azalan sıraya göre düzenlenmiş tüm çalışan ayrıntılarını görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Kayıtları çalışanların işe giriş günlerine göre azalan şekilde sıralamak istediğimiz için DESC anahtar kelimesiyle ORDER BY deyimini uyguladık. 'Joining_Date' sütununda, joining_Date'ten yalnızca katılma gününü çıkarmak için DAY () işlevi uygulanır.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Day_Of_Joining | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23 | 1999-03-21 02:14:56 |
1 | Daha Fazla | 50000 | 8 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 1 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 1983-02-20 12:18:45 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanların işe giriş günlerine göre azalan sıralamaya göre görüntülendiğini göstermektedir.
Örnek 7:
Çalışanların tüm ayrıntılarını çalışanların doğum günlerine göre artan sırada görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Kayıtları çalışanların doğum günlerine göre artan şekilde sıralamak istediğimiz için ORDER BY deyimini uyguladık. DOB'dan yalnızca doğum gününü çıkarmak için 'DOB' sütununa DAY () işlevi uygulanır.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Year_Of_Joining | Doğum günü |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34000 | 2021-01-01 | on beş |
3 | Saurabh Jha | 61000 | 2015-05-01 | yirmi |
5 | Krishna Sharma | 48000 | 2010-10-23 | yirmi bir |
1 | Daha Fazla | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 2018-08-27 | 29 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanın doğum gününe göre büyükten küçüğe doğru görüntülendiğini göstermektedir.
Örnek 8:
Çalışanların tüm ayrıntılarını, çalışanın doğum ayına göre artan düzende görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
İD | İsim | Maaş | Katılma_Tarihi | DOB |
---|---|---|---|---|
1 | Daha Fazla | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanın doğum ayına göre büyükten küçüğe doğru görüntülendiğini göstermektedir.
Örnek 9:
Çalışanların tüm ayrıntılarını, çalışanın katıldığı aya göre artan sırada düzenlenmiş olarak görüntülemek için bir sorgu yazın.
Sorgu:
fabrika yöntemi tasarım deseni
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Kayıtları çalışanların katıldıkları aylara göre artan şekilde sıralamak istediğimiz için ORDER BY deyimini uyguladık. 'Joining_Date' sütununda, joining_Date'ten yalnızca katılma ayını çıkarmak için MONTH () işlevi uygulanır.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Maaş | Katılma_Tarihi | DOB |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Daha Fazla | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Yukarıdaki sorgudan elde edilen sonuçlar, kayıtların çalışanın işe girdiği aya göre büyükten küçüğe doğru görüntülendiğini göstermektedir.