
char(20) שומר תמיד 20 תווים, ואם מכניסים A נוספים לו 19 רווחים. מתאים רק כשהאורך תמיד זהה, למשל קוד של 7 תווים.nvarchar הוא הנפוץ ביותר, כי האורך תלוי במה שהוכנס וכי נדרשות לרוב שפות נוספות.varchar(max) ו-nvarchar(max) ללא הגבלת גודל, עד יותר מ-2 מיליארד תווים. לא מומלץ, כי האקר שפרץ יכול להציף את הדאטאבייס בזבל.text ו-ntext הם deprecated, כלומר מיושנים. את מקומם תופסים varchar(max) ו-nvarchar(max).הטקסט המלא של הדקות הראשונות בהרצאה «שמירת טקסט בתוך מסד נתונים נתונים מסוג char ב-SQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אם אנחנו רוצים לשמור טקסטים, טקסטואל טייפס, יש לנו char, אסקי. אסקי זה בעצם תווים סטנדרטיים שיש במקלדת אנגלית.
כל האותיות באנגלית, קטנות-גדולות, ספרות, תווים מיוחדים כמו סימן שאלה, נקודה-פסיק, מקף, שטרודל, דולר, כל התווים המיוחדים שיש במקלדת סטנדרטית, אלה תווים אסקים.
אז אם אני רוצה מידע שהוא לא בעברית, זה יכול להתאים לי, אבל זה Fixed Length. זה אומר שאם אני מגדיר 20, אז תמיד המחרובת תהיה בגודל 20 תווים.
כאשר אם אני מכניס לדוגמה את התו A, אז הוא ישמור לי A ו-19 רווחים. זה כמעט אף פעם לא מתאים לי. מתי טוב להשתמש בזה? אם אני יודע שהמחרובת שלי תמיד צריכה להיות בגודל קבוע. בוא נניח שקוד עובד בחברה שלנו הוא תמיד 7 תווים.
אז אולי כדאי לקחת char 7, כי הוא תמיד שבע תווים. כמובן, אם המחוזת היא תמיד גבוהה, אז מבחינת פרפורמנס זה קצת יותר מהיר. אם אני רוצה לשמור תווים בשפות אחרות, עברית, צרפתית וכדומה, אז יש לנו n char.
זה בדיוק אותו דבר כמו char, אבל הוא יוניקוד ולא אסקי. זה אומר שהוא יכול לשמור גם תווים בשפות אחרות. ה-n מציין national, כלומר לאום הוא יכול לשמור בהמון שפות אחרות, אני רוצה לשמור מכרוזת בעברית, שום בעיה, nchar במקום char.
אבל היא עדיין גודל קבוע ולכן גם כן כמעט אף פעם זה לא בשימוש. כן נמצאים בשימוש varchar ו-nvarchar שזה המקבילים שלהם אבל var זה variable length זאת אומרת אורך משתנה.
אם אנחנו נשמור varchar ונכניס a אז הוא ישמור רק את המכרוזת a ולא או A עם 19 רווחים. אז ה-20 כאן זה באמת מקסימום, אי אפשר לעבור את ה-20.
דאטאבייס יקצץ לנו את המידע. אנחנו כמובן יכולים להחליף את ה-20 בכל אלה במספר אחר, char 50 או nvarchar 70, זה כמובן כמה שבא לנו.
nvarchar שומר national זה Unicode, אפשר לשמור עברית, אנגלית, וזה בעצם המחרוזת, סליחה, הטיפוס נתונים הכי נפוץ שיש, כי אני גם רוצה שהגודל יהיה תלוי בכמה שהכנסתי ולא קבוע, וגם ברוב המקרים אני לא רוצה לשמור רק באנגלית, אני רוצה לשמור גם בשפות אחרות.
אז או שאנחנו בוחרים ב-N-Char, הנפוץ הבא זה VAR-Char, כי לפעמים אני רוצה דינמי, אבל לא רוצה עברית, לדוגמה מספר טלפון, אין שם התווים בעברית, אז זה יכול להיות VAR-Char, למרות שמספר טלפון נשמע כמו אינטג'ר, אבל זה לא נכון להגדיר אותו כאינטג'ר, מפני שיש לנו 0 בהתחלה, ואם נגדיר עם אינטג'ר
אנחנו נאבד את ה-0. אז ברגע שמספר מגיע עם, יכול להגיע עם 0 בהתחלה, כמו תעודת זהות לדוגמה, אנחנו נרצה מכרוזות ולא אינטג'רים.
הדבר הבא זה varchar max, וזה בעצם אומר, תשמע, אני לא רוצה להגדיר גודל, אני לא יודע כמה הגודל, שחרר אותי מהגודל, לא משנה כמה אנחנו, יכניסו לי, תן לי את המידע הזה.
אז יש לנו את varchar ואת nvarchar, varchar זה כמובן אסקי ו-nvarchar זה יוניקוד, לא מומלץ להשתמש בהם מפני שאז אם האקר מצליח לפרוץ לנו ולהכניס מידע טיפשי לדאטאבייס, הוא יכול מה שנקרא לזבל לנו את הדאטאבייס