अध्याय 5: उन्नत SELECT प्रश्न

अध्याय 5: उन्नत SELECT प्रश्न

उन्नत SELECT प्रश्न (Advanced SELECT Queries) डेटाबेस मैनेजमेंट का एक महत्वपूर्ण हिस्सा हैं, जो हमें जटिल और विस्तृत डेटा रिट्रीवल ऑपरेशन्स को परफॉर्म करने की अनुमति देते हैं। इस अध्याय में, हम उन्नत SELECT प्रश्नों का उपयोग करके डेटाबेस से अधिक सटीक और विश्लेषणात्मक डेटा प्राप्त करने की प्रक्रिया को समझेंगे। हम जॉइन, सबक्वेरी, एग्रीगेशन, और अन्य उन्नत तकनीकों पर चर्चा करेंगे, जो आपको अपने डेटाबेस क्वेरीज को अधिक शक्तिशाली और प्रभावी बनाने में मदद करेंगी। इस अध्याय के अंत तक, आप MySQL में उन्नत SELECT प्रश्नों को आत्मविश्वास के साथ परफॉर्म करने में सक्षम हो जाएंगे।

WHERE क्लॉज: डेटा को फ़िल्टर कैसे करें

WHERE क्लॉज MySQL में एक महत्वपूर्ण टूल है, जो हमें डेटाबेस टेबल्स से डेटा को फ़िल्टर करने की अनुमति देता है। यह क्लॉज SELECT, UPDATE, DELETE आदि जैसे विभिन्न SQL स्टेटमेंट्स के साथ उपयोग किया जा सकता है। WHERE क्लॉज के माध्यम से, हम केवल उन रिकॉर्ड्स को रिट्रीव कर सकते हैं जो एक विशिष्ट कंडीशन को पूरा करते हैं। इस सेक्शन में, हम WHERE क्लॉज का उपयोग करके डेटा को फ़िल्टर करने की प्रक्रिया को विस्तार से समझेंगे।

सिंटैक्स (Syntax)

WHERE क्लॉज के लिए सामान्य सिंटैक्स निम्नलिखित है:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

उदाहरण (Examples)

  1. समानता की शर्त (Equality Condition)

डेटा को एक निश्चित वैल्यू के आधार पर फ़िल्टर करने के लिए:

SELECT * FROM students
WHERE grade = 'A';

यह क्वेरी केवल उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी ग्रेड ‘A’ है।

  1. असमानता की शर्त (Inequality Condition)

डेटा को एक निश्चित वैल्यू से अलग करने के लिए:

SELECT * FROM students
WHERE age <> 15;

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी आयु 15 नहीं है।

  1. ग्रेटर थान और लेस थान (Greater Than and Less Than)

डेटा को एक रेंज के आधार पर फ़िल्टर करने के लिए:

SELECT * FROM students
WHERE age > 14;

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी आयु 14 से अधिक है।

SELECT * FROM students
WHERE age < 18;

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी आयु 18 से कम है।

  1. बीच में (BETWEEN)

डेटा को एक विशेष रेंज के भीतर फ़िल्टर करने के लिए:

SELECT * FROM students
WHERE age BETWEEN 14 AND 18;

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी आयु 14 से 18 के बीच है।

  1. लाइक (LIKE)

डेटा को एक पैटर्न के आधार पर फ़िल्टर करने के लिए:

SELECT * FROM students
WHERE name LIKE 'J%';

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनका नाम ‘J’ से शुरू होता है।

  1. इन (IN)

डेटा को एक सेट की वैल्यूज के आधार पर फ़िल्टर करने के लिए:

SELECT * FROM students
WHERE grade IN ('A', 'B');

यह क्वेरी केवल उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी ग्रेड ‘A’ या ‘B’ है।

  1. लॉजिकल ऑपरेटर्स (Logical Operators)

AND, OR, और NOT का उपयोग करके डेटा को फ़िल्टर करने के लिए:

SELECT * FROM students
WHERE grade = 'A' AND age > 15;

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी ग्रेड ‘A’ है और आयु 15 से अधिक है।

