Access SQL: מושגים בסיסיים, אוצר מילים ותחביר
Applies ToAccess של 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_NameFROM ContactsWHERE 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

ביטוי

שם תואר

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

>= Products. [מחיר יחידה]

לראש הדף

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

משפט SQL מקבל את התבנית הכללית:

SELECT field_1FROM table_1WHERE criterion_1;

הערות: 

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

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

דוגמה ב- Access

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

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

1. משפט SELECT

2. משפט FROM

3. משפט WHERE

משפט SQL לדוגמה זה מקריא "Select the data that is stored in the fields named E-mail Address and Company from the table named Contacts, specific those records in which the value of the field City is Seattle".

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

משפט SELECT

SELECT [E-mail Address], Company

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

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

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

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

משפט FROM

FROM Contacts

זהו משפט FROM. הוא מורכב אופרטור (FROM) ואחריו מזהה (אנשי קשר).

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

משפט WHERE

WHERE City="Seattle"

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

הערה: בניגוד לפסוקיות SELECT ו- FROM, משפט WHERE אינו רכיב נדרש במשפט SELECT.

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

לראש הדף

מיון התוצאות: ORDER BY

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

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

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

ORDER BY Company DESC, [E-mail Address]

הערה: כברירת מחדל, Access ממיין ערכים בסדר עולה (A-Z, מהקטן ביותר לגדול ביותר). השתמש במילת המפתח 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 Clause.

לראש הדף

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

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

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

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

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

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

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

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

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

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

לראש הדף

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.