Có thể chèn chuỗi ký tự 'NULL' (văn bản) vào cột kiểu ký tự có ràng buộc NOT NULL, vì 'NULL' là một giá trị chuỗi hợp lệ, khác với giá trị NULL (rỗng).
Ví dụ minh họa
Bảng test2 có cột NAME kiểu VARCHAR(20) với NOT NULL:
mysql> DESCRIBE test2; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | | NULL | | | NAME | varchar(20) | NO | | NULL | | +-------+-------------+------+-----+---------+-------+
Chèn chuỗi 'NULL':
mysql> INSERT INTO test2 VALUES(2, 'NULL'); Query OK, 1 row affected (0.06 sec) mysql> SELECT * FROM test2; +----+--------+ | id | NAME | +----+--------+ | 1 | Gaurav | | 2 | NULL | +----+--------+
Phân biệt:
WHERE name IS NULL→ tìm giá trị NULL thực sự (rỗng). Kết quả: 0 hàng.WHERE name = 'NULL'→ tìm chuỗi ký tự 'NULL'. Kết quả: 1 hàng (id=2).
mysql> DELETE FROM test2 WHERE name IS NULL; -- 0 rows affected mysql> DELETE FROM test2 WHERE name = 'NULL'; -- 1 row affected
Điều này chứng minh 'NULL' chuỗi và NULL giá trị rỗng là hoàn toàn khác nhau.