תמונה מאת המחבר
בעולם הנתונים, SQL עדיין עומד בתור השפה הצרפתית לאינטראקציה עם מסדי נתונים.
עד היום היא עומדת כאחת השפות הנפוצות ביותר להתמודדות עם נתונים ועדיין נחשבת למוצר חובה לכל איש מקצוע טוב בתחום הנתונים.
עם זאת, כל מי שעבד עם שאילתות SQL מורכבות יודע שהן יכולות להפוך במהירות לחיות קשות - קשות לקריאה, לתחזוקה או לשימוש חוזר.
זו הסיבה שהיום לא מספיק לדעת SQL, אנחנו צריכים להיות טובים ביצירת שאילתות. וזה בעצם סוג של אמנות.
זה המקום שבו ביטויי טבלה נפוצים (CTEs) נכנסים לתמונה, והופכים את אמנות כתיבת השאילתות למלאכה מובנית יותר ונגישה יותר.
אז בואו נגלה יחד כיצד לקודד שאילתות קריאות וניתנות לשימוש חוזר.
אם אתה תוהה מה זה CTE, אתה נמצא במאמר הנכון.
ביטוי טבלה משותף (CTE) הוא ערכת תוצאות זמנית המוגדרת בטווח הביצוע של משפט SQL יחיד.
אלו טבלאות זמניות שניתן להפנות אליהן פעמים רבות בתוך שאילתה בודדת, ובדרך כלל משמשות אותן כדי לפשט צירוף ותתי שאילתות מורכבים, במטרה סופית להגדיל את הקריאה והארגון של קוד SQL.
אז הם מהווים כלי רב עוצמה לפירוק שאילתות מורכבות לחלקים פשוטים יותר.
הנה הסיבה שכדאי לך לשקול להשתמש ב-CTE:
- מודולריות: אתה יכול לפרק את ההיגיון המורכב לנתחים קריאים.
- קְרִיאוּת: זה מקל על הבנת הזרימה של שאילתות SQL.
- שימוש חוזר: ניתן להפנות ל-CTE מספר פעמים בשאילתה אחת, תוך הימנעות מחזרות.
הקסם מתחיל בסעיף WITH, שקודם לשאילתה הראשית שלך ומגדיר טבלאות זמניות שונות (CTEs) עם כינויים.
לכן, אנחנו תמיד צריכים להתחיל את השאילתה שלנו עם הפקודה "WITH" כדי להתחיל להגדיר CTEs משלנו. על ידי שימוש ב-CTE, אנו יכולים לחלק כל שאילתת SQL מורכבת ל:
– טבלאות זמניות קטנות שמחשבות משתנים קשורים.
– טבלה סופית שלוקחת רק את המשתנים שאנו רוצים בתור הפלט שלנו.
וזו בדיוק הגישה המודולרית שאנחנו רוצים בכל קוד!
תמונה מאת המחבר
אז השימוש ב-CTE בשאילתות שלנו מאפשר לנו:
- בצע טבלה זמנית פעם אחת והפנה אליה מספר פעמים.
- שפר את הקריאות ופשט את ההיגיון המורכב.
- קדם שימוש חוזר בקוד ועיצוב מודולרי.
כדי להבין זאת טוב יותר, נוכל לקחת דוגמה מעשית של רישומי Airbnb בברצלונה.
תארו לעצמכם שאנחנו רוצים לנתח את הביצועים של רישומים לפי שכונות ולהשוות אותם לביצועים הכוללים של העיר. תצטרך לאסוף מידע על שכונות, דירות בודדות, מארחים ותמחור.
כדי להמחיש זאת, נשתמש ב- InsideAirbnb טבלה של ברצלונה, שנראית כך:
גישה נאיבית עלולה להוביל אותך ליצור שאילתות משנה מקוננות שהופכות במהירות לסיוט תחזוקה כמו זה כדלקמן:
קוד לפי מחבר
במקום זאת, אנו יכולים להשתמש ב-CTE כדי לחלק את השאילתה שלנו לקטעים לוגיים - כל אחד מגדיר חלק מהפאזל.
- נתוני שכונה: צור CTE כדי לסכם נתונים לפי שכונה.
- מידע על דירה ומארח: הגדר CTEs לפרטים על דירות ומארחים.
- מדדים ברחבי העיר: CTE נוסף לאיסוף נתונים סטטיסטיים ברמת העיר לשם השוואה.
- הרכבה סופית: שלב את ה-CTE במשפט SELECT אחרון כדי להציג את הנתונים בצורה מגובשת.
תמונה מאת המחבר
ובסופו של דבר נקבל את השאילתה הבאה:
קוד לפי מחבר
על ידי שימוש ב-CTE, אנו הופכים שאילתה בודדת שעלולה להיות מפלצתית לקבוצה מאורגנת של מודולי נתונים. גישה מודולרית זו הופכת את קוד SQL ליותר אינטואיטיבי וניתן להתאמה לשינויים.
אם צצות דרישות חדשות, אתה יכול להתאים או להוסיף CTEs מבלי לשנות את כל השאילתה.
לאחר הקמת CTEs שלך, אתה יכול לעשות בהם שימוש חוזר כדי לבצע ניתוח השוואתי. לדוגמה, אם אתה רוצה להשוות נתוני שכונות מול מדדים כלל-עירוניים, אתה יכול להתייחס ל-CTE שלך בסדרה של פעולות JOIN.
זה לא רק חוסך זמן אלא גם שומר על הקוד שלך יעיל, מכיוון שלא תצטרך לחזור על אותה שאילתה פעמיים!
CTEs הם עדות לעיקרון שמבנה קטן מוביל הרבה בתכנות. על ידי אימוץ CTEs, אתה יכול לכתוב שאילתות SQL ברורות יותר, ניתנות לתחזוקה וניתנות לשימוש חוזר.
זה מייעל את תהליך פיתוח השאילתות ומקל על העברת היגיון מורכב של אחזור נתונים לאחרים.
זכרו, בפעם הבאה שאתם מוצאים את עצמכם עומדים להתחיל בכתיבת מפלצת משנה מרובת חיבורים, מקוננת, שקול לפרק אותה עם CTEs.
העצמי העתידי שלך - וכל מי שעשוי לקרוא את הקוד שלך - יודה לך.
ג'וזף פרר הוא מהנדס אנליטיקה מברצלונה. הוא סיים לימודי הנדסת פיזיקה וכיום הוא עובד בתחום מדעי הנתונים המיושם לניידות אנושית. הוא יוצר תוכן במשרה חלקית המתמקד במדעי הנתונים והטכנולוגיה. אתה יכול לפנות אליו ב לינקדין, טויטר or בינוני.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://www.kdnuggets.com/sql-simplified-crafting-modular-and-understandable-queries-with-ctes?utm_source=rss&utm_medium=rss&utm_campaign=sql-simplified-crafting-modular-and-understandable-queries-with-ctes
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- a
- אודות
- למעשה
- להוסיף
- לְהַתְאִים
- אימוץ
- נגד
- Airbnb
- מאפשר
- גם
- תמיד
- an
- אנליזה
- ניתוח
- לנתח
- ו
- אחר
- כל
- כל אחד
- דירות
- יישומית
- גישה
- נָגִישׁ
- ARE
- אמנות
- מאמר
- AS
- עצרת
- At
- הימנעות
- ברצלונה
- BE
- להיות
- מוטב
- לשבור
- שבירה
- אבל
- by
- CAN
- שינויים
- יותר ברור
- קוד
- לשלב
- איך
- Common
- להעביר
- לְהַשְׁווֹת
- השוואה
- מורכב
- לחשב
- לשקול
- נחשב
- צור קשר
- תוכן
- לעצב
- לִיצוֹר
- יוצר
- כיום
- נתונים
- מדע נתונים
- מאגרי מידע
- עסקה
- מוגדר
- מגדיר
- הגדרה
- עיצוב
- פרטים
- צעצועי התפתחות
- אחר
- לגלות
- מטה
- קל יותר
- יעיל
- אחר
- לצאת לדרך
- לצאת
- סוף
- מהנדס
- הנדסה
- מספיק
- שלם
- נוסד
- דוגמה
- לבצע
- הוצאת להורג
- ביטוי
- ביטויים
- שדה
- סופי
- תזרים
- מרוכז
- הבא
- כדלקמן
- בעד
- החל מ-
- עתיד
- ללקט
- מטרה
- Goes
- טוב
- יש
- he
- לו
- המארח
- מארחים
- איך
- איך
- http
- HTTPS
- בן אנוש
- if
- לשפר
- in
- גדל
- בנפרד
- מידע
- למשל
- אינטראקציה
- אל תוך
- אינטואיטיבי
- IT
- להצטרף
- מצטרף
- jpg
- KDnuggets
- לדעת
- יודע
- שפות
- עוֹפֶרֶת
- כמו
- לינקדין
- רישומים
- קְצָת
- הגיון
- הגיוני
- ארוך
- נראה
- קסם
- ראשי
- לתחזק
- ניתנת לשמירה
- תחזוקה
- עושה
- רב
- מדדים
- יכול
- ניידות
- מודולרי
- מודולים
- יותר
- רוב
- מספר
- חייב
- צורך
- חדש
- הבא
- of
- on
- פעם
- ONE
- רק
- תפעול
- or
- להזמין
- ארגון
- מאורגן
- אחרים
- שלנו
- הַחוּצָה
- תפוקה
- מקיף
- שֶׁלוֹ
- חלקים
- לבצע
- ביצועים
- פיסיקה
- לְחַבֵּר
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- פוטנציאל
- חזק
- מעשי
- בדיוק
- להציג
- תמחור
- עקרון
- תהליך
- מקצועי
- תכנות
- לקדם
- חִידָה
- שאילתות
- מהירות
- חומר עיוני
- הפניה
- הפניה
- קָשׁוּר
- לחזור על
- דרישות
- תוצאה
- שליפה
- לשימוש חוזר
- שימוש חוזר
- תקין
- אותו
- מדע
- מדע וטכנולוגיה
- היקף
- בחר
- סדרה
- סט
- צריך
- פשוט יותר
- פשוט
- לפשט
- יחיד
- קטן
- SQL
- עומד
- התחלה
- הצהרה
- סטטיסטיקה
- עוד
- מייעלת
- מִבְנֶה
- מובנה
- לסכם
- שולחן
- לקחת
- לוקח
- טכנולוגיה
- זמני
- ברית
- להודות
- זֶה
- השמיים
- העולם
- אותם
- הֵם
- זֶה
- אלה
- זמן
- פִּי
- ל
- היום
- יַחַד
- כלי
- הפיכה
- תור
- סוג
- בדרך כלל
- האולטימטיבי
- להבין
- מובן
- הבנה
- us
- להשתמש
- מְשׁוּמָשׁ
- באמצעות
- לנצל
- רוצה
- דֶרֶך..
- we
- מה
- מה
- אשר
- מי
- למה
- יצטרך
- עם
- בתוך
- לְלֹא
- תוהה
- עבד
- עובד
- עוֹלָם
- היה
- לכתוב
- כתיבה
- אתה
- עצמך
- זפירנט