מדריך SQL – פסוקית WHERE
עד עכשיו, שלפנו את כל הרשומות בטבלה מסויימת. אך מה קורה אם נרצה לשלוף נתונים לפי חתך מסויים, כלומר, רק נתונים שעונים על קריטריון מסויים. למשל, לשלוף את כל הפריטים שמחירם לא גבוה מ- 6.5 שקלים? לשם כך נשתמש בפסוקית WHERE.
הדוגמאות בפרק זה מתבססות על מסד הנתונים וטבלת הפריטים שיצרנו בפרקים הקודמים במדריך.
אופן השימוש בפקודה:
SELECT עמודות
FROM טבלה
WHERE תנאי
תנאים על עמודות של מספרים
להלן מספר דוגמאות לשאילתות המגדירות תנאים על העמודות Price ו- ProductID שהן מטיפוס מספרים (מספרים שלמים או מספרים עשרוניים).
דוגמא: הרצת השאילתה
SELECT *
FROM Products
WHERE Price < 6.5
תחזיר את רשימת הפריטים שמחירם נמוך מ- 6.5 שקלים.
נשים לב כי התוצאה כוללת רק 3 רשומות, והפריט “פסק זמן” שמחירו 6.5 שקלים בדיוק לא הוחזר בתוצאות השליפה.
לו היינו כותבים את השאילתא הבאה, המשתמשת באופרטור “קטן או שווה” היינו מקבלים את הפריט פסק זמן בתוצאות השליפה.
SELECT *
FROM Products
WHERE Price <= 6.5
דוגמא הפוכה: שליפת הפריטים שמחירם גדול או שווה ל- 6.5:
SELECT *
FROM Products
WHERE Price >= 6.5
דוגמא: שליפת פריטים השייכים לקטגוריה מספר 1:
SELECT *
FROM Products
WHERE Category = 1
התוצאה – רשומה אחת:
דוגמא: רשימת הפריטים השייכים לקטגוריה מספר 3 שלא קיימת – שליפה שלא מחזירה תוצאות:
SELECT *
FROM Products
WHERE Category = 3
כיוון שאין רשומות בטבלה שמתאימות לתנאי הזה, לא נקבל תוצאות.
דוגמא: שליפת הפריטים שקוד הפריט שלהם הוא אחד מתוך מספר אפשרויות (שימוש באופרטור IN)
SELECT *
FROM Products
WHERE ProductID IN (1, 5, 7, 12)
התוצאה: הפריטים שהקוד שלהם הוא 1 ו- 7:
דוגמא: שליפת הפריטים שהמחיר שלהם הוא בטווח מסויים בין 5 שקלים ל- 6 שקלים (כולל) (שימוש באופרטור BETWEEN)
SELECT *
FROM Products
WHERE Price BETWEEN 5.0 AND 5.43
התוצאה:
השוואת מחרוזות יכולה להיעשות גם באמצעות האופרטור LIKE, עליו נלמד בפרק הבא.
שרשור תנאים
במקרים רבים אנו רוצים לשלוף נתונים העונים על יותר מתנאי אחד.
דוגמא: שליפת הפריטים שמחירם גבוה מ- 5 שקלים וגם הקוד שלהם הוא אחד מתוך מספר אפשרויות:
SELECT *
FROM Products
WHERE ProductID IN (1, 5, 7, 12) AND Price > 5.0
נשים לב לשימוש במילה AND כדי לציין שרשומות שישלפו מהשאילתה הזאת צריכים לקיים את שני התנאים.
דוגמא: שליפת הפריטים שמחירם נמוך מ- 5.5 שקלים או שהקוד שלהם הוא אחד מתוך מספר אפשרויות:
SELECT *
FROM Products
WHERE ProductID IN (1, 5, 7, 12) OR Price > 5.5
נשים לב כי השתמשנו במילה OR כדי לציין כי רשומות שישלפו מהשאילתה צריכים לקיים לפחות את אחד התנאים.
התוצאה:
בפרק הזה הכרנו את פסוקית WHERE וראינו מספר אופרטורים לעמודות מספג מספרים. בפרק הבא נכיר את האופרטור LIKE שמאפשר להגדיר תנאים לשדות מסוג מחרוזת (טקסט) כמו שם המוצר.
תגובות בפייסבוק