אם השאילתות שלך אינן עובדות מספיק קשה, הוספת כמה משפטי SQL בסיסיים יכולה לעזור לך למקד את התוצאות. בוא נתבונן בכמה סוגים של משפטי SQL ובמשפטים או בחלקים שאתה עשוי לערוך כדי להשיג את התוצאות הרצויות.
במאמר זה
- יצירת משפט Select
- התאמה אישית של פסוקית SELECT
- התאמה אישית של פסוקית FROM
- התאמה אישית של משפט WHERE
- התאמה אישית באמצעות אופרטור UNION
יצירת משפט Select
משפט SQL select מכיל שניים עד שלושה משפטים. פסוקית SELECT מורה למסד הנתונים היכן לחפש את הנתונים ומבקשת ממנו להחזיר תוצאה ספציפית.
הערה
משפטי SELECT מסתיימים תמיד בנקודה-פסיק (;) בסוף המשפט האחרון או בשורה בפני עצמה בסוף משפט ה- SQL.
משפט הבחירה הבא מבקש מ- Access לקבל מידע מהעמודות 'כתובת דואר אלקטרוני' ו'חברה', מהטבלה 'אנשי קשר', ובאופן ספציפי כאשר הוא מוצא את "סיאטל" בעמודה 'עיר'.
השאילתה שלעיל מכילה שלושה משפטים: SELECT, FROM ו- WHERE.
1. פסוקית SELECT מפרטת את העמודות המכילות את הנתונים שבהם ברצונך להשתמש, וכוללת אופרטור (SELECT) ואחריו שני מזהים (E-mail Address ו- Company). אם מזהה כולל רווחים או תווים מיוחדים (כגון "כתובת דואר אלקטרוני"), הקף את המזהה בתוך סוגריים מרובעים.
2. הפסוקית FROM מזהה את טבלת המקור. בדוגמה זו, היא כוללת אופרטור (FROM) ואחריו מזהה (Contacts).
3. משפט WHERE הוא משפט אופציונלי. הדוגמה כוללת אופרטור (WHERE) ואחריו ביטוי (City="Seattle").
לקבלת מידע נוסף אודות שאילתות בחירה, ראה יצירת שאילתת בחירה פשוטה.
להלן רשימה של משפטי SQL נפוצים:
| משפט SQL | פעולה | נדרש? |
|---|---|---|
| SELECT | פירוט השדות המכילים נתונים בעלי עניין. | כן |
| FROM | פירוט הטבלאות המכילות את השדות המפורטים בפסוקית SELECT. | כן |
| WHERE | מציין קריטריוני שדה שחייבים להתמלא בהם בכל רשומה כדי להיכלל בתוצאות. | לא |
| סדר לפי | מציין כיצד למיין את התוצאות. | לא |
| GROUP BY | במשפט SQL המכיל פונקציות צבירה, פירוט השדות שאינם מסוכמים בפסוקית SELECT. | רק אם קיימים שדות כאלה |
| HAVING | במשפט SQL המכיל פונקציות צבירה, מציין תנאים החלים על שדות המסוכמים במשפט SELECT. | לא |
כל משפט SQL מורכב מתנאים. להלן רשימה של כמה מונחי SQL נפוצים.
התאמה אישית של פסוקית SELECT
| התאמה אישית | דוגמה |
|---|---|
| כדי לראות רק את הערכים הייחודיים. השתמש במילת המפתח DISTINCT בפסוקית SELECT. |
לדוגמה, אם הלקוחות שלך מגיעים מכמה סניפים שונים, ולחלקם יש את אותו מספר טלפון וברצונך לראות מספר טלפון רשום פעם אחת בלבד, משפט SELECT יהיה כך:SELECT DISTINCT [txtCustomerPhone] |
| כדי לשנות את האופן שבו מזהה מופיע בתצוגת גליון נתונים לצורך שיפור הקריאות. השתמש באופרטור AS (מילת מפתח המייצגת פעולה או משנה פעולה) עם כינוי שדה בפסוקית SELECT. כינוי שדה הוא שם שאתה מקצה לשדה כדי להקל על קריאת התוצאות. |
בחר [txtCustPhone] AS [טלפון לקוח] |
התאמה אישית של פסוקית FROM
| התאמה אישית | דוגמה |
|---|---|
| באפשרותך להשתמש בכינוי טבלה או בשם אחר שאתה מקצה לטבלה במשפט select. כינוי טבלה שימושי אם השם של שם הטבלה ארוך, במיוחד כשיש לך שדות מרובים בעלי שם זהה בטבלאות שונות. | כדי לבחור נתונים משני השדות, ששניהם נקראים 'מזהה', אחד מהם מגיע מהטבלה tblCustomer והשני מגיע מהטבלה tblOrder: בחר [tblCustomer]. [מזהה], [tblOrder]. [תעודת זהות] השתמש באופרטור AS להגדרת כינויי טבלה בפסוקית FROM: FROM [tblCustomer] AS [C], [tblOrder] AS [O] לאחר מכן תוכל להשתמש בכינויי טבלאות אלה במשפט SELECT, באופן הבא:SELECT [C]. [מזהה], [O]. [תעודת זהות] |
| השתמש בצירופים כדי לשלב זוגות של רשומות משני מקורות נתונים לתוצאה בודדת, או כדי לציין אם לכלול רשומות מאחת הטבלאות כאשר אין רשומה תואמת בטבלה המקושרת. צרף את הטבלאות כך שהשאילתה תשלב את הפריטים מהטבלאות ולא תכלול פריטים כאשר אין רשומה תואמת בטבלה האחרת |
כך עשוי להיראות הפסוקית FROM:FROM [tblCustomer] INNER JOIN [tblOrder] ON [tblCustomer]. [CustomerID]=[tblOrder]. [מזהה לקוח] |
אודות שימוש בצירופים
קיימים שני סוגים של צירופים, צירופים פנימיים וחיצוניים. צירופים פנימיים נפוצים יותר בשאילתות. בעת הפעלת שאילתה עם צירוף פנימי, התוצאה מציגה רק את הפריטים שבהם קיים ערך משותף בשתי הטבלאות המצורפות.
צירופים חיצוניים מציינים אם לכלול נתונים כאשר לא קיימים ערכים משותפים. צירופים חיצוניים הם כיווניים, כלומר באפשרותך לציין אם לכלול את כל הרשומות מהטבלה הראשונה שצוינה בצירוף (נקרא הצירוף השמאלי), או לכלול את כל הרשומות מהטבלה השניה בצירוף (נקרא הצירוף הימני). צירוף חיצוני מבוסס על תחביר ה- SQL הבא:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
ראה מידע נוסף אודות שימוש בצירופים בשאילתה בצירוף טבלאות ושאילתות.
התאמה אישית של משפט WHERE
פסוקית WHERE כוללת קריטריונים שעוזרים להגביל את מספר הפריטים המוחזרים בשאילתה. ראה דוגמאות לקריטריוני שאילתות וכיצד הם פועלים.
דוגמה לאופן שבו באפשרותך להתאים אישית את פסוקית WHERE הבסיסית היא הגבלת התוצאות של שאילתה; נניח שברצונך לאתר את מספר הטלפון של לקוח, ואתה זוכר רק את שם המשפחה שלו בתור בייגל. בדוגמה זו, שמות המשפחה מאוחסנים בשדה LastName, כך שתחביר SQL יהיה:
WHERE [LastName]='Bagel'
השתמש בפסוקית WHERE גם כדי לשלב מקורות נתונים עבור עמודות המכילות נתונים תואמים, אך סוגי נתונים שונים. אפשרות זו שימושית מאחר שלא ניתן ליצור צירוף בין שדות בעלי סוגי נתונים שונים. השתמש בשדה אחד כקריטריון לשדה השני, עם מילת המפתח LIKE . לדוגמה, אם ברצונך להשתמש בנתונים מתוך הטבלה 'נכסים' והטבלה 'עובדים', רק כאשר סוג הנכס בשדה 'סוג נכס' של הטבלה 'נכסים' כולל את המספר 3 בשדה 'כמות' של הטבלה 'עובדים', כך ייראה משפט WHERE:
WHERE field1 LIKE field2
חשוב
אין באפשרותך לציין קריטריונים עבור שדה הנמצא בשימוש עם פונקציית צבירה בפסוקית WHERE. במקום זאת, השתמש בפסוקית HAVING כדי לציין קריטריונים עבור שדות צבורים.
התאמה אישית באמצעות אופרטור UNION
השתמש באופרטור UNION כאשר ברצונך לראות תצוגה משולבת של תוצאות מכמה שאילתות בחירה דומות. לדוגמה, אם מסד הנתונים שלך מכיל טבלת מוצרים וטבלת שירותים, ולשתיהן יש שלושה שדות: הצעה בלעדית או מוצר או שירות, מחיר, אחריות או אחריות. למרות שהטבלה 'מוצרים' מאחסנת מידע בנושא אחריות, והטבלה 'שירותים' מאחסנת מידע על אחריות, המידע הבסיסי זהה. באפשרותך להשתמש בשאילתת איחוד כדי לשלב את שלושת השדות משתי הטבלאות, באופן הבא:
SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;
בעת הפעלת השאילתה, הנתונים מכל קבוצה של שדות מתאימים משולבים בשדה פלט אחד. כדי לכלול שורות כפולות בתוצאות, השתמש באופרטור ALL.
הערה
המשפט Select חייב לכלול אותו מספר של שדות פלט, באותו סדר, ועם סוגי נתונים זהים או תואמים. למטרות שאילתת איחוד, סוגי הנתונים 'מספר' ו'טקסט' תואמים.
לקבלת מידע נוסף אודות שאילתות איחוד, ראה שימוש בשאילתת איחוד כדי להציג תוצאה מאוחדת משאילתות מרובות.