מדריך SQL – פסוקית WHERE

עד עכשיו, שלפנו את כל הרשומות בטבלה מסויימת. אך מה קורה אם נרצה לשלוף נתונים לפי חתך מסויים, כלומר, רק נתונים שעונים על קריטריון מסויים. למשל, לשלוף את כל הפריטים שמחירם לא גבוה מ- 6.5 שקלים? לשם כך נשתמש בפסוקית WHERE.
הדוגמאות בפרק זה מתבססות על מסד הנתונים וטבלת הפריטים שיצרנו בפרקים הקודמים במדריך.

אופן השימוש בפקודה:

SELECT  עמודות
FROM טבלה
WHERE 
תנאי

תנאים על עמודות של מספרים

להלן מספר דוגמאות לשאילתות המגדירות תנאים על העמודות Price ו- ProductID שהן מטיפוס מספרים (מספרים שלמים או מספרים עשרוניים).

דוגמא: הרצת השאילתה

SELECT  *
FROM Products
WHERE Price < 6.5

תחזיר את רשימת הפריטים שמחירם נמוך מ- 6.5 שקלים.

SELECT פסוקית WHERE

נשים לב כי התוצאה כוללת רק 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

התוצאה – רשומה אחת:

SELECT פסוקית WHERE

דוגמא: רשימת הפריטים השייכים לקטגוריה מספר 3 שלא קיימת – שליפה שלא מחזירה תוצאות:

SELECT  *
FROM Products
WHERE Category = 3

כיוון שאין רשומות בטבלה שמתאימות לתנאי הזה, לא נקבל תוצאות.

SELECT פסוקית WHERE

דוגמא: שליפת הפריטים שקוד הפריט שלהם הוא אחד מתוך מספר אפשרויות (שימוש באופרטור IN)

SELECT  *
FROM Products
WHERE ProductID IN (1, 5, 7, 12
)

התוצאה: הפריטים שהקוד שלהם הוא 1 ו- 7:

SELECT פסוקית WHERE

דוגמא: שליפת הפריטים שהמחיר שלהם הוא בטווח מסויים בין 5 שקלים ל- 6 שקלים (כולל) (שימוש באופרטור BETWEEN)

SELECT  *
FROM Products
WHERE Price BETWEEN 5.0 AND 5.43

התוצאה:

SELECT פסוקית WHERE

השוואת מחרוזות יכולה להיעשות גם באמצעות האופרטור LIKE, עליו נלמד בפרק הבא.

שרשור תנאים

במקרים רבים אנו רוצים לשלוף נתונים העונים על יותר מתנאי אחד.

דוגמא: שליפת הפריטים שמחירם גבוה מ- 5 שקלים וגם הקוד שלהם הוא אחד מתוך מספר אפשרויות:

SELECT  *
FROM Products
WHERE ProductID IN (1, 5, 7, 12) AND Price > 5.0

נשים לב לשימוש במילה AND כדי לציין שרשומות שישלפו מהשאילתה הזאת צריכים לקיים את שני התנאים.

SELECT פסוקית WHERE

דוגמא: שליפת הפריטים שמחירם נמוך מ- 5.5 שקלים או שהקוד שלהם הוא אחד מתוך מספר אפשרויות:

SELECT  *
FROM Products
WHERE ProductID IN (1, 5, 7, 12) OR Price > 5.5

נשים לב כי השתמשנו במילה OR כדי לציין כי רשומות שישלפו מהשאילתה צריכים לקיים לפחות את אחד התנאים.

התוצאה:

 SELECT פסוקית WHERE

בפרק הזה הכרנו את פסוקית WHERE וראינו מספר אופרטורים לעמודות מספג מספרים. בפרק הבא נכיר את האופרטור LIKE שמאפשר להגדיר תנאים לשדות מסוג מחרוזת (טקסט) כמו שם המוצר.

תגיות: , ,

תגובות בפייסבוק