הערה: אנו מעוניינים לספק לך את תוכן העזרה העדכני ביותר במהירות האפשרית, בשפה שלך. דף זה תורגם באמצעות אוטומציה והוא עשוי לכלול שגיאות דקדוק או אי-דיוקים. מטרתנו היא כי תוכן זה יהיה שימושי עבורך. האם תוכל לספר לנו אם המידע הועיל לך, בחלק התחתון של דף זה? לנוחותך, הנה המאמר באנגלית.
אם השאילתות שלך אינן מניבות תוצאות מוצלחות במיוחד, הוספת כמה משפטי SQL בסיסיים יכולה לסייע למיקוד התוצאות. להלן נבחן כמה סוגים של משפטי SQL ואת המשפטים או החלקים שתוכל לערוך כדי להשיג את התוצאות הרצויות.
הערה: מאמר זה אינו חל על יישומי אינטרנט של Access – סוג מסדי הנתונים שאתה מעצב באמצעות Access ומפרסם באינטרנט.
במאמר זה
יצירת משפט SELECT
משפט SELECT של SQL כולל שניים עד שלושה משפטים. משפט SELECT אומר למסד הנתונים היכן לחפש את הנתונים ומבקש ממנו להחזיר תוצאה ספציפית.
הערה: משפטי SELECT מסתיימים תמיד בנקודה-פסיק (;) בסוף הפסוקית האחרונה או בשורה בפני עצמה בסוף משפט ה- SQL.
משפט ה- SELECT הבא מבקש מ- Access לקבל מידע מהעמודות E-mail Address (כתובת דואר אלקטרוני) ו- Company (חברה), בטבלה Contacts (אנשי קשר), היכן שהוא מוצא את העיר Seattle (סיאטל) בעמודה City (עיר).
השאילתה שלעיל כוללת שלושה משפטים: SELECT, FROM ו- WHERE.
1. משפט SELECT מפרט את העמודות המכילות את הנתונים שבהם ברצונך להשתמש וכולל אופרטור (SELECT) שלאחריו שני מזהים (E-mail Address ו- Company). אם מזהה מכיל רווחים או תווים מיוחדים (כגון E-mail Address), הקף את המזהה בסוגריים מרובעים.
2. משפט FROM מזהה את טבלת המקור. בדוגמה זו יש אופרטור (FROM) שלאחריו מזהה (Contacts).
3. משפט WHERE הוא משפט אופציונלי. בדוגמה זו יש אופרטור (WHERE) שלאחריו ביטוי (City="Seattle").
לקבלת מידע נוסף אודות שאילתות בחירה, ראה יצירת שאילתת בחירה פשוטה.
להלן רשימה של משפטי SQL נפוצים:
משפט SQL | הפעולה המבוצעת | נדרש ? |
---|---|---|
SELECT |
פירוט השדות המכילים נתונים רצויים. |
כן |
FROM |
פירוט הטבלאות המכילות את השדות המפורטים במשפט SELECT. |
כן |
WHERE |
קביעת קריטריוני שדות שצריכים להתקיים בכל רשומה שתיכלל בתוצאות. |
לא |
ORDER BY |
קביעת אופן המיון של התוצאות. |
לא |
GROUP BY |
במשפט SQL המכיל פונקציות צבירה, פירוט השדות שאינם מסוכמים במשפט SELECT. |
רק אם קיימים שדות כאלה |
HAVING |
במשפט SQL המכיל פונקציות צבירה, קביעת תנאים החלים על שדות המסוכמים במשפט SELECT. |
לא |
כל משפט SQL מורכב ממונחים. להלן רשימה של כמה מונחי SQL נפוצים.
מונח SQL | הגדרה | דוגמה |
---|---|---|
מזהה |
שם המשמש לזיהוי אובייקט מסד נתונים, כגון שם העמודה. |
[E-mail Address] ו- Company |
אופרטור |
מילת מפתח המייצגת פעולה או משנה פעולה. |
AS |
קבוע |
ערך שאינו משתנה, כגון מספר או NULL. |
42 |
expression |
שילוב של מזהים, אופרטורים, קבועים ופונקציות, שתוצאתם היא ערך יחיד. |
>= Products.[Unit Price] |
התאמה אישית של משפט SELECT
התאמה אישית | דוגמה |
---|---|
כדי להציג רק את הערכים הייחודיים. השתמש במילת המפתח DISTINCT במשפט ה- SELECT. |
לדוגמה, אם הלקוחות שלך משויכים לכמה סניפים שונים ולחלקם אותו מספר טלפון, וברצונך שכל מספר טלפון יופיע פעם אחת בלבד, משפט ה- SELECT שלך ייראה כך:
|
כדי לשנות את האופן שבו מזהה מופיע בתצוגת גליון נתונים לשיפור הקריאות. השתמש באופרטור AS (מילת מפתח המייצגת פעולה או משנה פעולה) עם כינוי שדה במשפט ה- SELECT. כינוי שדה הוא שם שאתה מקצה לשדה כדי להפוך את התוצאות לקריאות יותר. |
|
התאמה אישית של משפט FROM
התאמה אישית | דוגמה |
---|---|
באפשרותך להשתמש בכינוי טבלה או בשם אחר שאתה מקצה לטבלה במשפט SELECT. כינוי טבלה שימושי כאשר שם הטבלה ארוך, במיוחד כאשר יש לך שדות מרובים בעלי שמות זהים מטבלאות שונות. |
כדי לבחור נתונים משני שדות ששמם ID, שאחד מהם מקורו בטבלה tblCustomer והשני בטבלה tblOrder:
השתמש באופרטור AS כדי להגדיר כינויי טבלאות במשפט FROM:
לאחר מכן תוכל להשתמש בכינויי טבלאות אלה במשפט SELECT שלך, כמו בדוגמה זו:
|
השתמש בצירופים כדי לשלב זוגות של רשומות משני מקורות נתונים בתוצאה בודדת, או כדי לציין אם לכלול רשומות מאחת מהטבלאות אם אין רשומה תואמת בטבלה הקשורה. צרף את הטבלאות כך שהשאילתה תשלב את הפריטים מהטבלאות, ולא תכלול פריטים כאשר אין רשומה תואמת בטבלה האחרת |
כך עשוי להיראות משפט ה- FROM:
|
אודות שימוש בצירופים
קיימים שני סוגים של צירופים: צירופים פנימיים וצירופים חיצוניים. צירופים פנימיים נפוצים יותר בשאילתות. בעת הפעלת שאילתה הכוללת צירוף פנימי, התוצאה מציגה רק פריטים שבהם קיים ערך משותף בשתי הטבלאות המצורפות.
צירופים חיצוניים מציינים אם לכלול נתונים כאשר לא קיים ערך משותף. צירופים חיצוניים הם כיווניים, כלומר באפשרותך לציין אם לכלול את כל הרשומות מהטבלה הראשונה המפורטת בצירוף (הנקראת צירוף שמאלי), או אם לכלול את כל הרשומות מהטבלה השניה בצירוף (הנקראת צירוף ימני). להלן תחביר ה- SQL של צירוף חיצוני:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
ראה מידע נוסף אודות שימוש בצירופים בשאילתה צירוף טבלאות ושאילתות.
התאמה אישית של משפט WHERE
משפט WHERE כולל קריטריונים המסייעים להגביל את מספר הפריטים המוחזרים בשאילתה. ראה דוגמאות של קריטריוני שאילתות ואופן הפעולה שלהם.
דוגמה לאופן שבו באפשרותך להתאים אישית את משפט WHERE הבסיסי היא הגבלת התוצאות של שאילתה; נניח שברצונך לאתר מספר הטלפון של לקוח, ואתה זוכר רק את שם המשפחה שלו, Bagel. בדוגמה זו, שמות המשפחה מאוחסנים בשדה LastName, כך שתחביר ה- SQL יהיה:
WHERE [LastName]='Bagel'
השתמש במשפט WHERE גם כדי לשלב מקורות נתונים עבור עמודות המכילות נתונים תואמים, אך סוגי נתונים שונים. אפשרות זו שימושית ביותר מאחר שלא ניתן ליצור צירוף בין שדות עם סוגי נתונים שונים. השתמש בשדה אחד כקריטריון עבור השדה השני, באמצעות מילת המפתח LIKE. לדוגמה, אם ברצונך להשתמש בנתונים מתוך הטבלה Assets (נכסים) והטבלה Employees (עובדים), רק כאשר סוג הנכס בשדה asset type (סוג הנכס) של הטבלה Assets מכיל את המספר 3 בשדה Quantity (כמות) של הטבלה Employees, כך ייראה משפט ה- WHERE שלך:
WHERE field1 LIKE field2
חשוב: במשפט WHERE אין באפשרותך לציין קריטריונים עבור שדה באמצעות פונקציית צבירה. במקום זאת, נעשה שימוש בפסוקית HAVING לקביעת קריטריונים עבור שדות נצברים.
התאמה אישית באמצעות האופרטור UNION
השתמש באופרטור UNION כאשר ברצונך לראות תצוגה משולבת של תוצאות מכמה שאילתות בחירה דומות. לדוגמה, אם מסד הנתונים שלך כולל טבלת מוצרים בשם Products וטבלת שירותים בשם Services, ושתיהן כוללות שלושה שדות: exclusive offer, exclusive product או exclusive service (מוצר בלעדי, מבצע בלעדי או שירות בלעדי), price (מחיר), warranty או guarantee (אחריות או עירבון). על-אף שהטבלה Products מאחסנת מידע אודות אחריות, והטבלה Services מאחסנת מידע אודות עירבון, המידע הבסיסי הוא זהה. באפשרותך להשתמש בשאילתת איחוד כדי לשלב את שלושת השדות משתי הטבלאות כך:
SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;
בעת הפעלת השאילתה, הנתונים מכל ערכה של שדות תואמים משולבים בשדה פלט אחד. כדי לכלול שורות כפולות בתוצאות, השתמש באופרטור ALL.
הערה: משפט SELECT חייב לכלול אותו מספר של שדות פלט, באותו סדר, ועם אותם סוגי נתונים או עם סוגי נתונים תואמים. למטרת שאילתות איחוד, סוגי הנתונים 'מספר' ו'טקסט' תואמים.
לקבלת מידע נוסף אודות שאילתות איחוד, ראה שימוש בשאילתת איחוד להצגת תוצאה מאוחדת משאילתות מרובות.