SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite आदेश द्वारा

सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite ORDER BY का उपयोग करके किसी क्वेरी के परिणाम सेट को कैसे सॉर्ट किया जाए खंड।

SQLite का परिचय ORDER BY खंड

SQLite एक अनिर्दिष्ट क्रम में तालिकाओं में डेटा संग्रहीत करता है। इसका मतलब है कि तालिका में पंक्तियाँ उस क्रम में हो भी सकती हैं और नहीं भी, जिस क्रम में उन्हें डाला गया था।

अगर आप SELECT . का इस्तेमाल करते हैं तालिका से डेटा क्वेरी करने के लिए कथन, परिणाम सेट में पंक्तियों का क्रम अनिर्दिष्ट है।

परिणाम सेट को क्रमबद्ध करने के लिए, आप ORDER BY जोड़ें SELECT . का खंड बयान इस प्रकार है:

SELECT
   select_list
FROM
   table
ORDER BY
    column_1 ASC,
    column_2 DESC;Code language: SQL (Structured Query Language) (sql)

ORDER BY क्लॉज FROM . के बाद आता है खंड। यह आपको आरोही या अवरोही क्रम में एक या अधिक स्तंभों के आधार पर परिणाम सेट को क्रमबद्ध करने की अनुमति देता है।

इस सिंटैक्स में, आप उस कॉलम का नाम रखते हैं जिसके द्वारा आप ORDER BY . के बाद सॉर्ट करना चाहते हैं खंड के बाद ASC या DESC कीवर्ड।

  • ASC कीवर्ड का अर्थ है आरोही।
  • और DESC कीवर्ड का अर्थ है अवरोही।

यदि आप ASC . निर्दिष्ट नहीं करते हैं या DESC कीवर्ड, SQLite ASC . का उपयोग करके परिणाम सेट को सॉर्ट करता है विकल्प। दूसरे शब्दों में, यह परिणाम सेट को डिफ़ॉल्ट रूप से आरोही क्रम में क्रमबद्ध करता है।

यदि आप परिणाम सेट को एकाधिक स्तंभों द्वारा क्रमबद्ध करना चाहते हैं, तो आप दो स्तंभों को अलग करने के लिए अल्पविराम (,) का उपयोग करते हैं। ORDER BY क्लॉज कॉलम या एक्सप्रेशन का उपयोग करके बाएं से दाएं पंक्तियों को सॉर्ट करता है। दूसरे शब्दों में, ORDER BY खंड सूची में पहले कॉलम का उपयोग करके पंक्तियों को क्रमबद्ध करता है। फिर, यह दूसरे कॉलम का उपयोग करके क्रमबद्ध पंक्तियों को क्रमबद्ध करता है, और इसी तरह।

आप एक कॉलम का उपयोग करके परिणाम सेट को सॉर्ट कर सकते हैं जो SELECT . की चयन सूची में प्रकट नहीं होता है खंड।

SQLite ORDER BY खंड उदाहरण

आइए देखें tracks प्रदर्शन के लिए नमूना डेटाबेस में तालिका।

मान लीजिए, आप नाम, मिलीसेकंड और एल्बम आईडी कॉलम से डेटा प्राप्त करना चाहते हैं, तो आप निम्न कथन का उपयोग करते हैं:

SELECT
	name,
	milliseconds, 
        albumid
FROM
	tracks;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

SELECT कथन जो ORDER BY . का उपयोग नहीं करता है क्लॉज एक परिणाम सेट देता है जो किसी भी क्रम में नहीं है।

मान लीजिए कि आप AlbumId . के आधार पर परिणाम सेट को सॉर्ट करना चाहते हैं कॉलम आरोही क्रम में, आप निम्नलिखित कथन का उपयोग करते हैं:

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	albumid ASC;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

अब परिणाम सेट को AlbumId . द्वारा क्रमबद्ध किया गया है स्क्रीनशॉट में दिखाए अनुसार बढ़ते क्रम में कॉलम।

SQLite ASC का उपयोग करता है डिफ़ॉल्ट रूप से इसलिए आप इसे उपरोक्त कथन में इस प्रकार छोड़ सकते हैं:

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	albumid;

इसे आज़माएं

मान लीजिए कि आप सॉर्ट किए गए परिणाम को सॉर्ट करना चाहते हैं (AlbumId . द्वारा) ) ऊपर Milliseconds . से अवरोही क्रम में स्तंभ। इस मामले में, आपको Milliseconds . जोड़ना होगा ORDER BY . के लिए कॉलम खंड इस प्रकार है:

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	albumid ASC,
        milliseconds DESC;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

SQLite पंक्तियों को AlbumId . के अनुसार क्रमित करता है पहले आरोही क्रम में कॉलम। फिर, यह Milliseconds . द्वारा सेट किए गए सॉर्ट किए गए परिणाम को सॉर्ट करता है अवरोही क्रम में कॉलम।

यदि आप AlbumId . के साथ एल्बम के ट्रैक देखते हैं 1, आप पाते हैं कि दो कथनों के बीच पटरियों का क्रम बदल जाता है।

SQLite ORDER BY स्तंभ स्थिति के साथ

