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 માં સમેટે છે.
  • યાદ રાખવાની યુક્તિ: 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