ホームページ  >  記事  >  データベース  >  NOT NULL と宣言された MySQL カラムに空の文字列を挿入する場合、データ型はどのような役割を果たしますか?

NOT NULL と宣言された MySQL カラムに空の文字列を挿入する場合、データ型はどのような役割を果たしますか?

WBOY
WBOY転載
2023-09-09 22:29:021254ブラウズ

当我将空字符串插入声明为 NOT NULL 的 MySQL 列时,数据类型起什么作用?

NOT NULL として宣言された MySQL カラムに空の文字列を挿入すると、結果セット内の空の文字列の表現はデータ型によって異なります。空の文字列を挿入するときに、整数として表される値を INT 0 として MySQL に提供することがわかっています。

カラムのデータ型が INTEGER の場合、MySQL は以下に示すように結果セットに 0 を表示します。空の文字列は整数の 0 にマップされています。

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)

ただし、カラムに他のデータ型 (VARCHAR など) がある場合、MySQL は結果セットに空の文字列を表示します。

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)

上記の例から、NOT NULL として宣言された MySQL カラムに空の文字列を挿入するときに、データ型がどのような役割を果たすのかがわかります。

以上がNOT NULL と宣言された MySQL カラムに空の文字列を挿入する場合、データ型はどのような役割を果たしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。