PracticU

פונקצית Inline table

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › פונקצית Inline table
מילון מושגים:
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.

פונקצית Inline table
השיעור עוסק בפונקציה מסוג Inline Table-Valued Function: פונקציה שמחזירה טבלה, ומכילה פקודת SELECT אחת בלבד. היא מתאימה לעטיפה של שאילתה עם פרמטרים.
השלבים העיקריים
1. שני סוגי פונקציות טבלאיות: Inline Table-Valued Function מחזירה טבלה מפקודה אחת, ו-Multi-Statement מחזירה טבלה שניתן לבנות בה כמה שלבים. השיעור עוסק בראשונה.
2. פרמטר: הפונקציה CastOrders מקבלת את קוד הלקוח מסוג nchar(5), לפי הגדרת העמודה בטבלת Customers.
3. גוף הפונקציה: מופיע RETURNS TABLE ואחריו AS RETURN ושאילתת SELECT שמחברת בין Customers ל-Orders. אין BEGIN ו-END, ואין הגדרת מבנה טבלה ידנית, כי העמודות נלקחות מהשאילתה.
4. הרצה: קוראים לפונקציה ב-FROM ושולחים לה קוד לקוח, למשל VINET, ומקבלים את כל ההזמנות שלו.
5. טיפול ב-NULL: בתנאי WHERE בודקים אם הפרמטר IS NULL. אם כן מוחזרים כל הלקוחות, ואם לא מסננים לפי הלקוח שנשלח. בדוגמה שלחו NULL וקיבלו את כל הלקוחות וההזמנות שלהם, ממוינים לפי קוד הלקוח.
6. שינוי פונקציה קיימת: משתמשים ב-ALTER FUNCTION, כי CREATE נכשל כשהאובייקט כבר קיים.
שימו לב
בתוך הפונקציה אפשר לכתוב רק SELECT אחד, בלי DECLARE, SET או פעולות נוספות. בניגוד ל-View, לפונקציה כזו אפשר לשלוח פרמטרים.
אם מתקבלת שגיאה Invalid object name, בודקים שהפונקציה נוצרה במסד הנתונים הנכון. בשיעור עברו ל-Northwind.
בסיום תוכלו ליצור פונקציה טבלאית פשוטה ולהפעיל אותה עם פרמטר.
השיעור הבא בקורס: פונקצית Multi Statement

פרקי ההרצאה: פונקצית Inline table

  1. 00:00

    חזרה: פונקציות שמחזירות ערך סקלרי

  2. 00:38

    פונקציה שמחזירה מבנה טבלאי

  3. 01:16

    ההבדל בין Inline Table לבין Multi-Statement

תמלול ההרצאה: פונקצית Inline table

הטקסט המלא של הדקות הראשונות בהרצאה «פונקצית Inline table» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:20

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

  2. 00:38

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

  3. 01:01

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

  4. 01:24

    ולדעת שיש לנו פונקציה מחזירה לי data type של table אבל יש בה מספר שורות לעומת פונקציה שהיא מורכבת משורה אחת בלבד למען האמת מפקודה select אחת בלבד

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: פונקציה Scalar - עם פרמטרים

ההרצאה הבאה: פונקצית Multi Statement

הרצאות קשורות מקורסים אחרים

  • Table Layout
  • Azure Table Storage
  • שפת JavaScript - פונקציה Inline

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI