Computer >> Máy Tính >  >> Lập trình >> MySQL

Kiểu dữ liệu đóng vai trò gì khi tôi chèn một chuỗi trống vào một cột MySQL được khai báo là NOT NULL?

Việc biểu diễn một chuỗi rỗng trong tập kết quả phụ thuộc vào kiểu dữ liệu khi chúng ta chèn một chuỗi rỗng vào một cột MySQL được khai báo là NOT NULL. Như chúng ta biết rằng khi chèn chuỗi trống, chúng ta đang cung cấp giá trị cho MySQL có biểu diễn số nguyên là INT 0.

Bây giờ, nếu cột đó có kiểu dữ liệu INTEGER thì MySQL sẽ hiển thị 0 trong tập kết quả vì chuỗi trống đó đã được ánh xạ thành 0 dưới dạng số nguyên.

Ví dụ

mysql> create table test(id int NOT NULL, Name Varchar(10));
Query OK, 0 rows affected (0.19 sec)

mysql> Insert into test(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav');
Query OK, 3 rows affected, 1 warning (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 1

mysql> Select * from test;
+----+--------+
| id | Name   |
+----+--------+
|  1 | Gaurav |
|  0 | Rahul  |
|  0 | Aarav  |
+----+--------+
3 rows in set (0.00 sec)

Nhưng nếu cột đó có bất kỳ kiểu dữ liệu nào khác nói VARCHAR thì MySQL sẽ hiển thị một chuỗi trống trong tập kết quả.

mysql> create table test123(id Varchar(10) NOT NULL, Name Varchar(10));
Query OK, 0 rows affected (0.19 sec)

mysql> Insert into test123(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav');
Query OK, 3 rows affected, 1 warning (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 1

mysql> Select * from test123;
+----+--------+
| id | Name   |
+----+--------+
|  1 | Gaurav |
|  0 | Rahul  |
|    | Aarav  |
+----+--------+
3 rows in set (0.00 sec)

Từ các ví dụ trên, chúng ta có thể thấy rằng kiểu dữ liệu đóng vai trò gì khi chúng ta chèn một chuỗi rỗng vào một cột MySQL được khai báo là NOT NULL.