मुख्य सामग्री पर जाएँ

SQL स्ट्रिंग फ़ंक्शंस: शुरुआती मार्गदर्शिका

टेक्स्ट डेटा को कुशलतापूर्वक साफ़ और प्रोसेस करने के लिए SQL स्ट्रिंग फ़ंक्शंस का उपयोग कैसे करें, समझें।
· 7 मि॰ पढ़ें

AI के साथ खोजें

रिलेशनल डेटाबेस के साथ काम करते समय अक्सर अस्त-व्यस्त डेटा से निपटना पड़ता है। सबसे आम चुनौतियों में से एक है टेक्स्ट डेटा को साफ़ करना और प्रोसेस करना। सौभाग्य से, SQL शक्तिशाली स्ट्रिंग फ़ंक्शंस प्रदान करता है जो इस प्रक्रिया को बहुत अधिक कुशल बना सकते हैं, आपका समय और मेहनत बचाते हुए।

इस लेख में, हम सबसे महत्वपूर्ण SQL स्ट्रिंग फ़ंक्शंस का पता लगाने जा रहे हैं जो आपको टेक्स्ट डेटा को आसानी से साफ़ करने और संशोधित करने में मदद करेंगे। आइए शुरू करें!

SQL स्ट्रिंग फ़ंक्शंस क्या हैं?

SQL स्ट्रिंग फ़ंक्शंस इन-बिल्ट फ़ंक्शंस हैं जो हमें डेटाबेस में संग्रहीत टेक्स्ट डेटा में परिवर्तन और प्रोसेसिंग करने में सक्षम बनाते हैं। टेक्स्ट फ़ील्ड के सामान्य उदाहरणों में नाम, विवरण और पते शामिल हैं।

इन फ़ंक्शंस का उपयोग कई तरह के कार्य करने के लिए किया जा सकता है, जिनमें शामिल हैं:

  • स्ट्रिंग्स को कंकेटनेट करना
  • टेक्स्ट का फ़ॉर्मेटिंग
  • स्ट्रिंग के हिस्सों का निष्कर्षण
  • स्ट्रिंग के भीतर विशिष्ट टेक्स्ट का खोज और प्रतिस्थापन

SQL में स्ट्रिंग्स को कंकेटनेट करना

हम concat() फ़ंक्शन का उपयोग करके दो या अधिक स्ट्रिंग्स को जोड़ सकते हैं:

SELECT CONCAT('Street Roma',', ','72',', ','Padova') AS full_address

यह आउटपुट है:

full_address           |
-----------------------+
Street Roma, 72, Padova|

यह फ़ंक्शन अलग-अलग कॉलमों द्वारा दी गई जानकारी, जैसे नाम और पते, को मिलाने के लिए व्यापक रूप से उपयोग किया जाता है।

वैकल्पिक रूप से, आप CONCAT_WS() फ़ंक्शन का भी उपयोग कर सकते हैं:

SELECT CONCAT_WS(',','Street Roma','72','Padova') as full_address

सिंटैक्स से, आप देख सकते हैं कि जब आप एक ही सेपरेटर के साथ दो से अधिक कॉलमों को संयोजित करना चाहते हैं, तो यह अधिक आसान और कुशल है।

टेक्स्ट का फ़ॉर्मेटिंग

टेक्स्ट को समायोजित करने के लिए केस बदलने, अतिरिक्त स्पेस हटाने और अन्य कार्यों हेतु कई SQL स्ट्रिंग फ़ंक्शंस उपलब्ध हैं। प्रत्येक फ़ंक्शन को उसके सिंटैक्स और संबंधित विवरण के साथ सूचीबद्ध किया गया है।

फ़ंक्शन सिंटैक्स

विवरण

LOWER(string)

सभी अक्षरों को लोअरकेस में बदलकर टेक्स्ट लौटाता है

UPPER(string)

सभी अक्षरों को अपरकेस में बदलकर टेक्स्ट लौटाता है

 TRIM(string, [character])

