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 45This 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 સાથે મેળ ખાય છે?
- Sugar અને Soap (S થી શરૂ થતા names)
- ફક્ત Sugar (exact મેળ)
- S અક્ષર વાળા બધા items
- 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.