SQLite स्ट्रिंग फ़ंक्शन: REPLACE, SUBSTR, TRIM, ROUND
SQLite डिफ़ॉल्ट रूप से अंतर्निहित कार्यों की एक सूची से सुसज्जित है SQLite लाइब्रेरी। आप कोर फ़ंक्शन का विस्तार करने के लिए सी भाषा का उपयोग करके कुछ अन्य कस्टम फ़ंक्शन भी जोड़ सकते हैं।
ध्यान दें कि, निम्नलिखित सभी उदाहरणों के लिए, आपको sqlite3.exe चलाना होगा और नमूना डेटाबेस से कनेक्शन खोलना होगा:
चरण 1) इस चरण में,
- मेरा कंप्यूटर खोलें और निम्नलिखित निर्देशिका पर जाएँ “सी:\sqlite" और फिर
- खुला "sqlite3.exe"
चरण 2) डेटाबेस खोलें “ट्यूटोरियल्ससैंपलDB.db"निम्न आदेश द्वारा:
अब आप कोई भी काम करने के लिए तैयार हैं सवाल और निम्नलिखित अनुभागों में प्रयुक्त किसी भी क्वेरी को आज़माएं.
किसी स्ट्रिंग की लंबाई ज्ञात करना SQLite
स्ट्रिंग की लंबाई ज्ञात करने के लिए LENGTH(X) का उपयोग करें जहाँ X एक स्ट्रिंग मान है। यदि X एक शून्य मान है, तो लंबाई फ़ंक्शन शून्य मान लौटाएगा।
आप संख्यात्मक मान की लंबाई जानने के लिए संख्यात्मक मानों के साथ लंबाई फ़ंक्शन का भी उपयोग कर सकते हैं।
उदाहरण:
निम्नलिखित उदाहरण में, हम LENGTH फ़ंक्शन सिंटैक्स को निम्नलिखित मानों के साथ आज़माएंगे:
SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);
इससे आपको मिलेगा:
परिणाम निम्नलिखित है:
- LENGTH('A string') 8 लौटाता है जो स्ट्रिंग “A string” की लंबाई है।
- LENGTH(NULL) शून्य लौटाता है.
- LENGTH(20) 2 लौटाता है, क्योंकि 20 2 लम्बाई लंबा है।
- LENGTH(20.5) 4 लौटाता है; फ़्लोटिंग पॉइंट “.” को एक वर्ण के रूप में गिना जाता है, इसलिए आपके पास चार वर्ण होंगे - 3 वर्ण जो संख्याओं की लंबाई हैं। फ़्लोटिंग पॉइंट “.” के लिए एक और वर्ण जोड़ें।
ऊपरी फ़ंक्शन और निचले फ़ंक्शन के साथ केस बदलना
UPPER(X) वही x स्ट्रिंग लौटाएगा, लेकिन यह सभी स्ट्रिंग वर्णों को बड़े अक्षरों में दर्शाएगा।
LOWER(X) वही x स्ट्रिंग लौटाएगा, लेकिन यह सभी स्ट्रिंग वर्णों को छोटे वर्णों में दर्शाएगा।
यदि आप UPPER और LOWER को शून्य मान देते हैं तो वे शून्य मान लौटाते हैं।
यदि आप UPPER या LOWER को संख्यात्मक मान देते हैं, तो दोनों ही सटीक संख्यात्मक मान लौटाएंगे।
उदाहरण:
SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);
इससे आपको मिलेगा:
परिणाम निम्नलिखित है:
- UPPER('a string') स्ट्रिंग लौटाता है “एक स्ट्रिंग” बड़े अक्षर में “एक स्ट्रिंग".
- LOWER('A STRING') स्ट्रिंग लौटाता है “एक स्ट्रिंग” छोटे अक्षर में “एक स्ट्रिंग".
- UPPER(20), LOWER(20) एक ही संख्या लौटाते हैं, क्योंकि उनका संख्याओं पर कोई प्रभाव नहीं पड़ता है।
- UPPER(NULL), LOWER(NULL) शून्य लौटाते हैं क्योंकि हमने उन्हें शून्य मान दिया है।
SQLite SUBSTR फ़ंक्शन
SUBSTR फ़ंक्शन एक विशिष्ट स्थिति से शुरू होकर, स्ट्रिंग की एक विशिष्ट संख्या लौटाता है। आप फ़ंक्शन में तीन ऑपरेंड पास कर सकते हैं, जैसे कि “सबस्ट्र(एक्स,वाई,जेड)" के रूप में निम्नानुसार:
- X पार्स करने के लिए स्ट्रिंग लिटरल या स्ट्रिंग कॉलम है। आप एक लिटरल वैल्यू (स्थिर वैल्यू) या कॉलम नाम पास कर सकते हैं, और इस मामले में, वैल्यू कॉलम के वैल्यू से पढ़ी जाएगी।
- Y वह प्रारंभिक स्थिति है जहां से स्ट्रिंग को घटाया जाता है।
- Z विशिष्ट स्थिति Y से शुरू करके पार्स करने के लिए वर्णों की संख्या है। यह संख्या वैकल्पिक है, आप इसे अनदेखा कर सकते हैं, और इस मामले में, SQLite स्थिति Y से शुरू करके स्ट्रिंग को घटाएगा और स्ट्रिंग के अंत तक बताएगा।
उदाहरण:
निम्नलिखित क्वेरी में, हम छात्रों के नाम के दूसरे अक्षर से शुरू होने वाले 4 अक्षर प्राप्त करने के लिए SUBSTR फ़ंक्शन का उपयोग करेंगे:
SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2) FROM Students;
इससे आपको मिलेगा:
- SUBSTR(छात्रनाम, 2, 4) स्ट्रिंग को सबस्ट्रिंग करें “छात्रनाम” दूसरे अक्षर से शुरू करके अगले 4 अक्षर लौटाएँ।
- हालाँकि, समारोह में SUBSTR(छात्रनाम, 2) हमने लौटाए जाने वाले वर्णों के लिए कोई संख्या निर्दिष्ट नहीं की, इसीलिए SQLite “ में शेष सभी अक्षर लौटा दिए गएछात्रनाम” दूसरे स्थान से शुरू करते हुए।
स्ट्रिंग के भागों को बदलना SQLite रिप्लेस फ़ंक्शन
REPLACE का प्रयोग प्रत्येक स्ट्रिंग को किसी अन्य स्ट्रिंग से प्रतिस्थापित करने के लिए किया जाता है।
REPLACE(X, Y, Z) – X इनपुट स्ट्रिंग लिटरल या कॉलम है। Y वह स्ट्रिंग है जिसे स्ट्रिंग Z से बदलना है। ध्यान दें कि यह स्ट्रिंग Y की किसी भी घटना को Z से बदल देगा, सिर्फ़ एक को नहीं।
उदाहरण:
निम्नलिखित क्वेरी में, हम स्ट्रिंग की सभी घटनाओं को प्रतिस्थापित करेंगे “xx” स्ट्रिंग के साथ “SQLite"
SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');
यह आपको देगा
- रिप्लेस फ़ंक्शन ने सभी स्ट्रिंग्स को प्रतिस्थापित कर दिया “xx” स्ट्रिंग के साथ “SQLite".
- तो आउटपुट होगा "SQLite बहुत हल्का है, SQLite सीखना आसान है”।
रिक्त स्थानों को ट्रिम करना SQLite TRIM फ़ंक्शन
TRIM स्ट्रिंग के आरंभ या अंत से रिक्त स्थान हटाता है। यह स्ट्रिंग के बीच में कोई रिक्त स्थान नहीं हटाएगा, केवल आरंभ या अंत से हटाएगा।
उदाहरण:
निम्नलिखित क्वेरी में, हम स्ट्रिंग के आरंभ और अंत से रिक्त स्थानों को हटाने के लिए TRIM फ़ंक्शन का उपयोग करेंगे।
ध्यान दें कि, संयोजन ऑपरेटर “||” का उपयोग स्ट्रिंग के अंत में एक अतिरिक्त “;” जोड़ने के लिए किया जाता है। आपको यह दिखाने के लिए कि काली विंडो में खाली स्थान हटा दिए गए थे।
SELECT TRIM(' SQLite is easy to learn ') || ';';
इससे आपको मिलेगा:
- ध्यान दें कि कैसे स्ट्रिंग के आरंभ और अंत से रिक्त स्थान हटा दिए गए हैं, तथा अंत में ' ; ' से प्रतिस्थापित कर दिया गया है।
निरपेक्ष मानों को पढ़ना SQLite एबीएस फ़ंक्शन
ABS फ़ंक्शन संख्यात्मक मान का निरपेक्ष मान लौटाता है। निरपेक्ष मान वह संख्यात्मक मान है जिसमें कोई धनात्मक या ऋणात्मक चिह्न नहीं होता। ABS(X) X के मान के आधार पर निम्न प्रकार से मान लौटाता है:
- X का निरपेक्ष मान यदि X एक संख्यात्मक मान है।
- यदि X एक शून्य मान है तो यह एक शून्य मान है।
- यदि X एक स्ट्रिंग है तो "0.0" मान.
उदाहरण:
निम्नलिखित क्वेरी में, हम ABS फ़ंक्शन का उपयोग करके एक स्ट्रिंग, एक संख्या और एक शून्य मान का निरपेक्ष मान प्राप्त करने का प्रयास करेंगे:
SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);
इससे आपको मिलेगा:
परिणाम निम्नलिखित हैं:
- ABS(-2), ABS(+2) 2 लौटाता है, क्योंकि 2 “-2” और “+2” दोनों के लिए निरपेक्ष मान है।
- ABS('a string') “0.0” लौटाता है क्योंकि आपने संख्यात्मक मान नहीं बल्कि एक स्ट्रिंग मान पारित किया है।
- ABS(null) null लौटाता है क्योंकि आपने इसके लिए null मान पारित किया है।
ROUND फ़ंक्शन के साथ मानों को पूर्णांकित करना SQLite
दशमलव संख्याएँ वे संख्याएँ होती हैं जिन पर फ़्लोटिंग पॉइंट “.” होता है, उदाहरण के लिए, “20.5”, “8.65”। फ़्लोटिंग पॉइंट के बाईं ओर के भाग को पूर्णांक भाग कहा जाता है, और फ़्लोटिंग पॉइंट के दाईं ओर के भाग को दशमलव भाग कहा जाता है।
पूर्णांक संख्याएँ वे संख्याएँ होती हैं जिन पर कोई फ़्लोटिंग पॉइंट नहीं होता। उदाहरण के लिए, “20”, “8”.
ROUND(X) दशमलव मानों या स्तंभ X को केवल पूर्णांक संख्याओं में परिवर्तित करता है। पूर्णांक भाग जो दशमलव बिंदु के बाईं ओर का भाग है, उसे वापस कर दिया जाएगा, और दशमलव बिंदु के दाईं ओर के सभी अंक हटा दिए जाएंगे।
उदाहरण:
निम्नलिखित क्वेरी में हम विभिन्न विकल्पों के साथ ROUND फ़ंक्शन का प्रयास करेंगे:
SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');
इससे आपको मिलेगा:
परिणाम निम्नलिखित है:
- ROUND(12.4354354) – मान “12” लौटाता है, क्योंकि आपने अंकों की संख्या निर्दिष्ट नहीं की है। इसलिए, SQLite सभी दशमलव भाग हटा दिए गए.
- ROUND(12.4354354, 2) - मान "12.44" लौटाता है, क्योंकि आपने पूर्णांक बनाने के लिए केवल 2 अंक निर्दिष्ट किए हैं जो दशमलव बिंदु के दाईं ओर से दो अंक हैं।
- ROUND(NULL) - शून्य लौटाता है क्योंकि आपने इसमें शून्य मान पारित किया है।
- ROUND('a string') – मान “0.0” लौटाता है क्योंकि आपने इसमें एक स्ट्रिंग मान पास किया है।
TYPEOF फ़ंक्शन के साथ अभिव्यक्ति का डेटा प्रकार ढूँढना
यदि आप किसी कॉलम या शाब्दिक मान का प्रकार जानना चाहते हैं, तो आप ऐसा करने के लिए TYPEOF फ़ंक्शन का उपयोग कर सकते हैं।
TYPEOF(X) फ़ंक्शन, अपने नाम से, अभिव्यक्ति X का डेटा प्रकार लौटाता है। यह X के डेटा प्रकार को इंगित करने वाला एक स्ट्रिंग मान लौटाता है। यह डेटा प्रकारों के आधार पर मान लौटाता है, चाहे वह "NULL" मान, वास्तविक, पाठ, पूर्णांक, ..., आदि हो।
उदाहरण:
निम्नलिखित क्वेरी में हम विभिन्न प्रकार के शाब्दिक मानों के साथ TYPEOF फ़ंक्शन का प्रयास करेंगे:
SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');
इससे आपको मिलेगा:
परिणाम निम्नानुसार हैं:
- TYPEOF(null) - null लौटाता है क्योंकि आपने इसमें null मान पास किया है।
- TYPEOF(12) – एक पूर्णांक लौटाएँ क्योंकि 12 एक पूर्णांक संख्या है।
- TYPEOF(12.5) – REAL लौटाता है क्योंकि 12.5 एक वास्तविक संख्या है।
- TYPEOF('a string') – पाठ लौटाता है क्योंकि "एक स्ट्रिंग" एक पाठ है।
अंतिम डाला गया रिकॉर्ड ढूँढना SQLite LAST_INSERT_ROWID
SQLite सभी तालिकाओं में सभी पंक्तियों के लिए एक पूर्णांक कुंजी (आईडी) निर्दिष्ट करता है। इस संख्या का उपयोग इन पंक्तियों को विशिष्ट रूप से पहचानने के लिए किया जाता है।
जब आप किसी तालिका में एक नई पंक्ति INSERT करते हैं, SQLite rowid को एक अद्वितीय मान प्रदान करेगा.
यदि तालिका में केवल एक कॉलम पर प्राथमिक कुंजी घोषित है और वह कॉलम डेटा प्रकार INTEGER का है, तो इस कॉलम मान का उपयोग rowid के रूप में किया जाएगा।
LAST_INSERT_ROWID() फ़ंक्शन डेटाबेस में किसी भी तालिका में अंतिम सम्मिलित पंक्ति का ROW_ID लौटाता है। ध्यान दें कि यह कोई ऑपरेंड नहीं लेता है।
उदाहरण:
निम्नलिखित उदाहरण में हम LAST_INSERT_ROWID() फ़ंक्शन को निम्नानुसार चलाएंगे:
SELECT LAST_INSERT_ROWID();
इससे आपको मिलेगा:
- LAST_INSERT_ROWID() 0 लौटाता है क्योंकि वर्तमान डेटाबेस कनेक्शन में किसी भी तालिका में कोई पंक्ति सम्मिलित नहीं है।
अब, आइए एक नया छात्र डालें और insert कथन के बाद LAST_INSERT_ROWID() फ़ंक्शन को फिर से चलाएँ, इस तरह:
INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12'); SELECT LAST_INSERT_ROWID();
इससे आपको मिलेगा:
- जब हम 11 आईडी वाले नए छात्र को सम्मिलित करते हैं, तो LAST_INSERT_ROWID() अंतिम सम्मिलित पंक्ति आईडी लौटाएगा जो 11 है।
अपने संस्करण प्राप्त करना SQLite पुस्तकालय
अपने संस्करण को प्राप्त करने के लिए SQLite लाइब्रेरी में, आपको SQLITE_VERSION() फ़ंक्शन को कॉल करना होगा।
उदाहरण:
आइये जानें इसका संस्करण क्या है? SQLite हम निम्नलिखित कमांड चलाकर इसका उपयोग कर रहे हैं:
SELECT SQLITE_VERSION();
इससे आपको मिलेगा:
SQLITE_VERSION() 3.9.2 लौटाता है जो कि संस्करण है SQLite हम उपयोग कर रहे हैं.
उपयोगकर्ता-परिभाषित फ़ंक्शन और समग्र उपयोगकर्ता-परिभाषित फ़ंक्शन बनाना
कुछ उपयोगकर्ताओं के लिए, SQLite कोर फ़ंक्शन सीमित हैं। उन्हें अपनी कस्टम ज़रूरतों के लिए कस्टम फ़ंक्शन जोड़ने की ज़रूरत हो सकती है।
SQLite उपयोगकर्ता-परिभाषित फ़ंक्शन बनाने का समर्थन नहीं करता है। अन्य डेटाबेस प्रबंधन प्रणालियों के विपरीत, आप उपयोगकर्ता-परिभाषित फ़ंक्शन नहीं बना सकते हैं SQLite सीधे.
हालाँकि, आप C#, C, PHP, या जैसी प्रोग्रामिंग भाषाओं का उपयोग करके एक फ़ंक्शन बना सकते हैं C++ और उस फ़ंक्शन को कोर के साथ जोड़ दिया SQLite में कार्य करता है SQLite लाइब्रेरी में ही, “sqlite3_क्रिएट_फ़ंक्शन” फ़ंक्शन का उपयोग करें। फिर आप उन्हें अपने डेटाबेस में पुनः उपयोग कर सकते हैं।
उदाहरण:
निम्नलिखित उदाहरण में हम एक उपयोगकर्ता परिभाषित फ़ंक्शन बनाएंगे C# प्रोग्रामिंग भाषा और इसे जोड़ें SQLite कार्य:
[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)] public class DoubleValue: SQLiteFunction { public override object Invoke(object[] args) { return args[0] * 2; } }
यह कोड स्निपेट में लिखा गया है C# प्रोग्रामिंग भाषा; यह C# कोड का उपयोग करके C# फ़ंक्शन बनाता है।
फ़ंक्शन का नाम होगा “Doubleवैल्यू ” यह एक पैरामीटर लेता है और उसके मान को 2 से गुणा करके लौटाता है।
ध्यान दें कि C# स्वचालित रूप से इस फ़ंक्शन को जोड़ता है SQLiteआपको बस इस कोड को संकलित करके चलाना है। फिर C# उसी नाम वाले फ़ंक्शन को सूची में जोड़ देगा। SQLite फ़ंक्शन। फिर आप इस फ़ंक्शन का उपयोग कर सकते हैं SQLite.
उसी तरह C#, C, PHP, या जैसी प्रोग्रामिंग भाषाओं का उपयोग करना C++, आप समग्र उपयोगकर्ता-परिभाषित फ़ंक्शन भी बना सकते हैं। जिनका उपयोग समग्र फ़ंक्शन को विस्तारित करने के लिए किया जाता है SQLite और उनका उपयोग कस्टम एग्रीगेट फ़ंक्शन बनाने के लिए करें।
सारांश
- SQLite जैसा कि हमने देखा, बिल्ट-इन फ़ंक्शन का एक व्यापक सेट प्रदान करता है जो डेटाबेस की तालिकाओं और स्तंभों के साथ काम करना आसान बनाता है। आप इन फ़ंक्शन का उपयोग कॉलम के साथ-साथ अपने SQL क्वेरीज़ में किसी भी अभिव्यक्ति के भीतर शाब्दिक मानों के साथ कर सकते हैं।
- आप संख्यात्मक मान की लंबाई जानने के लिए संख्यात्मक मानों के साथ लंबाई फ़ंक्शन का भी उपयोग कर सकते हैं।
- यदि आप UPPER और LOWER को शून्य मान देते हैं तो वे शून्य मान लौटाते हैं।
- SUBSTR फ़ंक्शन एक विशिष्ट स्थिति से प्रारंभ करते हुए, स्ट्रिंग की एक विशिष्ट संख्या लौटाता है।
- REPLACE का प्रयोग प्रत्येक स्ट्रिंग को किसी अन्य स्ट्रिंग से प्रतिस्थापित करने के लिए किया जाता है।
- TRIM स्ट्रिंग के आरंभ या अंत से रिक्त स्थान हटा देता है।
- ABS फ़ंक्शन संख्यात्मक मान का निरपेक्ष मान लौटाता है।
- ROUND(X) दशमलव मानों या स्तंभ X को केवल पूर्णांक संख्याओं में परिवर्तित करता है।
- TYPEOF(X) फ़ंक्शन, अपने नाम से, अभिव्यक्ति X का डेटा प्रकार लौटाता है।
- LAST_INSERT_ROWID() फ़ंक्शन डेटाबेस में किसी भी तालिका में अंतिम सम्मिलित पंक्ति की ROW_ID लौटाता है।