कॉलम के नाम निर्दिष्ट करने के बजाय, आप ORDER BY में कॉलम की स्थिति का उपयोग कर सकते हैं खंड।

उदाहरण के लिए, निम्न कथन ट्रैक को albumid . दोनों के आधार पर क्रमबद्ध करता है (तीसरा कॉलम) और Milliseconds (दूसरा कॉलम) आरोही क्रम में।

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	 3,2;Code language: SQL (Structured Query Language) (sql)

इसे आज़माएं

नंबर 3 और 2 का मतलब AlbumId . है और Milliseconds SELECT . में दिखाई देने वाली कॉलम सूची में खंड।

NULL को क्रमित करना

डेटाबेस की दुनिया में, NULL विशेष है। यह दर्शाता है कि जानकारी गुम है या डेटा लागू नहीं है।

मान लीजिए आप किसी कलाकार के जन्मदिन को एक टेबल में स्टोर करना चाहते हैं। कलाकार के रिकॉर्ड को सहेजते समय, आपके पास जन्मदिन की जानकारी नहीं होती है।

डेटाबेस में अज्ञात जन्मदिन की जानकारी का प्रतिनिधित्व करने के लिए, आप एक विशेष तिथि का उपयोग कर सकते हैं जैसे 01.01.1900 या एक '' खाली स्ट्रिंग। हालांकि, ये दोनों मान स्पष्ट रूप से यह नहीं दिखाते हैं कि जन्मदिन अज्ञात है।

इस समस्या को हल करने के लिए NULL का आविष्कार किया गया था। यह इंगित करने के लिए कि जानकारी गुम है, एक विशेष मान का उपयोग करने के बजाय, NULL का उपयोग किया जाता है।

NULL विशेष है क्योंकि आप इसकी तुलना किसी अन्य मान से नहीं कर सकते। सीधे शब्दों में कहें, अगर जानकारी के दो टुकड़े अज्ञात हैं, तो आप उनकी तुलना नहीं कर सकते।

NULL की भी तुलना स्वयं से नहीं की जा सकती है; NULL अपने आप में बराबर नहीं है इसलिए NULL = NULL हमेशा गलत परिणाम देता है।

जब छँटाई की बात आती है, तो SQLite NULL को किसी भी अन्य मान से छोटा मानता है।

इसका अर्थ है कि यदि आप ASC का उपयोग करते हैं या जब आप DESC का उपयोग करते हैं तो परिणाम सेट के अंत में NULLs परिणाम सेट की शुरुआत में दिखाई देंगे।

SQLite 3.30.0 ने NULLS FIRST जोड़ा है और NULLS LAST ORDER BY . के विकल्प खंड। NULLS FIRST विकल्प निर्दिष्ट करता है कि NULLs परिणाम सेट की शुरुआत में दिखाई देंगे जबकि NULLS LAST विकल्प परिणाम सेट के अंत में NULLs रखें।

निम्न उदाहरण ORDER BY का उपयोग करता है संगीतकारों द्वारा ट्रैक को सॉर्ट करने के लिए क्लॉज:

SELECT 
    TrackId, 
    Name, 
    Composer 
FROM 
   tracks
ORDER BY 
   Composer;Code language: SQL (Structured Query Language) (sql)

सबसे पहले, आप देखते हैं कि परिणाम सेट की शुरुआत में एनयूएलएल दिखाई देते हैं क्योंकि SQLite उन्हें सबसे कम मान के रूप में मानता है। जब आप परिणाम को नीचे स्क्रॉल करते हैं, तो आपको अन्य मान दिखाई देंगे:

निम्न उदाहरण NULLS LAST का उपयोग करता है अन्य मानों के बाद NULLs रखने का विकल्प:

SELECT 
    TrackId, 
    Name, 
    Composer 
FROM 
    tracks
ORDER BY 
    Composer NULLS LAST;Code language: SQL (Structured Query Language) (sql)

यदि आप आउटपुट को नीचे स्क्रॉल करते हैं, तो आप देखेंगे कि परिणाम सेट के अंत में NULLs रखे गए हैं:

इस ट्यूटोरियल में, आपने सीखा है कि SQLite ORDER BY . का उपयोग कैसे किया जाता है एक एकल कॉलम, कई कॉलमों को आरोही और अवरोही क्रम में उपयोग करके परिणाम सेट को सॉर्ट करने के लिए क्लॉज।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉर्डोवा का उपयोग करके प्रोजेक्ट फ़ाइल में स्थानीय रूप से संग्रहीत स्क्लाइट डीबी फ़ाइल को कैसे एक्सेस और अपडेट करें [संपत्ति फ़ोल्डर]

  2. केवल एक तालिका कैसे बनाएं यदि यह SQLite में मौजूद नहीं है

  3. android.database.sqlite.SQLiteException:एस के पास:सिंटैक्स त्रुटि (कोड 1):,

  4. एक संपूर्ण SQLite डेटाबेस को एक SQL फ़ाइल में निर्यात करें

  5. SQLite में एक कॉलम के लिए एक डिफ़ॉल्ट मान सेट करें:डिफ़ॉल्ट बाधा