היכרות עם סעיף WHERE ובתנאי
שפת שאילתות מובנית (SQL) מספקת למשתמשי מסד נתונים את היכולת ליצור שאילתות מותאמות אישית כדי לחלץ מידע ממאגרי מידע. במאמר קודם, בחנו מידע מחילוץ באמצעות שאילתות SQL SELECT . נרחיב את הדיון ונבחן כיצד תוכל לבצע שאילתות מתקדמות כדי לאחזר נתונים שתואמים לתנאים ספציפיים.
הבה נבחן דוגמה המבוססת על מסד הנתונים Northwind הנפוץ, אשר לעתים קרובות ספינות עם מוצרים באתר כמו הדרכה.
הנה קטע מתוך טבלת המוצרים של מסד הנתונים:
מזהה מוצר | שם מוצר | SupplierID | כמות ליחידה | מחיר ליחידה | יחידות במלאי |
---|---|---|---|---|---|
1 | חי | 1 | 10 קופסאות x 20 שקיות | 18.00 | 39 |
2 | צ'אנג | 1 | 24 - 12 בקבוקי עוז | 19.00 | 17 |
3 | סירופ אניסיד | 1 | 12 - 550 מ"ל בקבוקים | 10.00 | 13 |
4 | השף של אנטון Cajun תיבול | 2 | 48 - 6 קנקנים | 22.00 | 53 |
5 | השף של אנטון Gumbo לערבב | 2 | 36 תיבות | 21.35 | 0 |
6 | התפשטות סבתא | 3 | 12 - 8 קנקנים | 25.00 | 120 |
7 | האגסים היבשים של הדוד בוב | 3 | 12 - 1 ק"ג pkgs. | 30.00 | 15 |
תנאי גבול פשוטים
ההגבלות הראשונות שאנו מציבים בשאילתה שלנו כרוכות בתנאי גבול פשוטים. אנו יכולים לציין את אלה במשפט WHERE של שאילתת SELECT, תוך שימוש בהצהרות מצב פשוט שנבנו עם אופרטורים סטנדרטיים, כגון <,>,> = ו- <=.
ראשית, בואו ננסה שאילתה פשוטה המאפשרת לנו לחלץ רשימה של כל המוצרים באתר שיש להם UnitPrice של יותר מ 20.00:
זה מייצר רשימה של ארבעה מוצרים, כפי שמוצג להלן:
ProductName UnitPrice ------- ------ - שף אנטון של Gumbo לערבב 21.35 השף של אנטון Cajun תיבול 22.00 סבתא של Boysenberry מורחים 25.00 אגס אורגני יבשים של דבש בוב 30.00אנחנו יכולים גם להשתמש בפסקה WHERE עם ערכי מחרוזת. זה בעצם משווה תווים למספרים, כאשר A מייצג את הערך 1 ו- Z המייצג את הערך 26. לדוגמה, נוכל להציג את כל המוצרים עם שמות המתחילים ב- U, V, W, X, Y או Z בשאילתה הבאה:
בחר שם מוצר מתוך מוצרים היכן ProductName> = 'T'אשר מייצר את התוצאה:
ProductName ------- הדוב של בוב אורגני אגסים מיובשיםמבטא טווחים באמצעות גבולות
סעיף WHERE גם מאפשר לנו ליישם תנאי טווח על ערך באמצעות מספר תנאים. לדוגמה, אם רצינו לקחת את השאילתה שלנו למעלה ולהגביל את התוצאות למוצרים עם מחירים בין 15.00 ל -20.00, נוכל להשתמש בשאילתה הבאה:
בחר ProductName, UnitPrice מוצרים היכן UnitPrice> 15.00 ו- UnitPrice <20.00זה מייצר את התוצאה המוצגת להלן:
-------- -------- Chai 18.00 Chang 19.00להביע טווחים בין שני
SQL גם מספק תחביר BETWEEN קיצור אשר מפחית את מספר התנאים שאנחנו צריכים לכלול עושה את השאילתה קריא יותר. לדוגמה, במקום להשתמש בשני תנאי WHERE למעלה, נוכל לבטא את אותה שאילתה כמו:
בחר ProductName, UnitPrice מוצרים בהם UnitPrice בין 15.00 ו -20.00כמו עם שאר התנאים שלנו, BETWEEN עובד עם ערכי מחרוזת גם כן. אם רצינו ליצור רשימה של כל הארצות המתחילות ב- V, W או X, נוכל להשתמש בשאילתה:
בחר ProductName ממוצרים שבהם ProductName בין "A" ו- "D"אשר מייצר את התוצאה:
ProductName ------- סירופ אניסיד צ'אי צ'אנג השף של גאמבו של אנטון שף אנטון של Cajun תיבולסעיף WHERE הוא חלק חזק של שפת SQL המאפשרת לך להגביל את התוצאות לערכים נופלים בטווחים מסוימים. זה נפוץ מאוד כדי לעזור להביע את ההיגיון העסקי צריך להיות חלק מכל הכלים המקצועיים של מסד הנתונים.
זה לעתים קרובות מועיל לשלב סעיפים משותפים לתוך הליך מאוחסן כדי להפוך אותו נגיש לאלה ללא ידע ב- SQL.