PracticU

סוגי משתנים

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

סוגי משתנים
השיעור עוסק בסוגי נתונים מספריים ב-SQL Server: מספרים שלמים ומספרים עשרוניים. סוג הנתונים קובע את טווח הערכים שניתן לשמור בו ואת כמות הזיכרון שהוא תופס.
השלבים העיקריים
1. הגדרת סוג הנתונים: כל עמודה ומשתנה מקבלים סוג שמגדיר את טווח הערכים ואת סוגם.
2. מספרים שלמים: ארבעה סוגים שמתחלקים לפי גודל. tinyint תופס בית אחד וטווח 0 עד 255. smallint תופס שני בתים. int נמצא בין הסוגים. bigint תופס שמונה בתים, עם טווח גדול מאוד.
3. חריגה מהטווח: הכנסת 255 ל-tinyint עובדת, אבל 256 מחזירה arithmetic overflow error.
4. מספרים עשרוניים: float שומר את המספר בייצוג של נקודה צפה. הייצוג הבינארי אינו מדויק לחלוטין, ולכן הערך 0.2, למשל, לא נשמר בדיוק כ-0.2.
5. לולאה שלא נגמרת: לולאת WHILE שמוסיפה 0.1 למשתנה float אמורה להסתיים כשהערך מגיע ל-1, אבל בשיעור היא רצה ללא סוף, כי הערך לא מגיע ל-1 בדיוק. לכן לא משווים ערך float לערך שלם.
6. מסקנה: ל-float יש יתרון בייצוג מספרים עשרוניים, אבל אי אפשר לסמוך עליו בהשוואות מדויקות.
שימו לב
בחירת סוג גדול מדי מבזבזת זיכרון, ובחירת סוג קטן מדי מובילה לשגיאת חריגה.
בסיום תוכלו לבחור סוג מספרי מתאים לערכים שאתם שומרים.
השיעור הבא בקורס: הגדרת משתנים - Variables

פרקי ההרצאה: סוגי משתנים

  1. 00:00

    מהם Data Types ולמה הם חשובים

  2. 00:58

    ארבעה סוגי מספרים שלמים

  3. 01:36

    BIGINT ושמונה בתים בזיכרון

  4. 02:14

    שגיאת arithmetic overflow בטווח

  5. 02:55

    מספרים עשרוניים מסוג FLOAT

  6. 03:30

    ייצוג מספר עשרוני בנקודה צפה

  7. 04:11

    לולאה אינסופית עם משתנה FLOAT

תמלול ההרצאה: סוגי משתנים

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

  1. 00:20

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

  2. 00:37

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

  3. 00:58

    בתחילת דיוננו אנחנו נעסוק בערכים של Integers Value, ערכים מספריים בלבד. כשאנחנו מדברים על Integers Value אנחנו מדברים בעצם על אוסף של ארבעה Data Types שונים, כאשר ההבדל ביניהם הוא הגודל, מספר התאים בזיכרון, מספר הבתים בזיכרון שהם תופסים, וממילא כפועל יוצא מכך

  4. 01:20

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

  5. 01:53

    מה המשמעות של הדברים הללו? שאם אנחנו מגדירים כאן משתנה על ידי המילה השמורה "דיקלר", נגיד שם למשתנה "שטרודל איי", והפעם הוא יהיה מ-subtile end, כלומר תופס בית אחד, כאשר רצונו לומר אם הוא תופס בית אחד הטווח הערכים הוא בין 0 ל-255.

  6. 02:12

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

  7. 02:28

    אולם אם נבוא לנסות את זה ל-256F5 אנחנו כבר נקבל הודעת שגיאה של arithmetic overflow error כלומר חרגנו כבר מהגבולות של הערכים שאותם ניתן להכניס לתוך איי לתוך בית אחד בלבד.

  8. 02:46

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

  9. 03:02

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

  10. 03:19

    המגדירים כרגע משתנים על ידי נקודת סאפה. על נקודת סאפה פלוטינג, משתנה ניסוי פלואים, הוא מגדיר לבד כיצד תתבצע החלוקה. נבצע סט ל־strudel d, אנחנו נכניס לו את הערך 0.2.

  11. 03:35

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

  12. 04:04

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

  13. 04:24

    לולאה זאת כיוון שאנחנו הולכים על משתנה מסוג float ואף שאנחנו מתחילים ב-0.1 היינו מצפים שכל עוד משנה מ-1 יודפסו לי הערכים. once הגעתי ל-1 הלולאה תסתיים.

  14. 04:39

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

  15. 05:05

    את השאילתא, המשכנו להציג את הערכים למרות התנאי שלי y=strudel v, ברור כי d שונה מ-1, ברגע שהוא שונה מ-1 הייתי מצפה שהשאילתה תצא החוצה, אבל מה שזה אומר שלא יתקבל כאן ערך אחד, יתקבל

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

ההרצאה הקודמת: פונקציות מתקדמות - Grouping

ההרצאה הבאה: הגדרת משתנים - Variables

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

  • סוגי משתנים ב-TypeScript
  • משתנים
  • משתנים - חלק 1
  • סוגי משתנים בשפת Dart

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

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