We always take NULL very lightly. Like if we are designing database then whether it is necessary or not we allow the data field to accept null.We think it will not affect anything.
Actually , at some point this is not always true.
According to Microsoft NULL is an Unknown value. It is not EMPTY & ZERO. It is just unknown.
Now according to my experience NULL is very sensitive and should be handle with care.
While we are designing the database and in a particular table if a field can not be null according to business rule then please don’t allow NULL in that field for data consistency.
For example if we have a StudentEnrollment table and in the StudentEnrollment table we have reference of StudentId which is primary key of StudentId and that can not be NULL then please don’t make the field null able.
Let me share some more interesting facts
1) Two null value not equal :- Let me explain it with an example
Suppose I have tblStudentSource table which has different columns and a course column which have some null values as shown below
Now see below snap where we are comparing the null value course column. You will find in below snap that there is no result while we have null value in course
2) Use IS NULL or IS NOT NULL to handle null able column:- If a column is null and you want to show all the columns which are null then instead of comparing NULL value with column as shown in above figure use IS NULL as shown in below figure
In similar way if we want result which not have null course then we can write below query
3) Handle NULL carefully with IN clause
Let me explain with an example so we have 2 tables which are tblStudentSource (as shown in above (image 1) and another table which is tblCourse as shown in below figure
Now if you see we have course column in tblStudentSource table which has values similar to tblCourse’s course column and tblStudentSource’s course column contain some NULL values
Now suppose we wrote following statement and expecting that it will return all the course which are in tblCourse
Oh !! it is not returning any course. The reason behind it is NULL is not handled properly. Now to get desire result we have to write following statement
So , be always careful when your column has null values.
I hope the above points might help you somewhere.
Enjoy !!!
Keep learning & Keep Sharing !!
Thanks
RJ