Access SQL: מושגים בסיסיים, אוצר מילים ותחביר

חל על
Access של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

כאשר ברצונך לאחזר נתונים ממסד נתונים, אתה מבקש את הנתונים באמצעות שפת שאילתות מובנית, או SQL. SQL היא שפת מחשב שדומה מאוד לאנגלית, אך שתוכניות מסד נתונים מבינות. כל שאילתה שאתה מפעיל משתמשת ב- SQL מאחורי הקלעים.

הכרת אופן הפעולה של SQL יכולה לעזור לך ליצור שאילתות טובות יותר, ולהקל עליך להבין כיצד לתקן שאילתה שאינה מחזירה את התוצאות הרצויות.

זהו מאמר אחד מתוך סדרה של מאמרים בנושא Access SQL. מאמר זה מתאר את השימוש הבסיסי ב- SQL כדי לבחור נתונים, ומשתמש בדוגמאות כדי להמחיש את תחביר ה- SQL.

במאמר זה

מה זה SQL?

SQL היא שפת מחשב לעבודה עם קבוצות של עובדות וקשרי הגומלין ביניהן. תוכניות של מסדי נתונים יחסיים, כגון Microsoft Office Access, משתמשות ב- SQL כדי לעבוד עם נתונים. בניגוד לשפות מחשב רבות, SQL אינו קשה לקריאה ולהבנה, אפילו למתחילים. בדומה לשפות מחשב רבות, SQL הוא תקן בינלאומי המוכר על ידי גופי תקינה כגון ISO ו- ANSI.

השתמש ב- SQL כדי לתאר ערכות נתונים שיכולות לעזור לך לענות על שאלות. בעת השימוש ב- SQL, עליך להשתמש בתחביר הנכון. תחביר הוא ערכת הכללים שלפיה רכיבי השפה משולבים כהלכה. תחביר SQL מבוסס על תחביר באנגלית ומשתמש ברבים מאותם רכיבים כמו תחביר Visual Basic for Applications (VBA).

לדוגמה, משפט SQL פשוט המאחזר רשימת שמות משפחה של אנשי קשר ששמם הפרטי הוא מרי, עשוי להיות דומה למשפט הבא:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

הערה

SQL משמש לא רק לטיפול בנתונים, אלא גם ליצירה ושינוי של העיצוב של אובייקטי מסד נתונים, כגון טבלאות. החלק של SQL המשמש ליצירה ולשינוי של אובייקטי מסד נתונים נקרא שפת הגדרת נתונים (DDL). נושא זה אינו עוסק ב- DDL. לקבלת מידע נוסף, עיין במאמר יצירה או שינוי של טבלאות או אינדקסים באמצעות שאילתת הגדרת נתונים.

הצהרות SELECT

כדי לתאר ערכת נתונים באמצעות SQL, עליך לכתוב משפט SELECT. משפט SELECT מכיל תיאור מלא של ערכת נתונים שברצונך להשיג ממסד נתונים. זה כולל את הדברים הבאים:

  • אילו טבלאות מכילות את הנתונים.
  • כיצד נתונים ממקורות שונים קשורים.
  • אילו שדות או חישובים יפיקו את הנתונים.
  • קריטריונים שהנתונים צריכים להתאים להם כדי להיכלל.
  • האם למיין את התוצאות וכיצד למיין אותן.

משפטי SQL

בדומה למשפט, משפט SQL מכיל משפטים. כל משפט מבצע פונקציה עבור משפט SQL. משפטים מסוימים נדרשים במשפט SELECT. הטבלה הבאה מפרטת את משפטי SQL הנפוצים ביותר.

משפט SQL פעולה נדרש
SELECT פירוט השדות המכילים נתונים בעלי עניין. כן
FROM פירוט הטבלאות המכילות את השדות המפורטים בפסוקית SELECT. כן
WHERE מציין קריטריוני שדה שחייבים להתמלא בהם בכל רשומה כדי להיכלל בתוצאות. לא
סדר לפי מציין כיצד למיין את התוצאות. לא
GROUP BY במשפט SQL המכיל פונקציות צבירה, פירוט השדות שאינם מסוכמים בפסוקית SELECT. רק אם קיימים שדות כאלה
HAVING במשפט SQL המכיל פונקציות צבירה, מציין תנאים החלים על שדות המסוכמים במשפט SELECT. לא

תנאי SQL

כל משפט SQL מורכב ממונחים - הניתנים להשוואה לחלקי הדיבר. הטבלה הבאה מפרטת סוגים של מונחי SQL.

מונח SQL חלק דיבור מקביל הגדרה דוגמה
מזהה שם עצם שם שבו תשתמש לזיהוי אובייקט מסד נתונים, כגון שם שדה. לקוחות. [מספר טלפון]
אופרטור פועל או תואר הפועל מילת מפתח המייצגת פעולה או משנה פעולה. AS
קבוע שם עצם ערך שאינו משתנה, כגון מספר או NULL. 42
ביטוי שם תואר שילוב של מזהים, אופרטורים, קבועים ופונקציות שתוצאתם היא ערך יחיד. >= מוצרים. [מחיר ליחידה]