SELECT * FROM students
WHERE grade = 'A' OR grade = 'B';

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी ग्रेड ‘A’ या ‘B’ है।

SELECT * FROM students
WHERE NOT grade = 'C';

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी ग्रेड ‘C’ नहीं है।

उप-चयन (Subqueries)

उप-चयन का उपयोग एक क्वेरी के अंदर दूसरी क्वेरी लिखने के लिए किया जा सकता है:

SELECT * FROM students
WHERE age > (SELECT AVG(age) FROM students);

यह क्वेरी उन छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी आयु औसत आयु से अधिक है।

WHERE क्लॉज MySQL में डेटा को फ़िल्टर करने के लिए एक शक्तिशाली टूल है। इसका सही उपयोग करके, आप डेटाबेस टेबल्स से केवल वही डेटा रिट्रीव कर सकते हैं जो आपकी विशेष आवश्यकताओं को पूरा करता है। इस सेक्शन के माध्यम से, आपने WHERE क्लॉज की विभिन्न तकनीकों को सीखा, जो आपके डेटाबेस क्वेरीज को अधिक सटीक और प्रभावी बनाएंगी।

ORDER BY और LIMIT: डेटा को क्रमबद्ध और सीमित कैसे करें

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

ORDER BY क्लॉज (ORDER BY Clause)

ORDER BY क्लॉज का उपयोग डेटा को एक या अधिक कॉलम के आधार पर क्रमबद्ध करने के लिए किया जाता है।

सिंटैक्स (Syntax):

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

उदाहरण (Examples):

  1. डेटा को आरोही क्रम में क्रमबद्ध करना (Sorting Data in Ascending Order):

SELECT * FROM students
ORDER BY age ASC;

यह क्वेरी students टेबल के डेटा को age कॉलम के आधार पर आरोही क्रम (ascending order) में क्रमबद्ध करेगी।

  1. डेटा को अवरोही क्रम में क्रमबद्ध करना (Sorting Data in Descending Order):

SELECT * FROM students
ORDER BY age DESC;

यह क्वेरी students टेबल के डेटा को age कॉलम के आधार पर अवरोही क्रम (descending order) में क्रमबद्ध करेगी।

मल्टीपल कॉलम्स के आधार पर क्रमबद्ध करना (Sorting Data by Multiple Columns):

SELECT * FROM students
ORDER BY grade ASC, age DESC;

यह क्वेरी पहले grade कॉलम के आधार पर आरोही क्रम में और फिर age कॉलम के आधार पर अवरोही क्रम में डेटा को क्रमबद्ध करेगी।

LIMIT क्लॉज (LIMIT Clause)

LIMIT क्लॉज का उपयोग क्वेरी के परिणामों की संख्या को सीमित करने के लिए किया जाता है।

सिंटैक्स (Syntax):

SELECT column1, column2, ...
FROM table_name
LIMIT number;

उदाहरण (Examples):

प्रथम n रिकॉर्ड्स को प्राप्त करना (Retrieving the First n Records):

SELECT * FROM students
LIMIT 5;

यह क्वेरी students टेबल के पहले 5 रिकॉर्ड्स को रिट्रीव करेगी।

OFFSET के साथ रिकॉर्ड्स को प्राप्त करना (Retrieving Records with OFFSET):

SELECT * FROM students
LIMIT 5 OFFSET 10;

यह क्वेरी students टेबल के 11वें से 15वें रिकॉर्ड्स को रिट्रीव करेगी (OFFSET 0 से शुरू होता है)।

ORDER BY और LIMIT का संयोजन (Combining ORDER BY and LIMIT)

ORDER BY और LIMIT क्लॉज का संयोजन करके, हम एक विशेष क्रम में केवल कुछ रिकॉर्ड्स को रिट्रीव कर सकते हैं।

उदाहरण (Example):

SELECT * FROM students
ORDER BY grade DESC
LIMIT 3;

