PracticU

פונקציה Scalar - עם פרמטרים

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

פונקציה Scalar - עם פרמטרים
בשיעור הזה בונים פונקציה סקלרית שמקבלת פרמטר מסוג תאריך, ומחזירה אותו כמחרוזת בפורמט מוגדר. הפונקציה נקראת בחלק Select ובחלק Where.
השלבים העיקריים
1. הפרמטר: מוגדר @day מסוג datetime בתוך הסוגריים העגולים, אחרי שם הפונקציה formatDate.
2. סוג ההחזרה: בכותרת כותבים RETURNS varchar(10), כלומר הפונקציה מחזירה מחרוזת באורך עשרה תווים.
3. משתנה מקומי: מצהירים על @str מסוג varchar(10) ומכניסים לתוכו את התאריך דרך פונקציית המערכת CONVERT עם קוד פורמט 103.
4. החזרה: בשורת RETURN מחזירים את @str. סוג המשתנה חייב להתאים לסוג שהוגדר בכותרת.
5. קריאה ב-Select: dbo.formatDate(BirthDate) מציג את תאריך הלידה בפורמט החדש, לצד העמודה המקורית שמוצגת כמו שהיא.
6. קריאה ב-Where ו-Order By: אפשר להשתמש בפלט כמו בכל ערך. בדוגמה מסננים לפי התו האחרון, RIGHT(dbo.formatDate(BirthDate), 1) = '8', ומסדרים לפי התאריך המעוצב.
פקודות והגדרות
CONVERT(varchar(10), @day, 103) ממיר את התאריך למחרוזת. את משמעות קוד הפורמט אפשר לחפש בפרק על פונקציות המערכת.
שימו לב
אם הפונקציה כבר קיימת, יצירה מחדש נכשלת. כדי לשנות אותה משתמשים ב-ALTER FUNCTION.
בסיום תוכלו ליצור פונקציה עם פרמטרים ולשלב אותה בשאילתה.
השיעור הבא בקורס: פונקצית Inline table

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

  1. 00:00

    חזרה: פונקציה סקלרית בלי פרמטרים

  2. 00:56

    יצירת פונקציה שמקבלת פרמטר

  3. 01:49

    פונקציה לעיצוב תאריך והגדרת הפרמטר

  4. 02:46

    ערך מוחזר מסוג VARCHAR באורך 10

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

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

  1. 00:19

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

  2. 00:41

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

  3. 01:02

    בשיעורנו היום אנחנו נראה כיצד אני מייצר פונקציה ושולח לה פרמטרים. אז בואו נפתח New Query חדש, בואו נגדיל את המסך. על מנת ליצור את ה-query שלי, בעצם ליצור את הפונקציה, אנחנו נשתמש שוב פעם בטמפלט אקספלורר תחת Views בתפריט, יש לנו טמפלטים מסוגים שונים ליצירת אובייקטים שונים

  4. 01:25

    ומבוונים בתוך הדאטאבס כמו שראינו כבר. בתוך Functions אני יכול להיכנס ולמצוא שיש לי את התבנית ליצירת Create Scalar Functions, דאבל קליק שופך לי כאן בעצם את כל התבנית ליצירת הפונקציה.

  5. 01:41

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

  6. 01:51

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

  7. 02:24

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

  8. 02:48

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

  9. 03:03

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

  10. 03:15

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

  11. 03:26

    כדי להגדיר, אנחנו מכירים Declared, הגדרה של המשתנה,

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

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

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

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

  • פונקציה - Function
  • פרמטרים לפונקציה Main
  • שמות פרמטרים של פעולות
  • שפת JavaScript - פונקציה רגילה

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

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