בחירת נתונים בתוך טווחים ב- SQL

היכרות עם סעיף 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 מתוך מוצרים איפה 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.