डिफ़ॉल्ट रूप से स्ट्रिंग के बाएँ और दाएँ दोनों ओर के व्हाइट स्पेस हटाता है; यदि कोई विशेष कैरेक्टर दिया गया है तो उसे हटाता है

LTRIM(string, [character])

डिफ़ॉल्ट रूप से स्ट्रिंग के बाएँ ओर के व्हाइट स्पेस हटाता है; यदि कोई विशेष कैरेक्टर दिया गया है तो उसे हटाता है

RTRIM(string, [character])

डिफ़ॉल्ट रूप से स्ट्रिंग के दाएँ ओर के व्हाइट स्पेस हटाता है; यदि कोई विशेष कैरेक्टर दिया गया है तो उसे हटाता है

अब, कुछ उदाहरणों के जरिए समझते हैं कि इन फ़ंक्शंस को कैसे लागू किया जाए। मान लीजिए आपके पास ईमेल पते अपरकेस अक्षरों में हैं और राज्य का संक्षिप्त नाम लोअरकेस में है, और आप इन कॉलमों के फ़ॉर्मेट को सही करना चाहते हैं।

SELECT
		LOWER('[email protected]') AS email,
		UPPER('it') AS country

यह आउटपुट प्राप्त होगा:

email              |country|
-------------------+-------+
anonymous@gmail.com|IT     |

केस बदलने के अलावा, स्ट्रिंग्स की शुरुआत या अंत में मौजूद व्हाइट स्पेस से छुटकारा पाना भी उपयोगी हो सकता है। इस प्रकार के कार्य के लिए मुख्य फ़ंक्शन TRIM() है, जो दोनों ओर से हटाता है। अन्य विकल्प LTRIM() और RTRIM() हैं, जो क्रमशः बाएँ और दाएँ ओर से व्हाइट स्पेस हटाते हैं:

SELECT  TRIM(' Street Roma, 72 ') AS trimmed_address,
	  LTRIM(' Street Roma, 72 ') AS ltrimmed_address,
	  RTRIM(' Street Roma, 72 ') AS rtrimmed_address

क्वेरी निम्नलिखित परिणाम लौटाती है:

trimmed_address|ltrimmed_address|rtrimmed_address|
---------------+----------------+----------------+
Street Roma, 72|Street Roma, 72 | Street Roma, 72|

आउटपुट से, आप प्रत्येक फ़ंक्शन के बीच का अंतर समझ सकते हैं। इसके अलावा, TRIM() का उपयोग व्हाइट स्पेस के अलावा अन्य विशेष कैरेक्टर्स को हटाने के लिए भी किया जा सकता है। उदाहरण के लिए, हम टेलीफ़ोन फ़ील्ड को + साइन हटाकर साफ़ करना चाहते हैं:

SELECT TRIM('++345','+') AS telephone

निम्नलिखित आउटपुट लौटाया जाता है:

telephone|
---------+
345      |

जैसा कि आप देख सकते हैं, टेलीफ़ोन नंबर पूरी तरह से साफ़ है।

टेक्स्ट निकालना

स्ट्रिंग्स को जोड़ने और उनके फ़ॉर्मेट में बदलाव करने के बाद, अब विशेष SQL फ़ंक्शन SUBSTRING() का उपयोग करके टेक्स्ट को निकालना सीखने का समय है। आइए इस फ़ंक्शन में महारत हासिल करने के लिए अलग-अलग उदाहरण देखें:

SELECT
		SUBSTRING('Antony',1,1) AS first_character, 
		SUBSTRING('Antony',1,3) AS first_3characters,
		SUBSTRING('Antony',1,5) AS first_5characters

यह आउटपुट है:

first_character|first_3characters|first_5characters|
---------------+-----------------+-----------------+
A              |Ant              |Anton            |

हम इस फ़ंक्शन को पहले के फ़ंक्शंस के साथ भी संयोजित कर सकते हैं ताकि पहले अक्षर को कैपिटलाइज़ करें, बाकी अक्षरों को लोअरकेस में बदलें, और फिर सभी अक्षरों को कंकेटनेट करें:

