AhANiBoy: Unterschied zwischen NULL, sowie '', und NULL

Beitrag lesen

hi

user varchar(20) NOT NULL,    sagt doch aus,
daß "user"  NICHT leer sein darf, oder?

insert into foo (id, user) values ('', '');   geht jedoch!

select * from foo;   zeigt mir,
dass das Feld "user" in der entsprechenden Zeile leer ist.
Warum ist dem so?
Ich definierte doch eindeutig dass es NOT NULL ist!

Was ist dann ein NULL Feld?
Also was ist der Unterschied zwischen NULL und NOT NULL und '' ?

Alle scheinen leere Felder zu erlauben!

Danke...
Schönen Tag noch wünscht
Euer AhANiBoy