
tinyint: ערכים בין 0 ל-255, בלי שליליים. מתאים לדברים כמו מספר החתולים של משתמש או מספר התארים של אדם.smallint: פלוס מינוס 32 אלף בערך.int: פלוס מינוס 2 מיליארד בערך. הוא הנפוץ ביותר, והמרצה מציין שלפי מה שקרא הוא מעט מהיר יותר. עדיין כדאי להעדיף טיפוס מצומצם שחוסך זיכרון.decimal: עד פלוס מינוס 10 בחזקת 38, עם נקודה עשרונית. בהגדרה decimal(x,y) קובעים כמה ספרות יש בסך הכל וכמה מהן אחרי הנקודה. למשל (7,2) הם שבע ספרות בסך הכל, שתיים מהן אחרי הנקודה.real: פלוס מינוס 3.4 כפול 10 בחזקת 38.smallmoney: מבוסס על Fixed point ומיועד לכסף. הטווח פלוס מינוס 214 אלף בערך, בדיוק גבוה.money: גם הוא Fixed point לכסף, עם טווח גדול בהרבה, כמעט קוואדריליון, ובחישובים כמו מע"מ התוצאות מדויקות.הטקסט המלא של הדקות הראשונות בהרצאה «מספרים שלמים ועשרוניים ב-SQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הראשון שאנחנו רוצים לעשות בתוך הדאטאבייס זה ליצור טבלה חדשה. כאן אנחנו פשוט לוחצים הקש ימני על טייבלס, ניו טייבל.
יש לנו כאן את העמודות שאנחנו רוצים להגדיר עבור הטבלה. בואו נניח שאנחנו רוצים לייצר איזושהי טבלה ויש לנו פה את השם של העמודה, אני סתם אתן כרגע איזשהו שם ABC כי בעצם בסרטון הזה לפני שנגיע לבנייה באמת של טבלה אנחנו רוצים להבין מה זה הדאטה טבלה.
הדאטה טייפ זה סוג המידע שאנחנו רוצים עבור העמודה. ואם אנחנו מסתכלים אנחנו רואים שמסד הנתונים sql server נותן לנו המון סוגי מידע. איזה מידע נכון לבחור, מידע מספרי, מכרוזתי, ואם זה מידע מספרי יש לנו כאן לא מעט סוגים של מספרים.
אז מה שאנחנו רוצים להראות בסרטון הזה זה כמה סוגים מרכזיים, אין צורך לעבור על כל הסוגים, כמה סוגים מרכזיים ומה ההבדלים ביניהם.
וזה ייתן לנו תמונה טובה לגבי סוגי המידע שאנחנו רוצים להגדיר כאשר אנחנו בונים עמודות. בואו נראה את המידע המרכזי שיש לנו. אז קודם כל, מה זה Data Type בכלל? Data Type זה קטגוריה של המידע שאנחנו רוצים לשמור בתוך תא, בתוך משתנה.
זה בעצם מתאר כמה זה נמצא בזיכרון, מה הנפח שלו בזיכרון, מה המידע שמותר להכניס אליו, איזה פעולות ניתן לעשות עליו, האם אני יכול פתאום להכפיל, אם זה לא מספר אני יכול להכפיל שתי מכרוזות, לא כזה הגיוני, זה מה שמגדיר הדאטה טייפ.
איזה דאטה טייפים נפוצים קיימים? בואו נתחיל עם מספרים שלמים, אינטג'ר מספר שלם. אז יש לנו קודם כל טייני אינט, טייני אינט זה פשוט מספר שלם שאנחנו יכולים להכניס אליו ערכים בין 0 ל-255.
אי אפשר להכניס ערכים שליליים, אי אפשר להכניס יותר מ-255. אם אני רוצה נניח לייצר עמודה שמחזיקה לי, בוא נניח כמה חתולים יש למשתמש.
וואלה, לא הגיוני שיהיה לו 260 חתולים. אז כאן, בשביל לחסוך מקום בזיכרון, כמובן, ככל שאני יכול להחזיק מידע מצומצם יותר, אז המידע בזיכרון הוא קצר יותר, הזיכרון יהיה מצומצם יותר, אז כדאי לי אולי להגדיר tiny int ולא משתנה הרבה יותר גדול.
כמה תארים יש לבן אדם, כמה קורסים הוא עשה. אוקיי, לא הגיוני שהוא יעשה 260 תארים אוניברסיטאיים. הדבר הבא זה small int. זה פלוס מינוס 32,000 פחות או יותר שוב לא צריך לזכור את זה בעל פה זה רק נותן טווחים כלליים כאלה כמובן זה יכול להחזיק מספרים שליליים גם ואינט הידוע יכול להחזיק פלוס מינוס 2 מיליארד פחות או יותר כמובן ובעצם המשתנה
הנפוץ יותר לשימוש לפי מה שקראתי בעבר הוא קצת יותר מהיר מבחינת פרפורמנס אבל שוב חשוב מאוד גם לקחת דברים שהם מצומצמים בזיכרון לא רק פרפורמנס יש לנו סדרה של data types שהם decimal values, decimal זה הכוונה נקודה עשרונית פלוס מינוס 10 בחזקת 38 יכול להיות שלילי יכול להיות חיובי וזה כבר מאוד מאוד גדול וכמובן יש לו גם נקודה עשרונית אבל מה זה ה-18 וה-0
הזה אז ה-XY הזה מתאר כמה ספרות סך הכל אנחנו רוצים להגדיר יש לנו פה שליטה על הכמות זיכרון שאנחנו רוצים לשמור כמה ספרות סך הכל וכמה ספרות אנחנו רוצים עבור הנקודה העשרונית.
לדוגמה, אם אנחנו מגדירים שבע שתיים, אז אנחנו אומרים, תשמע, אנחנו רוצים שסך הכל זה יהיה שבע ספרות ומהם שתי ספרות יהיו עבור הנקודה העשרונית. יש לנו אפשרות להגדיר real, real זה בעצם גם מספר עשרוני אבל הוא פלוס מינוס שלוש נקודה ארבע כפול עשר בחצי השלושים ושמונה, אנחנו רואים שהוא יותר מפי שלוש גדול.
מה ההבדל בין Fixed Point לבין Floating Point? אנחנו רואים שזה נמצא פה בהגדרה. Point זה בעצם הנקודה העשרונית שנמצאת. אז Fixed Point זה אומר שיש לטיפוס הזה, לסוג הזה, כמות ספציפית ומוגדרת של ספרות עבור המספר השלם, וכמות ספציפית ומוגדרת של
ספרות עבור המספר העשרוני. Floating Point שומר את המידע בצורה אחרת לגמרי בזיכרון, ואומר, אני לא שומר לכם כמות ספציפית, הגדרה תגדיר איפה נמצאת הנקודה העשרונית, ימינה, שמאלה, איפה היא בדיוק נמצאת בתוך המספר, ולכן זה floating, הוא צף כזה, הנקודה צפה.
אז זה בעצם קצת הבדל טכני של איך המידע שומר בזיכרון, אבל מה בעצם המידע הקצת יותר חשוב? Fixed Point הוא פחות גדול מבחינת מה הוא יכול לשמור בזיכרון, כמו שאתם רואים, real הוא floating point והוא יכול לשמור הרבה יותר מידע, אבל הוא יותר מדויק כאשר אנחנו מגיעים לחישובים או לנקודה עשרונית ספציפית שאנחנו רוצים.
אם אנחנו רוצים מידע קצת יותר מדויק או קצת הרבה יותר מדויק, פיקסט פוינט זה הטיפוס שלנו. אם לא אכפת לנו לגבי דיוק ואנחנו רוצים כמובן גודל, אז פלוטינג פוינט יותר מתאים.
לדוגמה, אם אני רוצה מרחקים בחלל,