SQL का OR ऑपरेटर एक लॉजिकल ऑपरेटर है, जिसका उपयोग क्वेरी में कई शर्तों के आधार पर डेटा फ़िल्टर करने के लिए किया जाता है। OR ऑपरेटर आमतौर पर WHERE क्लॉज़ में प्रयोग होता है ताकि वे परिणाम लौटाए जो दी गई शर्तों को संतुष्ट करें। यह क्षमता OR ऑपरेटर को लचीले डेटा पुनर्प्राप्ति के लिए एक महत्वपूर्ण टूल बनाती है।
इस ट्यूटोरियल में, मैं व्यावहारिक उदाहरणों के साथ दिखाऊँगा कि SQL क्वेरियों में OR ऑपरेटर के अलग-अलग उपयोग-परिदृश्य क्या हैं। यदि आप एक उभरते डेटा विश्लेषक हैं या SQL सीखना शुरू कर रहे हैं, तो मैं DataCamp के Introduction to SQL कोर्स की सिफारिश करता हूँ ताकि आप SQL की बुनियाद सीख सकें। SQL Basics Cheat Sheet भी तालिकाओं पर क्वेरी करने, फ़िल्टर करने और डेटा को एग्रीगेट करने हेतु सामान्य ऑपरेटरों और फ़ंक्शनों का संदर्भ देने में मदद करेगा।
SQL OR ऑपरेटर क्या है?
SQL का OR ऑपरेटर आम तौर पर WHERE क्लॉज़ के साथ डेटा फ़िल्टर करने के लिए इस्तेमाल होता है। जब क्वेरी में इसका उपयोग किया जाता है, तो OR ऑपरेटर उन पंक्तियों को शामिल करने के लिए डेटा फ़िल्टर करेगा जहाँ निर्दिष्ट शर्तों में से कम से कम एक सही हो।
नीचे दी गई क्वेरी employees टेबल से वे सभी रिकॉर्ड लौटाएगी जो HR विभाग में हैं या जिनका वेतन $60,000 से अधिक है। यदि कोई पंक्ति इन दोनों में से किसी एक या दोनों शर्तों को पूरा करती है, तो वह क्वेरी परिणामों में शामिल होगी।
-- Select rows where the department is either 'HR' OR salary greater than 60,000
SELECT *
FROM employees
WHERE department = 'HR'
OR salary > 60000;

SQL OR ऑपरेटर का उपयोग करके फ़िल्टर किया गया उदाहरण तालिका आउटपुट। चित्र: लेखक.
शर्ताधारित डेटा फ़िल्टरिंग के लिए उपयोग होने वाले OR और अन्य ऑपरेटरों के बारे में अधिक जानने हेतु DataCamp का Intermediate SQL कोर्स देखें।
SQL OR ऑपरेटर का सिंटैक्स
OR ऑपरेटर का उपयोग और उसे SQL क्वेरियों में शामिल करना सरल है। नीचे SELECT स्टेटमेंट में उपयोग होने पर इसका बेसिक सिंटैक्स दिया गया है।
SELECT column1, column2, ...
FROM table_name
WHERE condition1
OR condition2
OR condition3;
ध्यान दें कि आप WHERE क्लॉज़ में एक से अधिक OR शर्तों का उपयोग कर सकते हैं।
SELECT स्टेटमेंट में बुनियादी उपयोग
OR ऑपरेटर का उपयोग SELECT स्टेटमेंट में उन रिकॉर्डों को लौटाने के लिए किया जाता है जो दी गई शर्तों में से किसी एक को पूरा करते हैं। इससे OR ऑपरेटर तब उपयोगी हो जाता है जब बिना जटिल मल्टीपल क्वेरियाँ लिखे रिकॉर्ड प्राप्त करने हों।
नीचे दिए उदाहरण में, OR ऑपरेटर उन सभी कर्मचारियों के रिकॉर्ड फ़िल्टर करता है जो "New York" या "Los Angeles" में हैं।
-- Select employeees from New York or Los Angeles city
SELECT first_name, last_name, city
FROM employees
WHERE city = 'New York'
OR city = 'Los Angeles';
SQL में OR को AND के साथ संयोजन करना
OR ऑपरेटर को AND ऑपरेटर के साथ मिलाकर SQL क्वेरी में अधिक जटिल शर्तें बनाई जा सकती हैं। जब OR और AND दोनों का उपयोग करते हैं, तो ऑपरेशनों के क्रम को नियंत्रित करने के लिए कोष्ठक (parentheses) का उपयोग किया जाता है।
निम्न क्वेरी पर विचार करें: हम IT विभाग में काम करने वाले और "New York" में रहने वाले कर्मचारियों (एक संयुक्त शर्त) को चुनना चाहते हैं, या वे जो $70,000 से अधिक कमाते हैं। कोष्ठक AND शर्त को एक इकाई के रूप में समूहित करते हैं ताकि OR ऑपरेटर लगाने से पहले उसका मूल्यांकन हो।
-- Select columns
SELECT first_name, last_name, department, city, salary
FROM employees
-- Grouping IT department in New York
WHERE (department = 'IT' AND city = 'New York')
-- Employees with salary over 70,000
OR salary > 70000;

