छँटाई परिणाम
SELECT कमांड का उपयोग करते हुए, परिणाम उसी क्रम में वापस किए गए थे जब रिकॉर्ड डेटाबेस में जोड़े गए थे। यह डिफ़ॉल्ट सॉर्ट क्रम है। इस खंड में, हम देख रहे होंगे कि हम अपने क्वेरी परिणामों को कैसे सॉर्ट कर सकते हैं। छंटनी बस एक निर्दिष्ट तरीके से हमारे क्वेरी परिणामों को फिर से व्यवस्थित कर रही है। छँटाई एकल स्तंभ या एक से अधिक स्तंभ पर की जा सकती है। यह नंबर, स्ट्रिंग्स के साथ-साथ डेट डेटा प्रकारों पर भी किया जा सकता है।
MySQL में ORDER BY क्या है?
MySQL ORDER BY का उपयोग क्रमबद्ध तरीके से डेटा को सॉर्ट करने के लिए SELECT क्वेरी के साथ किया जाता है। MySQL ORDER BY क्लॉज का उपयोग क्वेरी परिणाम सेट को आरोही या अवरोही क्रम में सॉर्ट करने के लिए किया जाता है।
SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
यहां
- " सेलेक्ट स्टेटमेंट ..." रेगुलर सेलेक्ट क्वेरी है
- "।" विकल्पों का प्रतिनिधित्व करता है
- "" WHERE की स्थिति | GROUP BY `field_name (s)` HAVING स्थिति " क्वेरी परिणाम सेट को फ़िल्टर करने के लिए उपयोग की जाने वाली वैकल्पिक स्थिति है।
- "ORDER BY" क्वेरी परिणाम सेट सॉर्टिंग करता है
- "[ASC | DESC]" कीवर्ड का उपयोग आरोही या अवरोही क्रम में परिणाम सेट को क्रमबद्ध करने के लिए किया जाता है। नोट ASC को डिफ़ॉल्ट के रूप में उपयोग किया जाता है।
DESC और ASC कीवर्ड क्या हैं?
|
|
इसका उपयोग क्वेरी परिणामों को एक शीर्ष से नीचे शैली में सॉर्ट करने के लिए किया जाता है। |
इसका उपयोग क्वेरी परिणामों को नीचे से शीर्ष शैली में सॉर्ट करने के लिए किया जाता है |
डेट डेटा प्रकारों पर काम करते समय, सूची में सबसे ऊपर की तारीख दिखाई जाती है। |
। दिनांक प्रकारों पर काम करते समय, नवीनतम तारीख सूची के शीर्ष पर दिखाई जाती है। |
संख्यात्मक डेटा प्रकारों के साथ काम करते समय, सूची के शीर्ष पर सबसे कम मान दिखाए जाते हैं। |
जब संख्यात्मक डेटा प्रकारों के साथ काम करते हैं, तो उच्चतम मान क्वेरी परिणाम सेट के शीर्ष पर दिखाए जाते हैं। |
जब स्ट्रिंग डेटा प्रकारों के साथ काम करते हैं, तो क्वेरी परिणाम सेट को अक्षर A से शुरू होने वाले अक्षर Z से ऊपर की ओर क्रमबद्ध किया जाता है। |
जब स्ट्रिंग डेटा प्रकारों के साथ काम करते हैं, तो क्वेरी परिणाम सेट को अक्षर Z से शुरू होने वाले अक्षर A से क्रमबद्ध किया जाता है। |
SQL DESC और ASC दोनों कीवर्ड्स को सेलेक्ट स्टेटमेंट और MySQL ORDER BY क्लॉज के साथ मिलकर उपयोग किया जाता है।
DESC और ASC सिंटैक्स
SQL DESC सॉर्ट कीवर्ड में निम्न मूल सिंटैक्स होता है।
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
यहां
- सेलेक्ट करें {fieldName (s) | *} सारणी से (खेतों) तालिका और नाम जिसमें फ़ील्ड और तालिका है जिसमें से परिणाम प्राप्त करना है।
- [जहां पर स्थिति] वैकल्पिक है, लेकिन दी गई स्थिति के अनुसार डेटा को फ़िल्टर करने के लिए उपयोग किया जा सकता है।
- ORDER BY फ़ील्डनाम (s) अनिवार्य है और वह फ़ील्ड है जिस पर छँटाई करनी है। MySQL DESC कीवर्ड निर्दिष्ट करता है कि छँटाई अवरोही क्रम में होनी है।
- [लिमिट] वैकल्पिक है, लेकिन इसका उपयोग क्वेरी परिणाम सेट से लौटे परिणामों की संख्या को सीमित करने के लिए किया जा सकता है।
उदाहरण:
आइए अब एक व्यावहारिक उदाहरण देखें -
SELECT * FROM members;
Myflixdb के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से हमें नीचे दिखाए गए निम्न परिणाम मिलते हैं।
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 |
मान लीजिए कि विपणन विभाग चाहता है कि सदस्यों का विवरण जन्म तिथि के घटते क्रम में व्यवस्थित हो। इससे उन्हें समय पर फैशन में जन्मदिन की बधाई भेजने में मदद मिलेगी। हम नीचे की तरह एक क्वेरी निष्पादित करके उक्त सूची प्राप्त कर सकते हैं -
SELECT * FROM members ORDER BY date_of_birth DESC;
Myflixdb के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से हमें नीचे दिखाए गए निम्न परिणाम मिलते हैं।
आरोही क्रम में समान क्वेरी
चयन करें * सदस्यों से ORDER तक date_of_birth ASC
नोट: पूर्ण मानों का अर्थ है कोई मान नहीं (शून्य या रिक्त स्ट्रिंग नहीं)। उनके द्वारा छांटे गए तरीके को ध्यान से देखें।
और ज्यादा उदाहरण
आइए निम्नलिखित स्क्रिप्ट पर विचार करें जो सभी सदस्य रिकॉर्ड को सूचीबद्ध करती है।
SELECT * FROM `members`;
उपरोक्त स्क्रिप्ट को निष्पादित करने से नीचे दिखाए गए निम्न परिणाम मिलते हैं।
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 |
मान लें कि हम एक सूची प्राप्त करना चाहते हैं जो कि लिंग क्षेत्र का उपयोग करके निर्धारित क्वेरी परिणाम को सॉर्ट करता है, तो हम नीचे दिखाए गए स्क्रिप्ट का उपयोग करेंगे।
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 |
"महिला" सदस्यों को पहली बार "पुरुष" सदस्यों द्वारा प्रदर्शित किया गया है, इसका कारण यह है कि जब ORDER BY DESC क्लॉज का उपयोग ASC या MySQL DESC कीवर्ड को निर्दिष्ट किए बिना किया जाता है, तो डिफ़ॉल्ट रूप से, MySQL ने एक आरोही क्रम में सेट किए गए क्वेरी परिणाम को सॉर्ट किया है।
आइए अब एक उदाहरण देखें जो दो स्तंभों का उपयोग करके छंटाई करता है ; पहला वाला डिफ़ॉल्ट रूप से आरोही क्रम में क्रमबद्ध है जबकि दूसरा स्तंभ अवरोही क्रम में क्रमबद्ध है ।
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को Myflixdb के विरुद्ध निष्पादित करने से निम्न परिणाम मिलते हैं।
लिंग स्तंभ को डिफ़ॉल्ट रूप से आरोही क्रम में क्रमबद्ध किया गया था जबकि जन्म काल की तिथि को स्पष्ट रूप से अवरोही क्रम में क्रमबद्ध किया गया था
हम DESC और ASC का उपयोग क्यों कर सकते हैं?
मान लीजिए कि हम सामने के डेस्क से प्रश्नों का उत्तर देने में मदद के लिए वीडियो लाइब्रेरी सदस्य के लिए भुगतान इतिहास प्रिंट करना चाहते हैं, तो क्या यह अधिक तर्कसंगत नहीं होगा कि हाल के भुगतान से शुरू होने वाले अवरोही कालानुक्रमिक क्रम में भुगतान मुद्रित हो?
DESC इन एसक्यूएल एक ऐसा कीवर्ड है जो ऐसी स्थितियों में काम आता है। हम एक क्वेरी लिख सकते हैं जो भुगतान तिथि का उपयोग करके अवरोही क्रम में सूची को सॉर्ट करती है।
मान लीजिए कि विपणन विभाग श्रेणी के आधार पर फिल्मों की एक सूची प्राप्त करना चाहता है, जो सदस्य यह तय करने के लिए उपयोग कर सकते हैं कि फिल्में किराए पर लेते समय पुस्तकालय में कौन सी फिल्में उपलब्ध हैं, तो क्या फिल्म श्रेणी के नाम और शीर्षक को आरोही में देखना अधिक तर्कसंगत नहीं होगा ताकि सदस्य सूची से जानकारी को जल्दी से देख सकते हैं?
ऐसी स्थितियों में एएससी कीवर्ड काम में आता है; हम फिल्मों की सूची को श्रेणी नाम और मूवी शीर्षक से क्रमबद्ध क्रम में प्राप्त कर सकते हैं।
सारांश
- क्रमबद्ध क्वेरी परिणामों को फिर से या अवरोही क्रम में सेट किए गए क्वेरी परिणाम से लौटी पंक्तियों को फिर से व्यवस्थित कर रहा है।
- SQL में DESC कीवर्ड, का उपयोग अवरोही क्रम में निर्धारित क्वेरी परिणाम को सॉर्ट करने के लिए किया जाता है।
- ASC कीवर्ड का उपयोग आरोही क्रम में सेट किए गए क्वेरी परिणाम को सॉर्ट करने के लिए किया जाता है।
- DESC और ASC दोनों ORDER BY कीवर्ड के साथ मिलकर काम करते हैं। उनका उपयोग अन्य कीवर्ड जैसे WHERE क्लॉज और LIMIT के साथ संयोजन में भी किया जा सकता है
- जब तक स्पष्ट रूप से निर्दिष्ट नहीं किया गया है तब तक ORDER के लिए डिफ़ॉल्ट ASC है।