arrow

פרק 2 - שליפה ותמרון נתונים

Where

נניח, שאנחנו לא רוצים לקבל את כל הנתונים של כל השורות בטבלה. במקום זאת אולי נרצה רק את הנתונים של שורות, שעומדות בקריטריון מסוים. למשל, נרצה לקבל מידע על עובדים, אבל לא על כולם אלא רק על אלה, שמרויחים יותר מ- 45,000$ לשנה. במיוחד עבור המקרים הללו SQL מעמידה לרשותנו את פסוקית WHERE . פסוקית WHERE מאפשרת לציין תנאים, שבהם יצטרך לעמוד תא עמודה על מנת שיחשב כ"התאמה" ויוחזר עם התוצאות. במונחים של דקדוק SQL פסוקית WHERE נקראת פרדיקט. באופן כללי פסוקית WHERE נראית כך:

SELECT column_name
FROM table_name
WHERE where_clause;
      

תחשבו על המקרה הבא,  שבו נרצה שמסד הנתונים יחזיר לנו שורות מטבלת המכירות (SALES), שבהן מספר העובד שווה ל- "101".

SELECT * 
FROM SALES
WHERE E_NUM = 101;     
      

מסד הנתונים יחזיר את הנתונים הבאים:


---------------------------------------------
001	001	1	 99.99	101	102
003	002    	1	865.99	101	103
---------------------------------------------
      

אפשר להשתמש בפסוקית WHERE בצרוף עם אופרטורים להשוואה אחרים מלבד סימן "=". בפרט אפשר להשתמש באופרטורים ''<'', ''>'', ''=>'', או ''=<'' כדי לבחור טווחים. לפיכך, על מנת לקבל דיווח על כל העובדים המרוויחים יותר מ- 45,000$ לשנה אפשר להשתמש בקטע הבא:

SELECT *
FROM EMPLOYEES
WHERE EMP_SALARY > 45000;
      

אם צריך להשוות בין נתונים מסוג תו או מחרוזת, אפשר לשים את המחרוזת, שאליה משווים, בין גרשיים בודדות (''). לדוגמא: כדי לקבל את מספר הטלפון של ריק תן 

(Rick Tan) מטבלת הלקוחות (CLIENTS) ניתן להשתמש בקטע הבא:

SELECT C_PHONE, C_NAME
FROM CLIENTS
WHERE C_NAME = 'Rick Tan';
     

במקרה זה מסד הנתונים יחזיר:

C_PHONE	    	C_NAME
------------------------
649-2038	Rick Tan
------------------------

שים לב, למרות שבדרך כלל SQL לא עושה הבדלה בין אותיות קטנות לגדולות, כאשר מבצעים השואה בין מחרוזות, תוך שימוש בגרשיים בודדות, גודל האותיות כן משפיע ולכן צריך לשים לב לכך. לפיכך WHERE name = 'CHRIS' לא יחזיר את אותה תשובה כמו WHERE name = 'Chris'.

arrow Wildcards
תוכן עניינים
And, Or, Not arrow


פרק 1 -> פרק 2 -> פרק 3 -> פרק 4 -> פרק 5 ->