OR को AND ऑपरेटर के साथ मिलाकर फ़िल्टर की गई तालिका का उदाहरण आउटपुट। चित्र: लेखक.
ऊपर दी गई क्वेरी निम्न के रिकॉर्ड का मूल्यांकन कर लौटाती है:
-
वे कर्मचारी जो IT विभाग में काम करते हैं और New York में रहते हैं।
-
या कोई भी कर्मचारी जो $70,000 से अधिक कमाता है, चाहे विभाग या शहर कुछ भी हो।
जब OR को AND के साथ जोड़ते हैं, तो शर्तों को कोष्ठकों से सही तरीके से समूहित करना चाहिए। इस गलती से तार्किक त्रुटियाँ हो सकती हैं और अनपेक्षित परिणाम लौट सकते हैं।
यदि क्वेरी में कोष्ठक का उपयोग नहीं किया जाता, तो AND शर्त का मूल्यांकन OR से पहले होगा। अतः, कोष्ठकों का सही उपयोग शर्तों को स्पष्ट रूप से समूहित करेगा और यह सुनिश्चित करेगा कि वांछित मूल्यांकन क्रम का पालन हो।
SQL OR ऑपरेटर के क्रियान्वयन के उदाहरण
OR ऑपरेटर का उपयोग विभिन्न SQL क्वेरियों में रिकॉर्ड प्राप्त करने या डेटाबेस डेटा को परिवर्तित करने हेतु किया जा सकता है। नीचे OR ऑपरेटर के उपयोग-परिदृश्यों के उदाहरण दिए गए हैं।
एकाधिक शर्तों के साथ डेटा फ़िल्टर करना
OR ऑपरेटर मुख्य रूप से दो या अधिक शर्तों के आधार पर रिकॉर्ड फ़िल्टर करने के लिए उपयोग होता है। यह तरीका तब महत्वपूर्ण है जब डेटाबेस के खोज मानदंड का दायरा बढ़ाना हो। निम्न उदाहरण New York City के कर्मचारियों या $80,000 से अधिक कमाने वालों के रिकॉर्ड फ़िल्टर कर लौटाएगा।
-- Select columns
SELECT first_name, last_name, department, city, salary
FROM employees
-- Employees in New York City
WHERE city = 'New York'
-- Employees with salary over 80,000
OR salary > 80000;
INSERT स्टेटमेंट में OR ऑपरेटर का उपयोग
आप INSERT स्टेटमेंट के साथ OR ऑपरेटर का उपयोग कर सकते हैं ताकि यदि दी गई शर्तें पूरी हों तो टेबल में नए रिकॉर्ड जोड़े जाएँ। नीचे दिए उदाहरण में, यदि कर्मचारी HR विभाग में है या कर्मचारी $60,000 से अधिक कमाता है तो क्वेरी employees टेबल में नया रिकॉर्ड जोड़ देगी। नीचे दी क्वेरी SQL Server, MySQL और PostgreSQL डेटाबेस के साथ सुसंगत है।
-- Insert a new record into the 'employees' table
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
-- First condition: department is 'HR'
WHERE 'HR' = 'HR'
-- Second condition: salary is greater than $60,000
OR 62000 > 60000;
Oracle डेटाबेस में, INSERT स्टेटमेंट अलग होता है और dual टेबल (डेटाबेस में उपलब्ध एक विशेष एक-पंक्ति, एक-स्तंभ तालिका) का उपयोग करते हुए FROM क्लॉज़ की आवश्यकता होती है। यदि आप विशेष रूप से SQL Server के साथ काम करेंगे, तो हमारा Introduction to SQL Server कोर्स करें।
-- Insert a new record into the 'employees' table
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
FROM dual
WHERE 'HR' = 'HR' -- First condition: department is 'HR'
OR 62000 > 60000; -- Second condition: salary is greater than $60,000
UPDATE स्टेटमेंट में OR ऑपरेटर का उपयोग
SQL में UPDATE स्टेटमेंट का उपयोग टेबल में मौजूद रिकॉर्ड संशोधित करने के लिए किया जाता है। आप UPDATE स्टेटमेंट में OR ऑपरेटर का उपयोग कई शर्तों के अनुसार केवल उन्हीं रिकॉर्डों को संशोधित करने के लिए कर सकते हैं जो शर्तें पूरी करते हैं।
नीचे दिए उदाहरण में, हम OR ऑपरेटर का उपयोग करके कर्मचारी का वेतन अपडेट करते हैं यदि वह Finance विभाग में है या Chicago में रहता है।
-- Update the salary for the employee
UPDATE employees
-- Increase salary by 10%
SET salary = salary * 1.1
-- First condition: department is 'Finance'
WHERE department = 'Finance'
-- Second condition: employees in Chicago City
OR city = 'Chicago';
DELETE स्टेटमेंट में OR ऑपरेटर का उपयोग
इसी प्रकार, SQL में DELETE स्टेटमेंट का उपयोग टेबल से मौजूद रिकॉर्ड हटाने के लिए किया जाता है। आप DELETE स्टेटमेंट के साथ OR ऑपरेटर का उपयोग विशिष्ट शर्तों के आधार पर टेबल से रिकॉर्ड हटाने के लिए कर सकते हैं।
नीचे दी गई क्वेरी employees टेबल से वे रिकॉर्ड हटाएगी जहाँ कर्मचारी Chicago से है या $60,000 कमाता है।
-- Delete records from the 'employees' table
DELETE FROM employees
-- First condition: employees from Chicago
WHERE city = 'Chicago'
-- Second condition: employees earning 60000
OR salary = 60000;
SQL OR क्वेरियों के प्रदर्शन संबंधी विचार
बड़े डाटासेट्स के साथ काम करते समय, OR ऑपरेटर के साथ आपको प्रदर्शन संबंधी समस्याएँ आ सकती हैं। यह समस्या बड़े डाटासेट्स से रिकॉर्ड फ़िल्टर करते समय ऑपरेशनों के धीमे होने का कारण बन सकती है। नीचे आम प्रदर्शन संबंधी समस्याएँ और उन्हें कम करने के उपाय दिए गए हैं।
फुल टेबल स्कैन
OR ऑपरेटर का बड़े डाटासेट्स में उपयोग करते समय, विशेषकर जब उचित इंडेक्सिंग न हो, तो यह फुल टेबल स्कैन करता है। चूँकि क्वेरी टेबल का मूल्यांकन पंक्ति-दर-पंक्ति करती है, इससे निष्पादन समय धीमा हो सकता है। इस समस्या से बचने के लिए, आवश्यक कॉलम पर इंडेक्सिंग करें ताकि डेटाबेस इंजन कॉलम को आसानी और तेजी से खोज सके।
जटिल शर्तों का मूल्यांकन
जब एक टेबल में कई शर्तों का मूल्यांकन करने हेतु OR ऑपरेटर का उपयोग किया जाता है, तो क्वेरी काफी धीमी हो सकती है, खासकर जब उचित इंडेक्सिंग न हो। जटिल OR शर्तों का उपयोग करते समय, क्वेरी को छोटे भागों में पुनर्संरचित करना, जैसे कि सबक्वेरियों का उपयोग, प्रदर्शन में सुधार ला सकता है।
अनावश्यक शर्तें
अनावश्यक OR शर्तें शामिल करने से क्वेरी के प्रदर्शन में गिरावट आ सकती है क्योंकि उसे सभी शर्तों का मूल्यांकन करना पड़ता है। केवल आवश्यक और सम्भावित रूप से सही होने वाली OR शर्तों का उपयोग करना क्वेरी को सरल बनाता है और प्रदर्शन बेहतर करता है।
OR ऑपरेटर के विकल्प
OR ऑपरेटर के साथ प्रदर्शन संबंधी समस्याओं का सामना करने पर, कई शर्तों के आधार पर डेटा फ़िल्टर करने के लिए आप निम्न विकल्पों पर विचार कर सकते हैं।
UNION ऑपरेटर का उपयोग
UNION ऑपरेटर मुख्य रूप से तब प्रयोग किया जाता है जब भिन्न इंडेक्सिंग की आवश्यकता हो और दो या अधिक SELECT स्टेटमेंट्स के परिणामों को जोड़ना हो। नीचे दी क्वेरी में, UNION ऑपरेटर उन ऑपरेशनों को जोड़ता है ताकि New York city के IT department के employees के रिकॉर्ड फ़िल्टर कर लौटाए जा सकें। यदि आप UNION से अभी परिचित नहीं हैं तो हमारा ट्यूटोरियल UNION vs UNION ALL in SQL पढ़ें।
-- Use UNION instead of OR for better performance
SELECT first_name, last_name, department, city
FROM employees
-- First condition
WHERE department = 'IT'
UNION
SELECT first_name, last_name, department, city
FROM employees
-- Second condition
WHERE city = 'New York';
CASE स्टेटमेंट्स का उपयोग
CASE स्टेटमेंट, यदि आप क्वेरी में लॉजिकल शर्तें शामिल करना चाहते हैं, तो OR ऑपरेटर का एक महत्वपूर्ण विकल्प है। CASE स्टेटमेंट अपने अनुकूल निष्पादन के अनुसार क्वेरी के प्रदर्शन में सुधार लाता है। नीचे दी क्वेरी CASE स्टेटमेंट का उपयोग कर कई शर्तों के आधार पर विभागों को श्रेणीबद्ध करती है।
-- Select first name, last name, and a derived category based on conditions
SELECT first_name, last_name,
-- Use CASE to determine the category based on department or city
CASE
-- If department is 'IT', categorize as 'Tech' If city is 'New York', categorize as 'NYC'
WHEN department = 'IT' THEN 'Tech'
WHEN city = 'New York' THEN 'NYC' --
ELSE 'Other'
END AS category
FROM employees;
डेटा मैनिपुलेशन के लिए UNION ऑपरेटर और CASE स्टेटमेंट के बारे में अधिक जानने हेतु हमारा SQL Fundamentals स्किल ट्रैक देखें।
निष्कर्ष
OR ऑपरेटर लचीली और जटिल क्वेरियाँ बनाने के लिए एक बहुमुखी SQL ऑपरेटर है। OR ऑपरेटर आपको कई शर्तों के आधार पर टेबल रिकॉर्ड फ़िल्टर करने देता है। जैसा कि हमने देखा, INSERT, UPDATE, और DELETE जैसे अन्य स्टेटमेंट्स के साथ प्रयुक्त होने पर, OR ऑपरेटर टेबल में रिकॉर्ड संशोधित करने की भी अनुमति देता है। एक डेटा विश्लेषक के रूप में, OR ऑपरेटर से जुड़ी प्रदर्शन संबंधी समस्याओं और उनके विकल्पों, जैसे UNION ऑपरेटर और CASE WHEN स्टेटमेंट्स, को समझना महत्वपूर्ण है।
मैं आपको प्रोत्साहित करता हूँ कि अलग-अलग डाटासेट्स के साथ OR ऑपरेटर का उपयोग कर रिकॉर्ड फ़िल्टर करने का अभ्यास करें ताकि इसकी कार्यप्रणाली में सहजता आए। अपनी SQL कौशल को आगे बढ़ाने के लिए हमारा Associate Data Analyst in SQL करियर ट्रैक देखें ताकि आप दक्ष विश्लेषक बन सकें। Reporting in SQL कोर्स भी आपको डैशबोर्ड्स का उपयोग कर डेटा का विश्लेषण और प्रस्तुतीकरण सीखने में मदद करेगा। अंत में, मैं DataCamp का SQL Associate Certification लेने की सिफारिश करता हूँ ताकि आप डेटा विश्लेषण हेतु SQL में अपने कौशल और प्रवीणता प्रदर्शित कर सकें।
डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है.
अक्सर पूछे जाने वाले SQL प्रश्न
SQL में OR और AND ऑपरेटर में क्या अंतर है?
यदि दी गई शर्तों में से कोई भी सही हो तो OR ऑपरेटर परिणाम लौटाता है, जबकि AND ऑपरेटर परिणाम तभी लौटाता है जब सभी निर्दिष्ट शर्तें सही हों।
क्या OR ऑपरेटर को एक ही क्वेरी में AND ऑपरेटर के साथ उपयोग किया जा सकता है?
आप OR और AND ऑपरेटरों का उपयोग कई शर्तों के आधार पर रिकॉर्ड फ़िल्टर करने के लिए कर सकते हैं। हालाँकि, शर्तों को समूहित करने और क्वेरी के निष्पादन क्रम को निर्दिष्ट करने के लिए कोष्ठकों का उपयोग करना चाहिए।
SQL में OR ऑपरेटर का उपयोग कर फ़िल्टर की जाने वाली शर्तों की संख्या पर क्या सीमाएँ हैं?
SQL में OR ऑपरेटर का उपयोग कर फ़िल्टर की जाने वाली शर्तों की संख्या पर कोई सीमा नहीं है, हालाँकि बहुत अधिक शर्तें क्वेरी के प्रदर्शन को प्रभावित कर सकती हैं।
क्या OR ऑपरेटर का उपयोग टेबल में डेटा संशोधित करने के लिए किया जा सकता है?
आप INSERT, UPDATE, और DELETE स्टेटमेंट्स के साथ OR ऑपरेटर का उपयोग कर टेबल में निर्दिष्ट रिकॉर्ड संशोधित कर सकते हैं।
OR ऑपरेटर के SQL विकल्प क्या हैं?
कई शर्तों के आधार पर रिकॉर्ड फ़िल्टर करने के लिए OR ऑपरेटर के विकल्प के रूप में UNION ऑपरेटर और CASE WHEN स्टेटमेंट्स का उपयोग किया जाता है।
