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 ને બે વાર સંદર્ભે.ASkeyword વૈકલ્પિક છે (sales sપણ ચાલે છે).
Quiz
sales table ને જોતાં (groceries: Sugar 45, Rice 60), WHERE category = 'Grocery' AND price > 100 કેટલી rows પાછી આપે છે?
- શૂન્ય, કોઈ grocery 100 થી ઉપર નથી, અને AND ને બંને સાચા જોઈએ
- બે, બંને groceries મેળ ખાય છે
- એક, Rice નજીક છે
- પાંચ, બધી 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 નું છે.
- યાદ રાખવાની યુક્તિ: AND કડક મહેમાન-list છે (સંકોચાય), OR ઉદાર વાળી (વધે).