SQL IN ऑपरेटर का उपयोग कैसे करें: कुशल फ़िल्टरिंग तकनीकों की गाइड
SQL IN ऑपरेटर आपको क्वेरी परिणामों को केवल उन पंक्तियों तक सीमित करने देता है जो निर्दिष्ट शर्तों को पूरा करती हैं। इसके पूर्ण उपयोग और विकल्पों को जानें।
SQL IN ऑपरेटर मानों के एक सेट के आधार पर डेटा को फ़िल्टर करने का एक उपयोगी उपकरण है। लंबी क्वेरियों में शामिल होने पर, IN ऑपरेटर जटिल क्वेरियों को सरल बनाता है और पठनीयता बढ़ाता है।
यदि आप एक उभरते डेटा प्रैक्टिशनर हैं, तो मैं DataCamp के Introduction to SQL और SQL Fundamentals कोर्स लेने की सलाह दूंगा ताकि आप SQL का उपयोग करके डेटा फ़िल्टर करना सीख सकें। त्वरित पुनरावलोकन के लिए हमारा SQL Basics चीट शीट देखें।
SQL IN ऑपरेटर क्या है?
SQL IN ऑपरेटर SQL क्वेरियों में डेटा फ़िल्टर करने का एक शक्तिशाली उपकरण है। यह केवल उन्हीं पंक्तियों को लौटाता है जो निर्दिष्ट शर्तों को पूरा करती हैं, जिससे क्वेरी परिणाम परिष्कृत होते हैं।
हालाँकि, IN ऑपरेटर को कई शर्तों के साथ परिणाम लौटाने के लिए WHERE क्लॉज़ के बाद शामिल किया जाता है। इसलिए, IN ऑपरेटर वहाँ उपयोग किया जा सकता है जहाँ फ़िल्टर किए जाने वाले डेटा प्रकार के विभिन्न मान हों।
-- Select the employee ID, employee name, and department columnsSELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'WHERE department IN('Sales','HR');संचालित द्वारा
ऊपर दिए गए उदाहरण में, हम employees टेबल से employee_id, employee_name, और department कॉलम चुनते हैं। लेकिन हम केवल वे पंक्तियाँ लौटाते हैं जहाँ कर्मचारी Sales और HR विभागों से हैं।
IN ऑपरेटर विभिन्न SQL डेटा प्रकारों—जैसे स्ट्रिंग, नंबर और तिथियाँ—को फ़िल्टर कर सकता है। पंक्तियों को फ़िल्टर करते समय हमेशा सुनिश्चित करें कि संदर्भ कॉलम का डेटा प्रकार उपयुक्त हो।
SQL IN ऑपरेटर का सिंटैक्स
IN ऑपरेटर का मानों को फ़िल्टर करने के लिए सरल सिंटैक्स है। इसे WHERE क्लॉज़ में उपयोग किया जाता है ताकि किसी कॉलम सूची से अनेक मानों को फ़िल्टर किया जा सके। IN ऑपरेटर का समग्र सिंटैक्स नीचे दिखाया गया है।
-- Select the columns you want to retrieveSELECT column_name(s)-- Specify the table from which to retrieve the dataFROM table_name
-- Filter the results to include only those rows where the column's value matches any value in the specified listWHERE column_name IN(value1, value2,...);संचालित द्वारा
नीचे WHERE क्लॉज़ में IN ऑपरेटर शामिल करने का एक व्यावहारिक उदाहरण है।
-- Select the employee ID, employee name, and department columnsSELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'WHERE department IN('Sales','HR');संचालित द्वारा
ध्यान रखने योग्य महत्वपूर्ण बिंदु
IN ऑपरेटर को SELECT स्टेटमेंट के WHERE क्लॉज़ में शामिल किया जाता है। यह स्थान क्वेरी को अनेक मानों के आधार पर पंक्तियों को फ़िल्टर करने देता है। SQL क्वेरी में उपयोग करने पर, IN ऑपरेटर जटिल क्वेरियों को सरल बनाता है और उन्हें पढ़ने में आसान करता है।
IN ऑपरेटर विभिन्न डेटाबेस—जैसे SQL Server, PostgreSQL, MySQL, और Oracle—में मानक है। बेहतर पठनीयता के लिए IN ऑपरेटर को अपरकेस में लिखना महत्वपूर्ण है।
IN ऑपरेटर के सामान्य उपयोग
SQL IN ऑपरेटर का उपयोग अलग-अलग डेटा विश्लेषण अनुप्रयोगों में होता है। इस खंड में कुछ सामान्य उपयोग मामलों—जैसे डेटा फ़िल्टर करना, अनेक मानों को संभालना, और सबक्वेरियों का उपयोग—की चर्चा होगी।
डेटा फ़िल्टर करना
IN ऑपरेटर रिकॉर्ड्स को फ़िल्टर करता है और निर्दिष्ट मानों का सेट लौटाता है। उदाहरण के लिए, नीचे की क्वेरी employees टेबल से सभी कॉलम चुनेगी और Sales, HR, और IT विभागों के कर्मचारियों वाली पंक्तियाँ लौटाएगी।
-- Select all columns from employees tableSELECT employee_id, employee_name, department
FROM employees
-- Filter to include only 'Sales', 'HR', and 'IT' departmentsWHERE department IN('Sales','HR','IT');संचालित द्वारा
अनेक मानों को संभालना
IN ऑपरेटर का उपयोग अनेक मानों वाले रिकॉर्ड्स को फ़िल्टर करने में भी होता है। यह तब उपयोगी है जब आप अनेक OR शर्तों से डेटा फ़िल्टर कर रहे हों। अतः, IN ऑपरेटर क्वेरी की पठनीयता बढ़ाने का सरल तरीका प्रदान करता है।
नीचे दिखाया गया है कि यदि IN की जगह OR ऑपरेटर का उपयोग करें तो क्वेरी कैसी दिखेगी।
-- Main query to select employee_id and name from the employees tableSELECT employee_id, name
FROM employees
-- Filter employees based on multiple department names using OR conditionsWHERE department ='Sales'OR department ='Marketing'OR department ='HR';संचालित द्वारा
यह रही वही क्वेरी IN ऑपरेटर के साथ। ध्यान दें कि दोहराए गए OR ऑपरेटर हटाकर क्वेरी कितनी सरल हो गई है।
-- Main query to select employee_id and name from the employees tableSELECT employee_id, name
FROM employees
-- Filter employees based on a list of department names using the IN operatorWHERE department IN('Sales','Marketing','HR');संचालित द्वारा
सबक्वेरियाँ
आप IN ऑपरेटर का उपयोग सबक्वेरी में परिणाम फ़िल्टर करने के लिए भी कर सकते हैं। यह प्रक्रिया आपको किसी अन्य क्वेरी या संबंधित डेटा से रिकॉर्ड्स फ़िल्टर करने देती है। नीचे के उदाहरण में, सबक्वेरी departments टेबल से Sales विभाग का department_id चुनती है। इसलिए, मुख्य क्वेरी employees टेबल से employee_id और नाम वाली पंक्तियाँ लौटाएगी, जिन्हें सबक्वेरी के अनुसार फ़िल्टर किया गया है।
-- Main query to select employee_id and name from the employees tableSELECT employee_id, name
FROM employees
-- Filter employees based on department_id using a subqueryWHERE department_id IN(-- Subquery to get department_id for the "Sales" departmentSELECT department_id
FROM departments
WHERE department_name ='Sales');संचालित द्वारा
सीमाएँ और विकल्प
यद्यपि IN ऑपरेटर का उपयोग SQL क्वेरियों में सरल है, इसके कुछ अनुप्रयोग संबंधी सीमाएँ हैं, जिनमें शामिल हैं:
बड़े सूचियों के साथ प्रदर्शन संबंधी समस्याएँ: बहुत बड़े मानों की सूची के साथ IN ऑपरेटर का उपयोग क्वेरी निष्पादन को धीमा कर सकता है।
NULL मानों का प्रबंधन:IN ऑपरेटर NULL मानों को कुशलतापूर्वक नहीं संभालता और अप्रत्याशित परिणाम दे सकता है। यह समस्या इसलिए है क्योंकि NULL मान मानों की सूची में शामिल नहीं होते।
सीमित लचीलापन: बड़े डेटासेट और अनेक कॉलमों को संभालते समय IN ऑपरेटर सीमित होता है। सबक्वेरियों का उपयोग करके केवल सीमित कॉलमों को ही फ़िल्टर किया जा सकता है।
IN ऑपरेटर की सीमाओं से बचने के लिए निम्न विकल्प उपयोगी हैं:
EXISTS ऑपरेटर का उपयोग
EXISTS ऑपरेटर जाँचता है कि निर्दिष्ट रिकॉर्ड्स सबक्वेरी में मौजूद हैं या नहीं। सही उपयोग करने पर यह ऑपरेटर कुशल और तेज़ होता है।
-- Select employee ID and name for employees in departments located in New York using EXISTSSELECT employee_id, employee_name
FROM employees e
-- Check if there exists a row in the departments tableWHEREEXISTS(-- Select 1 is used here as a placeholder; it simply checks for existenceSELECT1FROM departments d
-- Match the department_id in employees with department_id in departmentsWHERE d.department_id = e.department_id
-- Filter for departments located in New YorkAND d.location ='New York');संचालित द्वारा
JOIN का उपयोग
SQL JOIN क्लॉज़ जटिल फ़िल्टरिंग के साथ डेटा क्वेरी करने में कुशल है और अनेक संबंधित कॉलमों से डेटा फ़िल्टर करते समय उपयोगी है। नीचे के उदाहरण में, JOIN क्लॉज़ का उपयोग department_id पर employees और departments टेबल्स को जोड़ने के लिए किया गया है, ताकि न्यूयॉर्क में रहने वाले कर्मचारियों के रिकॉर्ड्स फ़िल्टर किए जा सकें।
-- Select employee ID and name for employees in departments located in New York using JOINSELECT e.employee_id, e.employee_name
FROM employees e
-- Join the employees table with the departments table on department_idJOIN departments d ON e.department_id = d.department_id
-- Filter the results to include only departments located in New YorkWHERE d.location ='New York';संचालित द्वारा
Common Table Expressions (CTEs) या अस्थायी टेबल्स का उपयोग
यदि आपके पास बड़ी सूचियों वाली टेबल्स हैं, तो क्वेरी चलाने से पहले मानों की सूची रखने के लिए CTEs का उपयोग करने पर विचार करें। यह तरीका क्वेरी के प्रदर्शन और पठनीयता में सुधार करता है।
-- Define a CTE (Common Table Expression) to store the list of department IDs located in New YorkWITH DepartmentList AS(SELECT department_id
FROM departments
WHERE location ='New York')-- Select employee ID and name for employees who belong to the departments listed in the CTESELECT e.employee_id, e.employee_name
FROM employees e
-- Filter the results to include only employees whose department_id is in the list of department IDs from the CTEWHERE e.department_id IN(SELECT department_id FROM DepartmentList);संचालित द्वारा
डेटा फ़िल्टर करने की अन्य उन्नत तकनीकों को सीखने के लिए, मैं DataCamp का Associate Data Analyst in SQL करियर ट्रैक लेने की सलाह दूंगा। आप DataCamp का Intermediate SQL Server कोर्स भी देख सकते हैं, जिसमें कॉमन टेबल एक्सप्रेशंस और अन्य उन्नत विषयों पर एक अध्याय शामिल है।
निष्कर्ष
SQL IN ऑपरेटर को समझना एक डेटा प्रैक्टिशनर के लिए महत्वपूर्ण है, क्योंकि यह विश्लेषण के दौरान डेटा को फ़िल्टर और रूपांतरित करने देता है। IN ऑपरेटर के प्रयोग में अपने SQL कौशल को बढ़ाने के लिए, मैं आपको अलग-अलग डेटासेट्स पर अभ्यास करने के लिए प्रोत्साहित करता हूँ।
यदि आप अपने SQL ज्ञान को इंटरमीडिएट स्तर तक ले जाना चाहते हैं, तो मैं Reporting in SQL कोर्स की सिफारिश करता हूँ ताकि आप अन्य जटिल क्वेरी तकनीकों का अन्वेषण कर सकें। साथ ही, SQL Associate Certification आपको उन्नत विश्लेषण के लिए SQL के व्यावहारिक ज्ञान को प्रदर्शित करके अन्य डेटा विश्लेषकों के बीच अलग खड़ा होने में मदद करेगा।
डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है.
Frequently Asked Questions
क्या मैं अलग-अलग डेटा प्रकारों को फ़िल्टर करने के लिए IN ऑपरेटर का उपयोग कर सकता/सकती हूँ?⌄
IN ऑपरेटर स्ट्रिंग, नंबर और तिथियों सहित विभिन्न SQL डेटा प्रकारों को फ़िल्टर करता है।
क्या आप सबक्वेरियों में IN ऑपरेटर का उपयोग कर सकते हैं?⌄
IN ऑपरेटर का उपयोग सबक्वेरियों में मुख्य क्वेरी से डेटा फ़िल्टर करने की एक उन्नत विधि के रूप में किया जाता है।
IN ऑपरेटर के विकल्प क्या हैं?⌄
EXISTS ऑपरेटर, JOIN क्लॉज़, और कॉमन टेबल एक्सप्रेशंस (CTEs) IN ऑपरेटर के बेहतरीन विकल्प हैं।
कौन से डेटाबेस IN ऑपरेटर के साथ संगत हैं?⌄
आम डेटाबेस—जैसे SQL Server, MySQL, PostgreSQL, और Oracle—IN ऑपरेटर के उपयोग का समर्थन करते हैं।
SQL
INऑपरेटर मानों के एक सेट के आधार पर डेटा को फ़िल्टर करने का एक उपयोगी उपकरण है। लंबी क्वेरियों में शामिल होने पर,INऑपरेटर जटिल क्वेरियों को सरल बनाता है और पठनीयता बढ़ाता है।यदि आप एक उभरते डेटा प्रैक्टिशनर हैं, तो मैं DataCamp के Introduction to SQL और SQL Fundamentals कोर्स लेने की सलाह दूंगा ताकि आप SQL का उपयोग करके डेटा फ़िल्टर करना सीख सकें। त्वरित पुनरावलोकन के लिए हमारा SQL Basics चीट शीट देखें।
SQL IN ऑपरेटर क्या है?
SQL
INऑपरेटर SQL क्वेरियों में डेटा फ़िल्टर करने का एक शक्तिशाली उपकरण है। यह केवल उन्हीं पंक्तियों को लौटाता है जो निर्दिष्ट शर्तों को पूरा करती हैं, जिससे क्वेरी परिणाम परिष्कृत होते हैं।हालाँकि,
INऑपरेटर को कई शर्तों के साथ परिणाम लौटाने के लिएWHEREक्लॉज़ के बाद शामिल किया जाता है। इसलिए,INऑपरेटर वहाँ उपयोग किया जा सकता है जहाँ फ़िल्टर किए जाने वाले डेटा प्रकार के विभिन्न मान हों।ऊपर दिए गए उदाहरण में, हम
employeesटेबल सेemployee_id,employee_name, औरdepartmentकॉलम चुनते हैं। लेकिन हम केवल वे पंक्तियाँ लौटाते हैं जहाँ कर्मचारीSalesऔरHRविभागों से हैं।INऑपरेटर विभिन्न SQL डेटा प्रकारों—जैसे स्ट्रिंग, नंबर और तिथियाँ—को फ़िल्टर कर सकता है। पंक्तियों को फ़िल्टर करते समय हमेशा सुनिश्चित करें कि संदर्भ कॉलम का डेटा प्रकार उपयुक्त हो।SQL IN ऑपरेटर का सिंटैक्स
INऑपरेटर का मानों को फ़िल्टर करने के लिए सरल सिंटैक्स है। इसेWHEREक्लॉज़ में उपयोग किया जाता है ताकि किसी कॉलम सूची से अनेक मानों को फ़िल्टर किया जा सके।INऑपरेटर का समग्र सिंटैक्स नीचे दिखाया गया है।नीचे
WHEREक्लॉज़ मेंINऑपरेटर शामिल करने का एक व्यावहारिक उदाहरण है।ध्यान रखने योग्य महत्वपूर्ण बिंदु
INऑपरेटर कोSELECTस्टेटमेंट केWHEREक्लॉज़ में शामिल किया जाता है। यह स्थान क्वेरी को अनेक मानों के आधार पर पंक्तियों को फ़िल्टर करने देता है। SQL क्वेरी में उपयोग करने पर,INऑपरेटर जटिल क्वेरियों को सरल बनाता है और उन्हें पढ़ने में आसान करता है।INऑपरेटर विभिन्न डेटाबेस—जैसे SQL Server, PostgreSQL, MySQL, और Oracle—में मानक है। बेहतर पठनीयता के लिएINऑपरेटर को अपरकेस में लिखना महत्वपूर्ण है।IN ऑपरेटर के सामान्य उपयोग
SQL
INऑपरेटर का उपयोग अलग-अलग डेटा विश्लेषण अनुप्रयोगों में होता है। इस खंड में कुछ सामान्य उपयोग मामलों—जैसे डेटा फ़िल्टर करना, अनेक मानों को संभालना, और सबक्वेरियों का उपयोग—की चर्चा होगी।डेटा फ़िल्टर करना
INऑपरेटर रिकॉर्ड्स को फ़िल्टर करता है और निर्दिष्ट मानों का सेट लौटाता है। उदाहरण के लिए, नीचे की क्वेरीemployeesटेबल से सभी कॉलम चुनेगी औरSales,HR, औरITविभागों के कर्मचारियों वाली पंक्तियाँ लौटाएगी।अनेक मानों को संभालना
INऑपरेटर का उपयोग अनेक मानों वाले रिकॉर्ड्स को फ़िल्टर करने में भी होता है। यह तब उपयोगी है जब आप अनेकORशर्तों से डेटा फ़िल्टर कर रहे हों। अतः,INऑपरेटर क्वेरी की पठनीयता बढ़ाने का सरल तरीका प्रदान करता है।नीचे दिखाया गया है कि यदि
INकी जगहORऑपरेटर का उपयोग करें तो क्वेरी कैसी दिखेगी।यह रही वही क्वेरी
INऑपरेटर के साथ। ध्यान दें कि दोहराए गएORऑपरेटर हटाकर क्वेरी कितनी सरल हो गई है।सबक्वेरियाँ
आप
INऑपरेटर का उपयोग सबक्वेरी में परिणाम फ़िल्टर करने के लिए भी कर सकते हैं। यह प्रक्रिया आपको किसी अन्य क्वेरी या संबंधित डेटा से रिकॉर्ड्स फ़िल्टर करने देती है। नीचे के उदाहरण में, सबक्वेरीdepartmentsटेबल सेSalesविभाग काdepartment_idचुनती है। इसलिए, मुख्य क्वेरीemployeesटेबल सेemployee_idऔर नाम वाली पंक्तियाँ लौटाएगी, जिन्हें सबक्वेरी के अनुसार फ़िल्टर किया गया है।सीमाएँ और विकल्प
यद्यपि
INऑपरेटर का उपयोग SQL क्वेरियों में सरल है, इसके कुछ अनुप्रयोग संबंधी सीमाएँ हैं, जिनमें शामिल हैं:INऑपरेटर का उपयोग क्वेरी निष्पादन को धीमा कर सकता है।INऑपरेटरNULLमानों को कुशलतापूर्वक नहीं संभालता और अप्रत्याशित परिणाम दे सकता है। यह समस्या इसलिए है क्योंकिNULLमान मानों की सूची में शामिल नहीं होते।INऑपरेटर सीमित होता है। सबक्वेरियों का उपयोग करके केवल सीमित कॉलमों को ही फ़िल्टर किया जा सकता है।INऑपरेटर की सीमाओं से बचने के लिए निम्न विकल्प उपयोगी हैं:EXISTS ऑपरेटर का उपयोग
EXISTSऑपरेटर जाँचता है कि निर्दिष्ट रिकॉर्ड्स सबक्वेरी में मौजूद हैं या नहीं। सही उपयोग करने पर यह ऑपरेटर कुशल और तेज़ होता है।JOIN का उपयोग
SQL
JOINक्लॉज़ जटिल फ़िल्टरिंग के साथ डेटा क्वेरी करने में कुशल है और अनेक संबंधित कॉलमों से डेटा फ़िल्टर करते समय उपयोगी है। नीचे के उदाहरण में,JOINक्लॉज़ का उपयोगdepartment_idपर employees और departments टेबल्स को जोड़ने के लिए किया गया है, ताकि न्यूयॉर्क में रहने वाले कर्मचारियों के रिकॉर्ड्स फ़िल्टर किए जा सकें।Common Table Expressions (CTEs) या अस्थायी टेबल्स का उपयोग
यदि आपके पास बड़ी सूचियों वाली टेबल्स हैं, तो क्वेरी चलाने से पहले मानों की सूची रखने के लिए CTEs का उपयोग करने पर विचार करें। यह तरीका क्वेरी के प्रदर्शन और पठनीयता में सुधार करता है।
डेटा फ़िल्टर करने की अन्य उन्नत तकनीकों को सीखने के लिए, मैं DataCamp का Associate Data Analyst in SQL करियर ट्रैक लेने की सलाह दूंगा। आप DataCamp का Intermediate SQL Server कोर्स भी देख सकते हैं, जिसमें कॉमन टेबल एक्सप्रेशंस और अन्य उन्नत विषयों पर एक अध्याय शामिल है।
निष्कर्ष
SQL
INऑपरेटर को समझना एक डेटा प्रैक्टिशनर के लिए महत्वपूर्ण है, क्योंकि यह विश्लेषण के दौरान डेटा को फ़िल्टर और रूपांतरित करने देता है।INऑपरेटर के प्रयोग में अपने SQL कौशल को बढ़ाने के लिए, मैं आपको अलग-अलग डेटासेट्स पर अभ्यास करने के लिए प्रोत्साहित करता हूँ।यदि आप अपने SQL ज्ञान को इंटरमीडिएट स्तर तक ले जाना चाहते हैं, तो मैं Reporting in SQL कोर्स की सिफारिश करता हूँ ताकि आप अन्य जटिल क्वेरी तकनीकों का अन्वेषण कर सकें। साथ ही, SQL Associate Certification आपको उन्नत विश्लेषण के लिए SQL के व्यावहारिक ज्ञान को प्रदर्शित करके अन्य डेटा विश्लेषकों के बीच अलग खड़ा होने में मदद करेगा।