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

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

לראש הדף

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

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

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

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

×