
הטקסט המלא של הדקות הראשונות בהרצאה «סוגי משתנים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
היום אנחנו נעסוק בנושא של דאטה טייפס. דאטה טייפס אלו בעצם הציון בגין כל עמודה, בגין כל משתנה ב-SQL, שהוא צריך, שאנחנו מציינים עבורו מהו הטווח של הערכים, ומהו סוג הערכים שאותו הוא יכול לקבל.
בתחילת דיוננו אנחנו נדבר על ערכים מספריים שלמים, דהיינו על אינטג'ר דאדיוז. אם נשוב וניזכר בתוך טבלת אימפלואיז אנחנו נוכל לראות שבגין כל עמודה ועמודה מצוין לי מהו ה-Data Type שלה, מהו טווח הערכים ומהו סוג הערכים שאותם היא יכולה לקבל.
בתחילת דיוננו אנחנו נעסוק בערכים של Integers Value, ערכים מספריים בלבד. כשאנחנו מדברים על Integers Value אנחנו מדברים בעצם על אוסף של ארבעה Data Types שונים, כאשר ההבדל ביניהם הוא הגודל, מספר התאים בזיכרון, מספר הבתים בזיכרון שהם תופסים, וממילא כפועל יוצא מכך
מהו טווח הערכים שאנחנו יכולים להכניס בתוך כל אחד ואחד מהם ראשון ושימושי בכולם זה האינט קיצור של אינטג'ר סימנים לאינטג'ר יש לנו את השמאל אינט שזה שתי בתים והמצומצם ביותר זה הטיילה אינט שהוא בית אחד כאשר יש לנו אפשרות להשתמש לא רק בארבעה בתים אלא בטווח ערכים גדול יותר 2 בחזקת 64 אפשרויות וכאשר אנחנו מדברים על ביג אינט והוא תופס לנו בזיכרון שמונה בתים.
מה המשמעות של הדברים הללו? שאם אנחנו מגדירים כאן משתנה על ידי המילה השמורה "דיקלר", נגיד שם למשתנה "שטרודל איי", והפעם הוא יהיה מ-subtile end, כלומר תופס בית אחד, כאשר רצונו לומר אם הוא תופס בית אחד הטווח הערכים הוא בין 0 ל-255.
אם אנחנו נרצה סט של הערך 255 ולאחר מכן נדפיס את הערך הזה, בפיסט המשתנה שטרודל איי אנחנו נגלה שאנחנו מצליחים לראות את הערך עצמו 255 הרי הוא מוצג לפנינו.
אולם אם נבוא לנסות את זה ל-256F5 אנחנו כבר נקבל הודעת שגיאה של arithmetic overflow error כלומר חרגנו כבר מהגבולות של הערכים שאותם ניתן להכניס לתוך איי לתוך בית אחד בלבד.
עד כאן זה עבודה בערכים שלמים. בנוסף לזה יש לנו אפשרות להגדיר ערכים שהם מספרים עשרוניים. בואו נגדיר לעצמנו דוגמא. פלר שטרודל D, והפעם אנחנו נגדיר אותו מסוג של פלורט.
פלורט מדובר על מספרים עשרוניים, מספרים כאשר הנקודה היא צפה, דהיינו יש באפשרותי להגדיר כמה יוקצה עבור המספר השלם וכמה יוקצה עבור הספרות שמצד ימין לנקודה.
המגדירים כרגע משתנים על ידי נקודת סאפה. על נקודת סאפה פלוטינג, משתנה ניסוי פלואים, הוא מגדיר לבד כיצד תתבצע החלוקה. נבצע סט ל־strudel d, אנחנו נכניס לו את הערך 0.2.
ה־0.2, מכיוון שמדובר בנקודת סאפה, הוא לא נשמר בדיוק כ־0.2, אלא אם אנחנו ניכנס בתוך הטבלה או אם ננסה להציג את הערך הזה, אנחנו נראה שיש לו איזשהו זנב מאחריו. המשמעות היא שאם אנחנו ננסה לייצר כאן איזושהי לולאה, while שטרודל d שונה מ-1, 1 אני בכוונה מציין אותו כאן כערך אינטג'ל, כל עוד הוא שונה מ-1,
מה שאני מבקש כאן לעשות זה בגין ולבצע פרינט של השטרודל d. לאחר מכן אנחנו רוצים לקדם, שווה ל-0.1 לקדם אותו ב-1 ולאחר מכן אנחנו כבר יכולים לסגור את הלולאה הזאת.
לולאה זאת כיוון שאנחנו הולכים על משתנה מסוג float ואף שאנחנו מתחילים ב-0.1 היינו מצפים שכל עוד משנה מ-1 יודפסו לי הערכים. once הגעתי ל-1 הלולאה תסתיים.
אולם להפתעתנו כאשר אנחנו מריצים את השאילתה אנחנו מגלים שמדובר בשאילתא אינסופית, כלומר שאילתא שהיא הולכת וממשיכה לרוץ לי. אנחנו צריכים רגע לעצור אותה, אלט ברייק, וברגע שאני עוצר אותה אני מגלה שהדפסנו כאן את הערכים 0.23491 אבל אנחנו המשכנו הלאה, כלומר גם במקום שבו הגענו לערך 1 עדיין המשכנו
את השאילתא, המשכנו להציג את הערכים למרות התנאי שלי y=strudel v, ברור כי d שונה מ-1, ברגע שהוא שונה מ-1 הייתי מצפה שהשאילתה תצא החוצה, אבל מה שזה אומר שלא יתקבל כאן ערך אחד, יתקבל