מה אתה צריך לדעת על ערכים NULL

להבין את השימוש NULLs כדי למנוע בעיות במסד הנתונים

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

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

NULL בעולם האמיתי

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

פירות לעמוד המלאי

מלאי פריט כַּמוּת
1 תפוחים 10
2 תפוזים 3
3 שזיפים ריק


ברור היה שלא יהיה נכון לכלול כמות של 0 עבור שיא השזיפים, כי זה היה מרמז כי לא היו לנו שזיפים במלאי. להיפך, אולי יש לנו שזיפים, אבל אנחנו פשוט לא בטוחים.

אל NULL או לא NULL?

טבלה יכולה להיות מתוכננת כדי לאפשר ערכי NULL או לא.

הנה דוגמה SQL שיוצרת טבלת מלאי המאפשרת כמה NULLs:

SQL ליצור מלאי טבלה (InventoryID INT לא NULL, פריט VARCHAR (20) לא NULL, כמות INT);

טבלת המלאי כאן אינה מאפשרת ערכי NULL עבור InventoryID ועמודות הפריט , אך מאפשרת להם את העמודה כמות .

תוך כדי מתן ערך NULL הוא בסדר גמור, ערכי NULL יכולים לגרום לבעיות משום שכל השוואה של ערכים שבהם אחד הוא NULL תמיד תוצאות NULL.

כדי לבדוק אם הטבלה שלך מכילה ערכים NULL, השתמש במפעיל IS NULL או IS NOT NULL. הנה דוגמה של IS NULL:

SQL> בחר מלאי, פריט, כמות ממלאי שבו כמות אינו null;

בהתחשב בדוגמה שלנו כאן, זה יחזור:

מלאי פריט כַּמוּת
3 שזיפים

פעולה על NULLs

עבודה עם ערכי NULL מפיקה לעתים קרובות תוצאות NULL, בהתאם לפעולת SQL . לדוגמה, בהנחה ש- A הוא NULL:

מפעילי אריתמטיקה

מפעילי השוואה

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

זה NULL בקצור נמרץ!