SİPARİŞE GÖRE MySQL: ÖRNEK ile DESC & ASC Sorgusu
Sonuçları Sıralama
SELECT komutunu kullanarak sonuçlar, kayıtların veritabanına eklendiği sırayla döndürüldü. Bu, varsayılan sıralama düzenidir. Bu bölümde sorgu sonuçlarımızı nasıl sıralayabileceğimize bakacağız. Sıralama, sorgu sonuçlarımızı belirli bir şekilde yeniden düzenlemektir. Sıralama tek bir sütunda yapılabileceği gibi birden fazla sütunda da yapılabilir. Sayı, dizeler ve tarih veri türlerinde yapılabilir.
ORDER BY nedir? MySQL?
MySQL TARAFINDAN SİPARİŞ Verileri düzenli bir şekilde sıralamak için SELECT sorgusu ile birlikte kullanılır. MySQL ORDER BY deyimi, sorgu sonuç kümelerini artan veya azalan düzende sıralamak için kullanılır.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
İŞTE
- "SELECT ifadesi... " normal seçme sorgusudur
- "| " alternatifleri temsil eder
- “[NEREDE koşulu | GROUP BY `alan_adı(lar)` HAVING koşulu” sorgu sonuç kümelerini filtrelemek için kullanılan isteğe bağlı koşuldur.
- "TARAFINDAN SİPARİŞ" sorgu sonuç kümesi sıralamasını gerçekleştirir
- “[ASC | DESC]” sonuç kümelerini artan veya azalan düzende sıralamak için kullanılan anahtar kelimedir. Not ASC varsayılan olarak kullanılır.
- SELECT {fieldName(s) | *} FROM tableName(ler) sonuç kümesinin alınacağı alanları ve tabloları içeren ifadedir.
- [NEREDE koşulu] isteğe bağlıdır ancak verileri verilen koşula göre filtrelemek için kullanılabilir.
- TARAFINDAN SİPARİŞ alan ad(lar)ı zorunludur ve sıralamanın gerçekleştirileceği alandır. MySQL DESC anahtar sözcüğü sıralamanın azalan sırada olacağını belirtir.
- [SINIR] isteğe bağlıdır ancak sorgu sonuç kümesinden döndürülen sonuçların sayısını sınırlamak için kullanılabilir.
DESC ve ASC Anahtar Kelimeleri Nelerdir?
ASC artanın kısa şeklidir |
MySQL DESC, azalan kelimesinin kısa şeklidir |
|---|---|
| Sorgu sonuçlarını yukarıdan aşağıya doğru sıralamak için kullanılır. | Sorgu sonuçlarını aşağıdan yukarıya doğru sıralamak için kullanılır |
| Tarih veri türleri üzerinde çalışırken listenin en üstünde en eski tarih gösterilir. | . Tarih türleri üzerinde çalışırken listenin en üstünde en son tarih gösterilir. |
| Sayısal veri türleriyle çalışırken en düşük değerler listenin başında gösterilir. | Sayısal veri türleriyle çalışırken en yüksek değerler sorgu sonuç kümesinin en üstünde gösterilir. |
| Dize veri türleriyle çalışırken, sorgu sonuç kümesi A harfinden başlayarak Z harfine kadar sıralanır. | Dize veri türleriyle çalışırken, sorgu sonuç kümesi Z harfiyle başlayanlardan A harfine kadar sıralanır. |
SQL DESC ve ASC anahtar kelimelerinin her ikisi de SELECT deyimiyle birlikte kullanılır ve MySQL ORDER BY cümlesi.
DESC ve ASC sözdizimi
SQL DESC sort anahtar sözcüğünün temel söz dizimi aşağıdaki gibidir.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
İŞTE
Örnekler:
Şimdi pratik bir örneğe bakalım –
SELECT * FROM members;
Yukarıdaki betiğin çalıştırılması MySQL workbench'ü myflixdb ile karşılaştırdığımızda aşağıdaki sonuçlar ortaya çıkıyor.
| membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
| 7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
| 8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
| 9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 |
Pazarlama departmanının üyelerin bilgilerinin Doğum Tarihine göre azalan sırada düzenlenmesini istediğini varsayalım. Bu, onların doğum günü tebriklerini zamanında göndermelerine yardımcı olacaktır. Aşağıdaki gibi bir sorguyu çalıştırarak söz konusu listeyi elde edebiliriz –
SELECT * FROM members ORDER BY date_of_birth DESC;
Yukarıdaki betiğin çalıştırılması MySQL workbench'ü myflixdb ile karşılaştırdığımızda aşağıdaki sonuçlar ortaya çıkıyor.
Artan sırada aynı sorgu
SELECT * FROM üyeler ORDER BY date_of_birth ASC
Not: NULL değerler, değer olmadığı anlamına gelir (sıfır veya boş dize değil). Bunların nasıl sıralandığına dikkat edin.
Daha fazla örnek
Tüm üye kayıtlarını listeleyen aşağıdaki SQL sıralama betiğini ele alalım.
SELECT * FROM `members`;
Yukarıdaki betiğin çalıştırılması aşağıda gösterilen sonuçları verecektir.
| membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
| 7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
| 8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
| 9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | NULL |
Cinsiyet alanını kullanarak sorgu sonuç kümesini sıralayan bir liste elde etmek istediğimizi varsayalım, aşağıda gösterilen betiği kullanırız.
SELECT * FROM `members` ORDER BY `gender`;
| membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
| 7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
| 8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
| 9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | NULL |
"Kadın" üyeler önce "Erkek" üyeler tarafından görüntülendi, bunun nedeni ORDER BY DESC ifadesinin ASC veya MySQL DESC anahtar sözcüğü, varsayılan olarak, MySQL sorgu sonuç kümesini artan düzende sıraladı.
Şimdi bunu yapan bir örneğe bakalım iki sütun kullanarak sıralama; birincisi kriteri in artan sıra ikinci sütun ise varsayılan olarak kriteri in azalan sipariş.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Yukarıdaki betiğin çalıştırılması MySQL workbench'ü myflixdb'ye karşı çalıştırmak aşağıdaki sonuçları veriyor.
Cinsiyet sütunu varsayılan olarak artan sırada sıralanırken doğum tarihi sütunu açıkça azalan sırada sıralandı
DESC ve ASC'yi neden kullanabiliriz?
Bir video kütüphanesi üyesinin ön bürodan gelen soruları yanıtlamasına yardımcı olması için ödeme geçmişini yazdırmak istediğimizi varsayalım; ödemelerin son ödemeden başlayarak önceki ödemeye doğru azalan kronolojik sırada yazdırılması daha mantıklı olmaz mıydı?
SQL'de DESC bu gibi durumlarda kullanışlı olan bir anahtar kelimedir. Ödeme tarihini kullanarak listeyi azalan şekilde sıralayan bir sorgu yazabiliriz.
Pazarlama departmanının, üyelerin film kiralarken kütüphanede hangi filmlerin mevcut olduğuna karar vermek için kullanabileceği kategoriye göre bir film listesi almak istediğini varsayalım; film kategorisi adlarını ve başlığını artan şekilde sıralamak daha mantıklı olmaz mıydı? Üyeler listedeki bilgileri hızlı bir şekilde arayabilir mi?
ASC anahtar sözcüğü bu tür durumlarda kullanışlıdır; film listesini kategori adına ve film başlığına göre artan sırada sıralayabiliriz.
ÖZET
- Sorgu sonuçlarını sıralama, bir sorgu sonuç kümesinden döndürülen satırların artan veya azalan sırada yeniden düzenlenmesidir.
- SQL'de DESC anahtar sözcüğü, sorgu sonuç kümesini azalan düzende sıralamak için kullanılır.
- ASC anahtar sözcüğü, sorgu sonuç kümesini artan sırada sıralamak için kullanılır.
- Hem DESC hem de ASC, ORDER BY anahtar sözcüğüyle birlikte çalışır. Ayrıca aşağıdaki gibi diğer anahtar kelimelerle birlikte de kullanılabilirler. WHERE yan tümcesi ve SINIR
- Hiçbir şey açıkça belirtilmediğinde ORDER BY için varsayılan ASC'dir.

ASC artanın kısa şeklidir
MySQL DESC, azalan kelimesinin kısa şeklidir

