/ / SQL INNER JOIN הצהרה: דוגמאות, תחביר ותכונות

הצהרת SQL INNER JOIN: דוגמאות, תחביר ותכונות

Разработка любой базы данных подразумевает не רק יצירה ומילוי של טבלאות עם מגוון מידע, אלא גם עבודה נוספת עם נתונים. כדי לבצע נכון מגוון של משימות לבחירת נתונים מטבלאות והפקת דוחות, נעשה שימוש בעיצוב Select הרגיל.

דוגמה להצטרפות פנימית של sql

אחזור נתונים מהטבלאות

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

בחר * מתוך אדם

כאשר האדם הוא שם הטבלה שממנה יש להביא נתונים.

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

דרכים לחיבור טבלאות נוספות

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

  1. הצהרת הצטרפות פנימית.
  2. שמאל הצטרפות או, זו הדרך השנייה להקליט, הצטרפות חיצונית לשמאל.
  3. צלב הצטרפות
  4. הצטרפות מלאה.

תוכלו ללמוד כיצד להשתמש במפעילי צירוף טבלה בפועל על ידי בחינת השימוש במפעיל SQL - Inner Join. דוגמה לשימוש בו תיראה כך:

בחר * מתוך אדם

הצטרפות פנימית לתת-חלוקה ב- Su_Person = Pe_ID

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

שילוב נתונים בטבלאות שורה אחר שורה

דוגמאות להצהרת הצטרפות פנימית של SQL

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

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

תיאור מפעיל הצטרפות פנימית

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

אם ניקח בחשבון עבודה זו מנקודת מבט של פרשנות גרפית, נקבל את המבנה של אופרטור ה- SQL Inner Join, דוגמה לכך ניתן להציג באמצעות התרשים הבא:

דוגמאות תחביר להצטרף ל- SQL

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

הצטרף לתחביר המפעיל

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

  • הצטרפות פנימית [שם הטבלה] ב [שדה המפתח מהטבלה שאליה אנו מתחברים] = [שדה המפתח של הטבלה המחוברת].

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

דוגמה ותיאור חיבור למבחר של טבלה אחת

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

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

לשימוש ברור יותר, שקול את אופרטור ה- SQL Inner Join (דוגמאות לשימוש בו בטבלה אחת ושתי טבלאות). אם ניקח בחשבון דוגמה לטבלה אחת, אז הכל די פשוט:

בחר * מתוך אדם

הצטרפות פנימית לתת-חלוקה ב- Su_Person = Pe_ID

דוגמה להצטרפות לשני טבלאות ולשאילתת משנה

SQL והצטרף למצטרף פנימי למפעיל

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

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

בחר Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name מאדם

הצטרפות פנימית לתת-חלוקה ב- Su_Person = Pe_ID

הצטרפות פנימית יוצאת ב- Su_Depart = Dep_ID ו- Pe_Depart = Dep_ID

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

בחר Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name מאדם

הצטרפות פנימית לתת-חלוקה ב- Su_Person = Pe_ID

הצטרפות פנימית (בחר Dep_ID, Dep_Name, Pe_Depart מ- Depart) כ- T ב- Su_Depart = Dep_ID ו- Pe_Depart = Dep_ID

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

דוגמה לשימוש במפעיל הצטרפות פנימית לבחירות ממספר רב של טבלאות

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

דוגמה 3 להצטרפות פנימית לטבלת sql

במקרה זה, שלושה תנאים נוספים נוספים מחוברים (לטבלה הראשית) ומוצגים מספר תנאים לבחירת נתונים.

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

דוגמה 3 להצטרפות פנימית לטבלת sql

מסקנה

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

אהבתי:
0
הודעות פופולריות
התפתחות רוחנית
מזון
כן