Re:Are You Qualified to Use Null in SQL?
by ziml77 on Saturday September 14, 2024 @06:37PM
(#41543608)
What database is this specific to? PostgreSQL?
Those first two are entirely invalid in T-SQL. Even attempting to write it as SELECT IIF(NULL AND 1=1, 1, 0) doesn't work. The AND operation can only be applied to a boolean type and the only way to get that is as the result of a comparison and it can't be stored or passed anywhere.
Also the UNIQUE constraint does not allow insert of a second NULL. I tried that both using the constraint syntax and by creating a unique index.
Re:Are You Qualified to Use Null in SQL?
by mau013 on Wednesday September 18, 2024 @10:46PM
(#41587979)
In Postgres you can chose whether to treat NULLs as distinct or not (meaning that when treating NULLs as NOT DISTINCT you can insert many for an otherwise unique row).
Re:Are You Qualified to Use Null in SQL?
by SPBS on Wednesday September 18, 2024 @10:52PM
(#41588007)
This is null trivia, a lot of it is not worth memorizing because it's not important. Personally I was surprised that NULL AND FALSE does not result in NULL, but who cares?
Re:Are You Qualified to Use Null in SQL?
by pavel_lishin on Thursday September 19, 2024 @10:08AM
(#41592039)
> a lot of it is not worth memorizing because it's not important.
Until it is.
If you're not familiar with how NULLs are compared, at least in mysql, it will bite you right in the rectum when you start setting up things like unique constraints on nullable columns.
Those first two are entirely invalid in T-SQL. Even attempting to write it as SELECT IIF(NULL AND 1=1, 1, 0) doesn't work. The AND operation can only be applied to a boolean type and the only way to get that is as the result of a comparison and it can't be stored or passed anywhere.
Also the UNIQUE constraint does not allow insert of a second NULL. I tried that both using the constraint syntax and by creating a unique index.
If Iām not mistaken this is the docs page: https://www.postgresql.org/docs/current/indexes-unique.html
In Sybase derivatives (hello SQL Server), null can exist once in a unique index. A second insertion fails.
In Oracle, null is not indexed. In composite indexes, they are counted, but do not matter.
My score was 11/22. I guess that I vaguely know what I'm doing.
Until it is.
If you're not familiar with how NULLs are compared, at least in mysql, it will bite you right in the rectum when you start setting up things like unique constraints on nullable columns.