מהן שאילתות המשנה בקורלציה?

שאילתת משנה מתואמת היא שימוש מתוחכם ב- SQL.

SQL

מסדי נתונים יחסיים המודרנית ביותר לשלב SQL להוסיף ולעדכן נתונים, ליצור מבנים ולאסוף מידע. SQL מבוססת על תיאוריות על נתונים שפותחו בשנות ה -70 והיא מזוקקת מאז ומתמיד. הוא מורכב ממערכת של מדינות, כולל SELECT, INSERT, CREATE ו- DELETE, ואחריו מספר סעיפים המציינים את הנתונים והאפשרויות המנוהלים, כגון מיון וקבוצה. השימוש הנרחב במסדי נתונים נובע מהגמישות והתחכום של SQL; הוא מאפשר לארגונים לנתח קבוצות נתונים מורכבות בדרכים רבות.

שאילתות ושאילתות משנה

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

בחר * ממלאי;

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

בחר * ממלאי היכן warehouse_code = 'chicago5';

הצהרה זו מציגה את רשומות המלאי של קוד הפקדה, chicago5.

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

בחר * ממלאי שבו warehouse_code IN (בחר warehouse_code ממחסנים איפה אזור = 'midwest');

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

שאילתת משנה מתואמת

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

בחר part_number, מחיר, warehouse_code ממלאי i1 איפה המחיר> (בחר ממוצע (מחיר) ממלאי i2 WHERE warehouse_code.i1 = warehouse_code.i2);

שתי השאילתות משתמשות בטבלאות כינויים "I1" ו- "I2". למרות שהם מתייחסים לאותו טבלה, השימוש בכינוי מאפשר התייחסות לשאילתות כשתי ישויות נפרדות.

חסרונות של המבצע

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