Demaestro - 2:41 pm on Jun 22, 2011 (gmt 0)
I don't think 'none' is a value you can give. Unless it is the string 'none'.
If you by 'none' you mean an empty string, then there are differences, but they are subtle.
The best way to explain it is like this, if you insert a row into your table and you don't specify a value for a column then it's value will be null.
Null works for all data types, boolean, string, integer and so on. Where as an empty string won't work in an integer field, and 0 won't work in a string field, although '0' would.
Typically you will see a lot of queries checking for both.
select * from table where StrField is not null and != ''
select * from table where IntField is not null and != 0
I wouldn't say one has an advantage over another but I would say be consistent throughout your application.