क्वेरीज़ के साथ काम करते समय, कभी-कभी हमें अपने डेटाबेस से कच्चे डेटा को लेना होता है और इसे किसी अन्य तरीके से पुनः फॉर्मेट करना होता है ताकि इसका उपयोग कहीं और किया जा सके। इस लेख में, हम MySQL में कुछ फंक्शन्स को देखते हैं जो हमें अपनी क्वेरीज़ में स्ट्रिंग टाइप्स के साथ काम करने में मदद करते हैं।
स्कीमा बनाना
यह खंड इस पोस्ट में कवर किए गए SQL कॉन्सेप्ट्स को स्पष्ट करने के लिए एक त्वरित स्कीमा तैयार करने के लिए समर्पित है। हम फंक्शन्स के लिए MySQL का उपयोग करते हैं – मैं SQL Fiddle का उपयोग करके सिंटैक्स का अभ्यास करने और अपनी खोज क्वेरीज़ चलाने की सलाह देता हूं। वहां, आप अन्य रिलेशनल डेटाबेस में अपनी क्वेरीज़ भी टेस्ट कर सकते हैं।
टेबल बनाएं और मान डालें
CREATE TABLE birthdays ( name varchar(200) NOT NULL, birthday varchar(10) NOT NULL ); INSERT INTO birthdays (name, birthday) VALUES("Jane", "11/20/1993"); INSERT INTO birthdays (name, birthday) VALUES("Duncan", "01/15/1987"); INSERT INTO birthdays (name, birthday) VALUES("Lucas", "07/21/1996"); INSERT INTO birthdays (name, birthday) VALUES("Alexa", "12/31/1988");
ऊपर की चार लाइनें "birthdays" टेबल को "name" और "birthday" कॉलम के साथ बनाती हैं। बाकी डेटाबेस में मान डालते हैं। हम इसका उपयोग अपने क्वेरी स्टेटमेंट्स बनाने के लिए करते हैं।
यदि हम अपनी टेबल पर एक बुनियादी क्वेरी चलाते हैं, तो यह क्वेरी स्टेटमेंट और परिणाम इस तरह दिखेंगे:
SELECT name, birthday FROM birthdays;
परिणाम:
| name | birthday |
| Chris | 11/20/1993 |
| Duncan | 01/15/1987 |
| Lucas | 07/21/1996 |
| Alexa | 12/31/1988 |
क्वेरी स्टेटमेंट्स बनाना
CONCAT()
CONCAT() फंक्शन आर्गुमेंट्स को एक स्ट्रिंग में जोड़ने के बाद परिणाम लौटाता है। कम से कम एक आर्गुमेंट होता है, लेकिन कई फंक्शन्स हो सकते हैं। फंक्शन में आर्गुमेंट्स निम्न में से कोई भी हो सकते हैं:
- बाइनरी स्ट्रिंग – यदि कोई आर्गुमेंट बाइनरी स्ट्रिंग है, तो रिटर्न मान बाइनरी स्ट्रिंग है।
- नॉन-बाइनरी स्ट्रिंग – एक सामान्य स्ट्रिंग मान। यदि सभी आर्गुमेंट्स नॉन-बाइनरी स्ट्रिंग मान हैं, तो
CONCAT()नॉन-बाइनरी स्ट्रिंग मान लौटाता है। - न्यूमेरिक – यदि एक इनपुट न्यूमेरिक प्रकार का है, तो इसे अन्य आर्गुमेंट्स के साथ जोड़ने से पहले नॉन-बाइनरी स्ट्रिंग में बदल दिया जाता है।
- NULL – यदि NULL मान हैं, तो उन मानों को केवल अनदेखा किया जाता है।
औपचारिक सिंटैक्स इस प्रकार है:
CONCAT( <str value 1>, <str value 2>, [ … <str value N> ]);
हम CONCAT कीवर्ड का उपयोग कोष्ठक के साथ करते हैं यह इंगित करने के लिए कि यह एक फंक्शन है। कोष्ठक के अंदर N इनपुट स्ट्रिंग्स हैं। यहाँ MySQL का उपयोग करके यह कैसा दिखता है:
SELECT CONCAT(name, " ", birthday) AS Result FROM birthdays;
हम name, एक स्पेस कैरेक्टर, और birthday के कंकेटनेशन से रिटर्न मान को "SELECT" करते हैं और इसे "Result" नाम देते हैं।
इस क्वेरी का परिणाम है:
| Result |
| Chris 11/20/1993 |
| Duncan 01/15/1987 |
| Lucas 07/21/1996 |
| Alexa 12/31/1988 |
इस परिणाम की तुलना बिल्डिंग द स्कीमा सेक्शन में हमारे द्वारा टेस्ट किए गए मूल क्वेरी स्टेटमेंट से करें। यह कैसे भिन्न है? दिए गए तरीके के विपरीत इस तरह डेटा सेट करने का क्या फायदा होगा?
इसका कोई सही या गलत जवाब नहीं है। यह सब इस बात पर निर्भर करता है कि आप अपने एप्लिकेशन में इस डेटा पर कैसे भरोसा करते हैं।
CONCAT_WS()
CONCAT_WS() फंक्शन CONCAT() फंक्शन के समान है, हालांकि, एक आवश्यक पहला आर्गुमेंट है जो मूल CONCAT() फंक्शन में नहीं है। यह आर्गुमेंट सेपरेटर है जो फंक्शन में बाकी आर्गुमेंट्स के बीच जाता है। CONCAT() के बाकी नियम लागू होते हैं।
औपचारिक सिंटैक्स इस प्रकार है:
CONCAT_WS(<separator>, <str value 1>, <str value 2>, [ … <str value N> ]);
हम CONCAT_WS() कीवर्ड का उपयोग कोष्ठक के साथ करते हैं यह इंगित करने के लिए कि यह एक फंक्शन है। कोष्ठक के अंदर पहला आर्गुमेंट सेपरेटर है जो प्रत्येक इनपुट स्ट्रिंग के बीच जाता है। बाकी आर्गुमेंट्स वे स्ट्रिंग्स हैं जिन्हें हम एक साथ जोड़ते हैं। यहाँ MySQL का उपयोग करके एक नज़र:
SELECT CONCAT_WS(", ", name, birthday) AS Result FROM birthdays;
परिणाम पहली आर्गुमेंट के साथ अन्य आर्गुमेंट्स में से प्रत्येक के बीच स्ट्रिंग कंकेटनेशन है।
| Result |
| Chris, 11/20/1993 |
| Duncan 01/15/1987 |
| Lucas 07/21/1996 |
| Alexa 12/31/1988 |
CONCAT() फंक्शन की तरह, CONCAT_WS() फंक्शन केवल एक कॉलम लौटाता है, जिसे Result नाम दिया गया है, जहां मान इनपुट स्ट्रिंग(स) को सेपरेटर कैरेक्टर के साथ कंकेटनेट किया गया है।
निष्कर्ष
इस लेख में, हम MySQL में इसके उपयोग के संबंध में SQL CONCAT() और CONCAT_WS() फंक्शन्स को कवर करते हैं। ध्यान रखें कि अन्य रिलेशनल डेटाबेस का उपयोग करते समय सिंटैक्स में मामूली अंतर हो सकते हैं क्योंकि उनके पास SQL का अपना स्वाद हो सकता है। फंक्शन की अवधारणा समान है, लेकिन इसे अलग तरह से शब्दबद्ध किया जा सकता है।