AND, OR operators, Exists and Not Exists, use of Alias

AND एक query को सँकरा करता है (दोनों conditions सही हों), OR उसे चौड़ा करता है (कोई एक चलेगा), EXISTS जाँचता है कि एक subquery कोई मेल खाती row पाती है या नहीं, और एक alias पठनीय queries के लिए एक table या column को छोटा उपनाम देता है।

10 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

एक से ज़्यादा condition

Meera के सवाल और समृद्ध होते हैं: 'groceries जो साथ ही सस्ती हों', या 'Dairy या Beverage में कुछ भी'। एक condition काफ़ी नहीं; उसे उन्हें जोड़ना है।

वह है AND और OR, और आप उनका बर्ताव पहले से पूरी तरह जानते हैं, वे BCA102 truth tables और Unit 2 के Excel IF वाले वही AND/OR हैं। AND सख़्त वाला है, OR उदार वाला।

यह lesson conditions जोड़ता है, EXISTS पर झाँकता है (जाँचना कि मेल खाती rows मौजूद हैं या नहीं), और चीज़ों को पठनीय उपनाम देता है aliases से। पुराना logic, नया syntax।

Theory

सख़्त list और उदार list

एक शादी का न्योता कहता है 'परिवार और Surat में रहते हों', एक सख़्त filter, दोनों होने चाहिए, तो मेहमानों की list सिकुड़ती है। इसे 'परिवार या दोस्त' कीजिए, एक उदार filter, कोई एक योग्य, तो list बढ़ती है। AND सँकरा करता है, OR चौड़ा करता है। ठीक BCA102 का truth-table बर्ताव: AND सिर्फ तब सही जब सारे inputs सही हों; OR तब सही जब कोई एक हो।

Practical

AND narrows, OR widens

-- AND: both must hold (narrows)
SELECT item FROM sales
WHERE category = 'Grocery' AND price < 50;
-- returns: Sugar

-- OR: either will do (widens)
SELECT item FROM sales
WHERE category = 'Dairy' OR category = 'Beverage';
-- returns: Tea, Milk

-- Alias: a readable nickname
SELECT item AS product, price AS cost FROM sales;

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Theory

Precedence, EXISTS, और aliases

  • Precedence: AND, OR से ज़्यादा कसकर बँधता है, तो A OR B AND C का मतलब A OR (B AND C)। शक हो तो parentheses इस्तेमाल कीजिए ठीक वही कहने को जो आपका मतलब है।
  • EXISTS (subquery): सही अगर अंदरूनी query कोई row लौटाए; NOT EXISTS सही अगर वह कोई नहीं लौटाए। मौजूदगी जाँचने को: 'वे categories जिनमें 100 से ऊपर कम से कम एक item हो'।
  • Alias (AS): एक column (price AS cost) या table (FROM sales AS s) के लिए एक अस्थायी उपनाम। यह output को पठनीय बनाता है और तब ज़रूरी है जब एक query किसी table को दो बार संदर्भित करे। AS keyword वैकल्पिक है (sales s भी चलता है)।

Quiz

sales table को देखते हुए (groceries: Sugar 45, Rice 60), WHERE category = 'Grocery' AND price > 100 कितनी rows लौटाता है?

  1. शून्य, कोई grocery 100 से ऊपर नहीं, और AND को दोनों सही चाहिए
  2. दो, दोनों groceries मेल खाते हैं
  3. एक, Rice क़रीब है
  4. पाँच, सारी rows
Show the answer

शून्य, कोई grocery 100 से ऊपर नहीं, और AND को दोनों सही चाहिए

AND को दोनों conditions सही चाहिए। groceries (Sugar 45, Rice 60) सचमुच groceries हैं, पर कोई भी 100 से ऊपर नहीं, तो price condition विफल होती है और AND शून्य rows देता है। अगर यह OR होता, तो यह सारी groceries जमा 100 से ऊपर कुछ भी (Tea) लौटाता। AND सख़्त overlap तक सँकरा करता है, ठीक BCA102 का AND truth table।

Think first

Parentheses जोड़िए

Meera लिखती है WHERE category = 'Grocery' OR category = 'Dairy' AND price < 40. क्योंकि AND ज़्यादा कसकर बँधता है, SQL इसे असल में कैसे पढ़ता है, और क्या यह वही है जो उसका शायद मतलब था?

Show the answer

SQL इसे category = 'Grocery' OR (category = 'Dairy' AND price < 40) के रूप में पढ़ता है, AND पहले group होता है। तो यह सारी groceries (कोई भी price) जमा सिर्फ सस्ती dairy लौटाता है। Meera का शायद मतलब था 'groceries या dairy, दोनों 40 से कम', जिसे स्पष्ट parentheses चाहिए: (category='Grocery' OR category='Dairy') AND price < 40। यह precedence झमेला ठीक वजह है कि आप मिली-जुली AND/OR को हमेशा parenthesise करते हैं।

Watch out

Marks कहाँ कटते हैं

यह भूलना कि AND, OR से ज़्यादा कसकर बँधता है, बिना parentheses मिली-जुली conditions गलत पढ़ी जाती हैं (ऊपर का क्लासिक जाल)। AND (सँकरा, सारे सही) को OR (चौड़ा, कोई एक सही) से गड्डमड्ड करना। यह सोचना कि EXISTS data लौटाता है, यह true/false लौटाता है (कोई मेल खाती row मौजूद है क्या?)। और यह चूकना कि एक alias बस एक उपनाम है (AS वैकल्पिक) जो store किया data नहीं बदलता। मिले-जुले logic को parenthesise कीजिए, हमेशा।

Theory

वही logic, तीसरी बार

उपस्थितियाँ गिनिए: AND/OR truth tables (BCA102), Excel IF-AND-OR (Unit 2), और अब SQL WHERE (Unit 4)। जब एक idea गणित, spreadsheets और databases में बार-बार आता है, तो वह बुनियाद है, एक बार अपना लीजिए, हमेशा इस्तेमाल कीजिए। अगले lessons SELECT को summarise करवाते हैं: aggregate functions (SUM, AVG, COUNT, MAX, MIN) जो कई rows को एक जवाब में बदलती हैं, और scalar functions जो हर value को बदलती हैं।

Summary

Key takeaways

  • AND को दोनों conditions सही चाहिए (नतीजे को सँकरा करता है); OR को कम से कम एक (चौड़ा करता है)।
  • AND, OR से ज़्यादा कसकर बँधता है, मिली-जुली conditions नियंत्रित करने को parentheses इस्तेमाल कीजिए।
  • EXISTS (subquery) सही है अगर subquery कोई row लौटाए; NOT EXISTS अगर वह कोई नहीं लौटाए।
  • एक alias (AS) एक column या table को पठनीय उपनाम देता है; AS वैकल्पिक है।
  • यह वही AND/OR logic है जो BCA102 truth tables और Excel IF का है।
  • याद रखने का hook: AND सख़्त मेहमान-list है (सिकुड़ती), OR उदार वाली (बढ़ती)।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Concepts of SQL and Queries (Single Table only)

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

AND, OR operators, Exists and Not Exists, use of Alias · Data Processing and Analysis (DPA) · Gri-Learn