לראש הדף

משפטי SQL בסיסיים: SELECT, FROM ו- WHERE

משפט SQL מופיע בצורה הכללית:

SELECT field_1
FROM table_1
WHERE criterion_1
;

הערה

  • Access מתעלם ממעברי שורה במשפט SQL. עם זאת, שקול להשתמש בשורה עבור כל משפט כדי לשפר את מידת הקריאות של משפטי ה- SQL עבורך ועבור אחרים.
  • כל משפט SELECT מסתיים בנקודה-פסיק (;). תו הנקודה-פסיק יכול להופיע בסוף המשפט האחרון או בשורה בפני עצמה בסוף משפט ה- SQL.

דוגמה ב- Access

להלן מדגים כיצד עשוי להיראות משפט SQL עבור שאילתת בחירה פשוטה ב- Access:

כרטיסיית אובייקטים של SQL המציגה משפט SELECT

1. פסוקית SELECT

2. פסוקית FROM

3. משפט WHERE

משפט SQL לדוגמה זה מציין "בחר את הנתונים המאוחסנים בשדות בשם E-mail Address and Company מהטבלה בשם Contacts, במיוחד הרשומות שבהן ערך השדה City הוא Seattle".

בוא נסתכל על הדוגמה, משפט אחד בכל פעם, כדי לראות כיצד תחביר SQL עובד.

פסוקית SELECT

SELECT [E-mail Address], Company

זהו משפט SELECT. הוא מורכב מאופרטור (SELECT) ואחריו שני מזהים ([כתובת דואר אלקטרוני] וחברה).

אם מזהה מכיל רווחים או תווים מיוחדים (כגון "כתובת דואר אלקטרוני"), יש לתחום אותו בסוגריים מרובעים.

פסוקית SELECT אינה חייבת לציין אילו טבלאות מכילות את השדות, ואין לה אפשרות לציין תנאים שהנתונים ייכללו חייבים להתקיים.

משפט SELECT מופיע תמיד לפני הפסוקית FROM במשפט SELECT.

הפסוקית FROM

FROM Contacts

זהו פסוקית ה- FROM. הוא מורכב מאופרטור (FROM) ואחריו מזהה (Contacts).

פסוקית FROM אינה מפרטת את השדות שיש לבחור.

משפט WHERE

WHERE City="Seattle"

זהו משפט WHERE. היא מורכבת מאופרטור (WHERE) ואחריו ביטוי (City="Seattle").

הערה

בניגוד למשפטי SELECT ו- FROM, משפט WHERE אינו רכיב נדרש של משפט SELECT.

באפשרותך לבצע רבות מהפעולות ש- SQL מאפשר לך לבצע באמצעות משפטי SELECT, FROM ו- WHERE. מידע נוסף אודות אופן השימוש במשפטים אלה מוצג במאמרים נוספים אלה:

לראש הדף

מיון התוצאות: סדר לפי

בדומה ל- Microsoft Excel, Access מאפשר לך למיין תוצאות שאילתות בגליון נתונים. באפשרותך גם לציין בשאילתה כיצד ברצונך למיין את התוצאות בעת הפעלת השאילתה, באמצעות הפסוקית ORDER BY. אם אתה משתמש במשפט ORDER BY, זהו המשפט האחרון במשפט SQL.

משפט ORDER BY מכיל רשימה של השדות שבהם ברצונך להשתמש לצורך מיון, באותו סדר שבו ברצונך להחיל את פעולות המיון.

לדוגמה, נניח שברצונך למיין תחילה את התוצאות לפי ערך השדה Company בסדר יורד, ו- אם קיימות רשומות עם אותו ערך עבור Company - לאחר מכן ימוינו לפי הערכים בשדה 'כתובת דואר אלקטרוני' בסדר עולה. משפט ORDER BY שלך ייראה בערך כך:

ORDER BY Company DESC, [E-mail Address]

הערה

כברירת מחדל, Access ממיין את הערכים בסדר עולה (א-ת, מהקטן ביותר לגדול ביותר). במקום זאת, השתמש במילת המפתח DESC כדי למיין ערכים בסדר יורד.

לקבלת מידע נוסף אודות המשפט ORDER BY, עיין בנושא המשפט ORDER BY.

לראש הדף

עבודה עם נתונים מסוכמים: GROUP BY ו- HAVING

לעתים ברצונך לעבוד עם נתונים מסוכמים, כגון סך המכירות בחודש או הפריטים היקרים ביותר במלאי. לשם כך, עליך להחיל פונקציית צבירה על שדה בפסוקית SELECT. לדוגמה, אם ברצונך שהשאילתה תציג את מספר כתובות הדואר האלקטרוני הרשומות עבור כל חברה, פסוקית SELECT תיראה בערך כך:

SELECT COUNT([E-mail Address]), Company

פונקציות הצבירה שבהן באפשרותך להשתמש תלויות בסוג הנתונים הנמצאים בשדה או בביטוי שבו ברצונך להשתמש. לקבלת מידע נוסף אודות פונקציות הצבירה הזמינות, עיין במאמר פונקציות צבירה של SQL.

