Where clause and operators: in, between, like, not in, comparison operators, wildcard, order by, group by, distinct

WHERE rows को छानकर सिर्फ वही देता है जो आप चाहते हैं, comparison operators, IN, BETWEEN, LIKE (% wildcards के साथ) और NOT IN का इस्तेमाल करते हुए, जबकि ORDER BY नतीजे को sort करता है, DISTINCT duplicates हटाता है, और GROUP BY rows को per-category summaries में समेटता है।

12 min read · 10 cards · 2 checks

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


Theory

मुझे सब कुछ मत दो

SELECT * FROM sales हर row उगल देता है। पर Meera को शायद ही कभी सब कुछ चाहिए, उसे '50 से कम की groceries' चाहिए, या 'S से शुरू होने वाले items', या 'price से sort की हुई list'।

वह चुनना ही WHERE clause और उसके साथी हैं। यहीं SELECT एक data dump होना बंद करता है और एक सवाल बन जाता है।

और आप यह idea पहले मिल चुके हैं: WHERE ठीक Unit 2 का Filter है और ORDER BY ठीक उसका Sort, अब click के बजाय typed। यहाँ दुकान की table फिर से नज़र में रखने को।

Practical

The sales table (keep this in mind)

-- id | item  | category | price | qty
--  1 | Sugar | Grocery  |   45  | 20
--  2 | Tea   | Beverage |  120  | 15
--  3 | Rice  | Grocery  |   60  | 30
--  4 | Soap  | Personal |   35  | 25
--  5 | Milk  | Dairy    |   30  | 40

SELECT item, price FROM sales
WHERE category = 'Grocery' AND price < 50;
-- returns: Sugar 45

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

At a glance

WHERE operators

Operatorअर्थउदाहरण
=, >, <, >=, <=, <>तुलनाprice > 40
IN (a, b)list में किसी से मेलcategory IN ('Grocery','Dairy')
BETWEEN a AND bएक range में (inclusive)price BETWEEN 30 AND 60
LIKE 'S%'Pattern मेल (% और _)item LIKE 'S%'
NOT IN (a, b)एक list को छोड़ता हैcategory NOT IN ('Personal')

Theory

LIKE और wildcards

LIKE text patterns को दो wildcards से मिलाता है:

  • `%` किसी भी क्रम के characters के लिए (शून्य समेत)।
  • `_` ठीक एक character के लिए।

तो item LIKE 'S%' Sugar और Soap से मेल खाता है (S से शुरू)। item LIKE '%a' किसी भी 'a' पर ख़त्म होने वाले से मेल खाता है। item LIKE 'T__' 'Tea' से मेल खाता है (T + ठीक दो और)।

यों ही आप 'से शुरू होने वाले names', 'शामिल करने वाले', 'पर ख़त्म होने वाले' खोजते हैं, SQL का pattern-matching घोड़ा। % (कई) बनाम _ (एक) सीधा रखना एक पक्का मार्क है।

Theory

नतीजे को आकार देना: ORDER BY, DISTINCT, GROUP BY

rows छानने के आगे, तीन clauses output को आकार देते हैं:

  • ORDER BY sort करता है: ORDER BY price DESC (सबसे ऊँचा पहले; ASC default है)।
  • DISTINCT duplicate values हटाता है: SELECT DISTINCT category FROM sales हर category एक बार सूचीबद्ध करता है।
  • GROUP BY एक value साझा करती rows को groups में समेटता है, per-group summaries के लिए aggregate functions के साथ इस्तेमाल: SELECT category, SUM(qty) FROM sales GROUP BY category कुल मात्रा per category देता है।

WHERE rows चुनता है; GROUP BY उन्हें बाँधता है; ORDER BY उन्हें व्यवस्थित करता है; DISTINCT उन्हें dedupe करता है।

Quiz

sales table में WHERE item LIKE 'S%' किन items से मेल खाता है?

  1. Sugar और Soap (S से शुरू होने वाले names)
  2. सिर्फ Sugar (exact मेल)
  3. S अक्षर वाले सारे items
  4. Tea और Rice
Show the answer

Sugar और Soap (S से शुरू होने वाले names)

'S%' का मतलब 'S के बाद कोई भी characters', तो यह हर item name से मेल खाता है जो S से शुरू होता है: Sugar और Soap। जिन names में S कहीं भी हो उनसे मेल खाने को आप '%S%' लिखते; एक exact एक-अक्षर-जमा-दो के लिए _ इस्तेमाल करते। % (कोई क्रम) बनाम _ (एक character) फ़र्क़ सबसे ज़्यादा पूछा जाने वाला LIKE तथ्य है।

Think first

BETWEEN inclusive है

Meera SELECT item FROM sales WHERE price BETWEEN 30 AND 60 चलाती है। table को देखते हुए (prices 45, 120, 60, 35, 30), कौन से items वापस आते हैं? सीमाओं पर ध्यान से नज़र रखिए।

Show the answer

Sugar (45), Rice (60), Soap (35), Milk (30), चार items। BETWEEN inclusive है, तो 30 और 60 दोनों शामिल हैं (Milk ठीक 30 पर और Rice ठीक 60 पर दोनों योग्य)। सिर्फ Tea (120) छूटता है। Students अक्सर गलत मानते हैं कि BETWEEN endpoints छोड़ता है, यह उन्हें शामिल करता है, जो एक क्लासिक exam पकड़ है।

Watch out

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

LIKE wildcards: `%` = कितनी भी संख्या के characters, `_` = ठीक एक, इन्हें मत बदलिए। BETWEEN दोनों सिरों का inclusive है। बराबर-नहीं `<>` (या !=) लिखा जाता है। Text values को quotes चाहिए ('Grocery'), numbers को नहीं। और GROUP BY rows को aggregates के लिए group करता है, यह ORDER BY (जो सिर्फ sort करता है) जैसा नहीं। सटीक operator इस्तेमाल वहाँ है जहाँ SQL marks जीते या हारे जाते हैं।

Theory

आपने यह Unit 1 में click किया था

जुड़ाव महसूस कीजिए: WHERE वह Filter है जो आपने Unit 2 में tick किया, ORDER BY Sort है, GROUP BY Consolidate है, और DISTINCT Remove Duplicates है। जो कुछ आपने Excel में माउस से किया, अब आप सटीक typed commands से करते हैं जो लाखों rows तक बढ़ते हैं। यही spreadsheets पर databases का पूरा वादा है। अगला lesson: AND, OR, EXISTS से conditions जोड़ना, और aliases से चीज़ों को नाम देना।

Summary

Key takeaways

  • WHERE rows को एक condition से छानता है =, >, <, <>, IN, BETWEEN, LIKE, NOT IN का इस्तेमाल करते हुए।
  • LIKE patterns मिलाता है: % = characters का कोई क्रम, _ = ठीक एक character।
  • BETWEEN a AND b दोनों endpoints का INCLUSIVE है।
  • ORDER BY sort करता है (ASC default, DESC ऊँचे-से-नीचे); DISTINCT duplicate values हटाता है।
  • GROUP BY एक value साझा करती rows को per-group summaries के लिए groups में समेटता है।
  • याद रखने का hook: WHERE = Excel Filter, ORDER BY = Sort, GROUP BY = Consolidate, अब typed।

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

Where clause and operators: in, between, like, not in, comparison operators, wildcard, order by, group by, distinct · Data Processing and Analysis (DPA) · Gri-Learn