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