ציון שדות שאינם נמצאים בשימוש בפונקציית צבירה: הפסוקית GROUP BY

בעת שימוש בפונקציות צבירה, בדרך כלל עליך גם ליצור משפט GROUP BY. פסוקית GROUP BY מפרטת את כל השדות שעליהם אינך מחיל פונקציית צבירה. אם אתה מחיל פונקציות צבירה על כל השדות בשאילתה, אינך צריך ליצור את המשפט GROUP BY.

משפט GROUP BY מופיע מיד לאחר משפט WHERE, או משפט FROM אם משפט WHERE אינו כולל. פסוקית GROUP BY מפרטת את השדות כפי שהם מופיעים בפסוקית SELECT.

לדוגמה, בהמשך לדוגמה הקודמת, אם פסוקית SELECT מחילה פונקציית צבירה על [כתובת דואר אלקטרוני] אך לא על Company, משפט GROUP BY שלך ייראה בערך כך:

GROUP BY Company

לקבלת מידע נוסף אודות המשפט GROUP BY, עיין בנושא המשפט GROUP BY.

הגבלת ערכי צבירה באמצעות קריטריוני קבוצה: פסוקית HAVING

אם ברצונך להשתמש בקריטריונים כדי להגביל את התוצאות, אך השדה שעליו ברצונך להחיל קריטריונים נמצא בשימוש בפונקציית צבירה, אין באפשרותך להשתמש בפסוקית WHERE. במקום זאת, השתמש בפסוקית HAVING. פסוקית HAVING פועלת כמו פסוקית WHERE, אך משמשת עבור נתונים מצטברים.

לדוגמה, נניח שאתה משתמש בפונקציה AVG (שמחשבת ערך ממוצע) עם השדה הראשון בפסוקית SELECT:

SELECT COUNT([E-mail Address]), Company

אם ברצונך שהשאילתה תגביל את התוצאות בהתבסס על הערך של אותה פונקציית COUNT, אין באפשרותך להשתמש בקריטריונים עבור שדה זה בפסוקית WHERE. במקום זאת, אתה מכניס את הקריטריונים לפסוקית HAVING. לדוגמה, אם ברצונך שהשאילתה תחזיר שורות רק אם קיימות יותר מכתובת דואר אלקטרוני אחת המשויכת לחברה, פסוקית HAVING תיראה בערך כך:

HAVING COUNT([E-mail Address])>1

הערה

שאילתה יכולה להכיל פסוקית WHERE ופסוקית HAVING — קריטריונים עבור שדות שאינם נמצאים בשימוש בפונקציית צבירה כלולים בפסוקית WHERE, וקריטריונים עבור שדות הנמצאים בשימוש עם פונקציות צבירה כלולים בפסוקית HAVING.

לקבלת מידע נוסף אודות פסוקית HAVING, עיין בנושא פסוקית HAVING.

לראש הדף

שילוב תוצאות שאילתה: UNION

כאשר ברצונך לסקור את כל הנתונים המוחזרים על-ידי מספר שאילתות בחירה דומות יחד, כערכה משולבת, עליך להשתמש באופרטור UNION.

האופרטור UNION מאפשר לך לשלב שני משפטי SELECT למשפט אחד. משפטי SELECT המשלבים חייבים לכלול אותו מספר של שדות פלט, באותו סדר, ועם סוגי נתונים זהים או תואמים. בעת הפעלת השאילתה, הנתונים מכל קבוצה של שדות מתאימים משולבים בשדה פלט אחד, כך שפלט השאילתה מכיל את אותו מספר שדות כמו כל אחד ממשפטי הבחירה.

הערה

למטרות שאילתת איחוד, סוגי הנתונים 'מספר' ו'טקסט' תואמים.

בעת השימוש באופרטור UNION, באפשרותך גם לציין אם תוצאות השאילתה צריכות לכלול שורות כפולות, אם קיימות כאלה, באמצעות מילת המפתח ALL.

תחביר ה- SQL הבסיסי עבור שאילתת איחוד המשלבת שני משפטי SELECT הוא כדלקמן:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

לדוגמה, נניח שיש לך טבלה בשם Products וטבלה אחרת בשם Services. שתי הטבלאות כוללות שדות המכילים את שם המוצר או השירות, המחיר, האחריות או זמינות הערבות והאם אתה מציע את המוצר או השירות באופן בלעדי. על אף שהטבלה 'מוצרים' מאחסנת מידע בנושא אחריות, והטבלה 'שירותים' מאחסנת מידע על אחריות, המידע הבסיסי זהה (בין אם מוצר או שירות מסוים כולל הבטחה לאיכות). באפשרותך להשתמש בשאילתת איחוד, כמו בנוסח הבא, כדי לשלב את ארבעת השדות משתי הטבלאות:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

לקבלת מידע נוסף אודות האופן שבו ניתן לשלב משפטי SELECT באמצעות האופרטור UNION, ראה שילוב התוצאות של מספר שאילתות בחירה באמצעות שאילתת איחוד.

לראש הדף