यह क्वेरी students टेबल के डेटा को grade के आधार पर अवरोही क्रम में क्रमबद्ध करेगी और पहले 3 रिकॉर्ड्स को रिट्रीव करेगी।

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

LIKE और IN ऑपरेटर: विशेष पैटर्न और सेट के साथ काम करना

LIKE और IN ऑपरेटर MySQL में डेटा को फ़िल्टर करने के लिए अत्यंत उपयोगी होते हैं। LIKE ऑपरेटर का उपयोग डेटा को एक विशेष पैटर्न के आधार पर खोजने के लिए किया जाता है, जबकि IN ऑपरेटर का उपयोग डेटा को एक विशेष सेट के भीतर फ़िल्टर करने के लिए किया जाता है। इस सेक्शन में, हम LIKE और IN ऑपरेटर का उपयोग करके डेटा को कैसे फ़िल्टर किया जाए, इस पर विस्तार से चर्चा करेंगे।

LIKE ऑपरेटर (LIKE Operator)

LIKE ऑपरेटर का उपयोग स्ट्रिंग्स में पैटर्न मिलान के लिए किया जाता है। यह दो वाइल्डकार्ड करैक्टर का उपयोग करता है:

  • %: यह करैक्टर 0 या अधिक करैक्टर्स से मेल खाता है।
  • _: यह करैक्टर केवल एक करैक्टर से मेल खाता है।

सिंटैक्स (Syntax):

SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern;

उदाहरण (Examples):

  1. शुरुआत से मिलान करना (Matching from the Beginning):

SELECT * FROM students
WHERE name LIKE 'J%';

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनका नाम ‘J’ से शुरू होता है।

अंत से मिलान करना (Matching from the End):

SELECT * FROM students
WHERE name LIKE '%son';

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनका नाम ‘son’ पर समाप्त होता है।

कहीं भी मिलान करना (Matching Anywhere):

SELECT * FROM students WHERE name LIKE '%an%';

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनके नाम में कहीं भी ‘an’ आता है।

  1. सटीक लंबाई मिलान करना (Matching Exact Length):

SELECT * FROM students WHERE name LIKE 'J_n_';

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनका नाम ‘J’ से शुरू होता है और 

चौथे स्थान पर ‘n’ होता है, और कुल मिलाकर चार करैक्टर्स होते हैं।

IN ऑपरेटर (IN Operator)

IN ऑपरेटर का उपयोग एक कॉलम की वैल्यू को एक सेट की वैल्यूज के साथ तुलना करने के लिए किया जाता है। यह ऑपरेटर विशेष रूप से उपयोगी होता है जब हमें एक कॉलम की वैल्यू को कई वैल्यूज के साथ मिलाना हो।

सिंटैक्स (Syntax):

SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);

उदाहरण (Examples):

कई वैल्यूज के साथ मिलान करना (Matching Multiple Values):

SELECT * FROM students WHERE grade IN ('A', 'B');

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जिनकी ग्रेड ‘A’ या ‘B’ है।

  1. उप-चयन के साथ IN का उपयोग (Using IN with Subquery):

SELECT * FROM students WHERE class_id IN
(SELECT id FROM classes WHERE teacher = 'Mr. Smith');

यह क्वेरी उन सभी छात्रों के रिकॉर्ड्स को रिट्रीव करेगी जो उन कक्षाओं में हैं जिनके शिक्षक ‘Mr. Smith’ हैं।

LIKE और IN ऑपरेटर MySQL में डेटा को फ़िल्टर करने के लिए महत्वपूर्ण उपकरण हैं। LIKE ऑपरेटर का उपयोग करके, हम स्ट्रिंग्स में विशेष पैटर्न को खोज सकते हैं, जबकि IN ऑपरेटर का उपयोग करके, हम डेटा को एक विशेष सेट के भीतर फ़िल्टर कर सकते हैं। इस सेक्शन के माध्यम से, आपने LIKE और IN ऑपरेटर की विभिन्न तकनीकों को सीखा, जो आपके डेटाबेस क्वेरीज को अधिक सटीक और प्रभावी बनाएंगी।



Index