כאשר עובדים עם DBMS יחסי בהם נתוניםהמאוחסנים בטבלה, משתמשים לרוב במשימה להביא ערכים שנכללים (לא כלולים) בטווח מסוים. שפת SQL מאפשרת לך להגדיר קבוצה שצריכה (לא צריכה) להיות שייכת לערך על ידי אפשרויות שונות - מפעיל In, מפעיל Like, שילוב של פחות או יותר תנאים, וגם הצהרת SQL Between. התיאור והדוגמאות במאמר זה יוקדשו לאפשרות האחרונה.
פשוטו כמשמעו, התרגום בין SQL לתרגום -"בין." השימוש בו מאפשר לך להגדיר את ההגבלה "מ To To" לשדה ספציפי, ואם הערך הבא ייפול בתוך הטווח, הקודם יקבל את הערך "True" והערך ייפול לבחירה הסופית.
התחביר של המפעיל פשוט ביותר:
בחר * מהטבלה t1 כאשר t1.n בין 0 ל -7 |
כפי שאתה יכול לראות, אחרי מילת המפתח בין, עליך לציין את הערך של הגבול התחתון של הטווח, ואז AND ואת ערך הגבול העליון.
בואו נפרט עם אילו סוגי נתונים אופרטור SQL יכול לעבוד:
יש לזה בין אופרטור SQL תכונות מסוימות. בואו להכיר אותם:
בעת עבודה עם טקסט, הערך של הגבול העליון של הטווח לא ייכלל בבחירה אם לא יצוין במדויק ככל האפשר. בחלקים הבאים, נשקול תכונה זו ביתר פירוט.
בואו נכין טבלה עם נתונים על מנהלים העובדים בארגון. הטבלה תהיה בעלת המבנה הבא:
שם שדה | סוג מידע | תיאור |
קוד | דֶלְפֵּק | מזהה ייחודי של העובד |
שם משפחה | טֶקסט | שם משפחה של העובד |
שם פרטי | טֶקסט | שם העובד |
שם אמצעי | טֶקסט | פטרונימה של העובד |
פול | טֶקסט | מין העובד (M / F) |
תאריך הקבלה | תאריך שעה | תאריך גיוס עובדים |
מספר ילדים | מִספָּרִי | מספר הילדים שיש לעובד |
בואו נמלא את הטבלה עם הנתונים הבאים:
קוד | שם משפחה | שם פרטי | שם אמצעי | פול | תאריך הקבלה | מספר ילדים |
1 | אלכסנדרובה | אירינה | ניקולייבנה | F | 01.05.2014 | 1 |
2 | בורובוי | אנדריי | סטפנוביץ ' | M | 21.09.2013 | 0 |
3 | וינוגרדוב | סרגיי | פבלוביץ ' | M | 15.06.1998 | 1 |
4 | שומילין | אלכסנדר | בוריסוביץ ' | M | 25.12.2004 | 2 |
5 | וישניאקוב | ליאוניד | אלכסנדרוביץ ' | M | 09.10.2007 | 0 |
6 | טרופניקוב | ריחן | סרגייביץ ' | M | 12.01.2016 | 3 |
7 | פנינים | ניקיטה | וסילביץ ' | M | 11.01.2017 | 1 |
8 | Avdeeva | ניקה | קונסטנטינובנה | F | 31.03.2001 | 2 |
9 | יעקובלב | ליאוניד | ניקולאביץ ' | M | 16.02.2009 | 0 |
בואו להרכיב שאילתת sql ביניהן, שתעזור לנו לבחור את כל העובדים עם 2 או 3 ילדים:
בחר מנהלים. * ממנהלים איפה מנהלים. ילדים בין 2 ל -3 |
התוצאה תהיה שלוש שורות עם נתונים על עובדים עם השמות Shumilin, Tropnikov ו- Avdeeva.
כעת נבחר את העובדים שנשכרו ב -1 בינואר2005 עד 31 בדצמבר 2016. יש לציין כי DBMS שונים מאפשרים לך לכתוב תאריכים בתנאים בדרכים שונות. ברוב המקרים, התאריך פשוט נאלץ להמיר לשנת יום-חודש (או מה שנוח יותר) ולכתוב במרכאות בודדות או כפולות. ב- MS Access, התאריך מצורף בסימן "#". בואו נריץ דוגמה המבוססת על זה:
בחר מנהלים. *, מנהלים. תאריך קבלה ממנהלים איפה מנהלים. תאריך קבלה בין התאריכים 1/1/2005 # ועד 31/12/2016 # |
התוצאה תהיה חמישה עובדים שנשכרו במהלך התקופה שצוינה, כולל.
לאחר מכן, בוא נראה כיצד בין SQL עובד עם מחרוזות.
משימה נפוצה מאוד שיש לפתורכאשר עובדים עם שמות העובדים, יש לבחור רק את אלה ששמותיהם מתחילים באות מסוימת. ננסה ונמלא את הבקשה ונבחר עובדים ששמות המשפחה שלהם מתחילים בשמות משפחה מ- A עד B:
בחר מנהלים. * ממנהלים איפה מנהלים. שם משפחה בין "A" ו- "B" הזמנה עד 2 |
התוצאה היא כדלקמן:
קוד | שם משפחה | שם פרטי | שם אמצעי | פול | תאריך הקבלה | מספר ילדים |
8 | Avdeeva | ניקה | קונסטנטינובנה | F | 31.03.2001 | 2 |
1 | אלכסנדרובה | אירינה | ניקולייבנה | F | 01.05.2014 | 1 |
2 | בורובוי | אנדריי | סטפנוביץ ' | M | 21.09.2013 | 0 |
כפי שאתה יכול לראות, שני עובדים עם שם משפחההאות ב 'לא נכללה ברשימה. מה הסיבה לכך? הנקודה היא כיצד בדיוק המפעיל משווה מחרוזות באורך לא שווה. קו "B" קצר יותר מקו "וינוגרדוב" ומרופד ברווחים. אך בעת מיון אלפביתי, הרווחים יהיו תווים מובילים, ושם המשפחה לא ייכלל בבחירה. DBMS שונים מציעים פתרונות שונים לבעיה זו, אך לרוב קל יותר לציין את האות הבאה של האלפבית בטווח האמינות:
בחר מנהלים. * ממנהלים איפה מנהלים. שם משפחה בין "A" ל- "D" הזמנה עד 2 |
בעת ביצוע שאילתה זו, התוצאה תספק אותנו לחלוטין.
ניואנס כזה קיים רק כאשר עובדים עם נתונים סמליים, אך הוא מראה שכאשר עובדים אפילו עם אופרטורים פשוטים כל כך ביניהם, יש להיזהר.