עריכת משפטי SQL לחידוד התוצאות של שאילתה

עריכת משפטי SQL לחידוד התוצאות של שאילתה

חשוב: מאמר זה תורגם בתרגום מכונה, ראה כתב ויתור. תוכל למצוא את הגרסה באנגלית של המאמר כאן לעיונך.

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

הערה: מאמר זה אינו חל על יישומי אינטרנט של Access – סוג מסדי הנתונים שאתה מעצב באמצעות Access ומפרסם באינטרנט.

במאמר זה

יצירת משפט Select

התאמה אישית של משפט SELECT

התאמה אישית של ה-from

התאמה אישית של ה-where

התאמה אישית באמצעות האופרטור UNION

יצירת משפט SELECT

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

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

משפט ה- SELECT הבא מבקש מ- Access לקבל מידע מהעמודות E-mail Address (כתובת דואר אלקטרוני) ו- Company (חברה), בטבלה Contacts (אנשי קשר), היכן שהוא מוצא את העיר Seattle (סיאטל) בעמודה City (עיר).

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

השאילתה שלעיל כוללת שלושה משפטים: 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 שלך ייראה כך:

SELECT DISTINCT [txtCustomerPhone] 

כדי לשנות את האופן שבו מזהה מופיע בתצוגת גליון נתונים לשיפור הקריאות.

השתמש באופרטור AS (מילת מפתח המייצגת פעולה או משנה פעולה) עם כינוי שדה במשפט ה- SELECT. כינוי שדה הוא שם שאתה מקצה לשדה כדי להפוך את התוצאות לקריאות יותר.

SELECT [txtCustPhone] AS [Customer Phone]

התאמה אישית של משפט FROM

התאמה אישית

דוגמה

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

כדי לבחור נתונים משני שדות ששמם ID, שאחד מהם מקורו בטבלה tblCustomer והשני בטבלה tblOrder:

SELECT [tblCustomer].[ID], 
[tblOrder].[ID]

השתמש באופרטור AS כדי להגדיר כינויי טבלאות במשפט FROM:

FROM [tblCustomer] AS [C], 
[tblOrder] AS [O]

לאחר מכן תוכל להשתמש בכינויי טבלאות אלה במשפט SELECT שלך, כמו בדוגמה זו:

SELECT [C].[ID], 
[O].[ID]

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

צרף את הטבלאות כך שהשאילתה תשלב את הפריטים מהטבלאות, ולא תכלול פריטים כאשר אין רשומה תואמת בטבלה האחרת

כך עשוי להיראות משפט ה- FROM:

FROM [tblCustomer] 
INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

אודות שימוש בצירופים

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

צירופים חיצוניים מציינים אם לכלול נתונים כאשר לא קיים ערך משותף. צירופים חיצוניים הם כיווניים, כלומר באפשרותך לציין אם לכלול את כל הרשומות מהטבלה הראשונה המפורטת בצירוף (הנקראת צירוף שמאלי), או אם לכלול את כל הרשומות מהטבלה השניה בצירוף (הנקראת צירוף ימני). להלן תחביר ה- SQL של צירוף חיצוני:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

ראה מידע נוסף אודות שימוש בצירופים בשאילתה צירוף טבלאות ושאילתות.

לראש הדף

התאמה אישית של משפט WHERE

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

דוגמה לאופן שבו באפשרותך להתאים אישית את משפט WHERE הבסיסי היא הגבלת התוצאות של שאילתה; נניח שברצונך לאתר מספר הטלפון של לקוח, ואתה זוכר רק את שם המשפחה שלו, Bagel. בדוגמה זו, שמות המשפחה מאוחסנים בשדה LastName, כך שתחביר ה- SQL יהיה:

WHERE [LastName]='Bagel'

השתמש במשפט where גם כדי לשלב מקורות נתונים עבור עמודות בעלות תואמים נתונים, אך סוגי נתונים שונים. פעולה זו שימושית מאז לא ניתן ליצור צירוף בין שדות בעלי סוגי נתונים שונים. שימוש שדה אחד כקריטריון עבור שדה אחרים, עם מילת המפתח LIKE . לדוגמה, אם ברצונך להשתמש בנתונים נכסים וטבלת העובדים, רק כאשר הקלד סוג המשאב בהנכס שדה הטבלה נכסי מכיל מספר 3 בשדה כמות הטבלה 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 חייב לכלול אותו מספר של שדות פלט, באותו סדר, ועם אותם סוגי נתונים או עם סוגי נתונים תואמים. למטרת שאילתות איחוד, סוגי הנתונים 'מספר' ו'טקסט' תואמים.

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

לראש הדף

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

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×