SELECT
LENGTH('antony') AS lenght_name,
SUBSTRING(UPPER('antony'),1,1) AS first_character,
SUBSTRING(LOWER('antony'),2,LENGTH('antony')) AS  last_characters,
CONCAT(SUBSTRING(UPPER('antony'),1,1),SUBSTRING(LOWER('antony'),
      2,LENGTH('antony'))) AS name

यह क्वेरी निम्नलिखित परिणाम लौटाती है:

lenght_name|first_character|LAST_characters|name  |
-----------+---------------+---------------+------+
          6|A              |ntony          |Antony|

अब तक देखे गए फ़ंक्शंस के अलावा, आप LENGTH() फ़ंक्शन पर ध्यान दें जो स्ट्रिंग की लंबाई निकालने में मदद करता है। इस संदर्भ में, यह अंतिम अक्षर के इंडेक्स को निर्दिष्ट करने में उपयोगी है।

SQL में स्ट्रिंग्स को खोजना और बदलना

हम स्ट्रिंग्स को खोजने और बदलने के लिए सबसे प्रमुख फ़ंक्शंस दिखा सकते हैं:

फ़ंक्शन सिंटैक्स

विवरण

REPLACE(string,x,y)

स्ट्रिंग में x मान को y मान से बदलता है

CHARINDEX(x,string)

स्ट्रिंग के भीतर x मान की स्थिति खोजता है

एक बहुत उपयोगी फ़ंक्शन REPLACE() है, जो स्ट्रिंग के भीतर किसी सबस्ट्रिंग को दूसरी सबस्ट्रिंग से बदल देता है:

SELECT
		'Street Roma - 32' AS address,
		replace('Street Roma - 32','-',',') AS cleaned_address

यह आउटपुट है:

address         |cleaned_address |
----------------+----------------+
Street Roma - 32|Street Roma , 32|

इस मामले में, हमने पते के भीतर डैश को कॉमा से बदल दिया है। हम पते में डैश की स्थिति खोजने की भी कोशिश कर सकते हैं:

SELECT
		'Street Roma - 32' AS address,
		LENGTH('Street Roma - 32') AS length_address,
		CHARINDEX('-','Street Roma - 32') AS location_dash

क्वेरी निम्नलिखित परिणाम लौटाती है:

address         |length_address|location_dash|
----------------+--------------+-------------+
Street Roma - 32|            16|           13|

हम देख सकते हैं कि प्रतीक - पते की 13वीं स्थिति पर है, लगभग स्ट्रिंग के अंत में।

निष्कर्ष

इन SQL स्ट्रिंग फ़ंक्शंस में महारत हासिल करना डेटा को कुशलतापूर्वक साफ़ करने में बड़ा अंतर ला सकता है। बेशक, यह लेख सभी फ़ंक्शंस को शामिल नहीं करता, बल्कि सबसे महत्वपूर्ण फ़ंक्शंस की एक छोटी सूची देता है। सभी SQL फ़ंक्शंस हमेशा एक जैसे नहीं होते और आपके द्वारा उपयोग किए जा रहे डेटाबेस के प्रकार के अनुसार बदल सकते हैं। उदाहरण के लिए, MySQL डेटाबेस में CHARINDEX को LOCATE() से बदला जा सकता है।

इन फ़ंक्शंस का अभ्यास करने के लिए, आप हमारा Reporting in SQL कोर्स देख सकते हैं। यह आपको डेटा साफ़ करने और जटिल रिपोर्ट बनाने में विशेषज्ञ बनने में मदद कर सकता है। हम SQL Fundamentals स्किल ट्रैक की भी अनुशंसा करते हैं ताकि आप SQL के सभी आवश्यक पहलुओं को कवर कर सकें।

Eugenia Anello

लेखक

Eugenia Anello

डेटा वैज्ञानिक - CRIF

विषय