ホームページ > データベース > mysql チュートリアル > MySQLにNULLと空の文字列を挿入するのはどちらが良いでしょうか?

MySQLにNULLと空の文字列を挿入するのはどちらが良いでしょうか?

PHPz
リリース: 2023-08-25 23:17:13
転載
1558 人が閲覧しました

MySQLにNULLと空の文字列を挿入するのはどちらが良いでしょうか?

innoDB では、NULL は空の文字列よりも占有するスペースが少なくなります。さらに、NULL の長さは次のとおりです。 null、空の文字列の長さは 0 です。

これを理解するには、以下に示すように、create コマンドを使用してテーブルを作成します。 次のように -

mysql> CREATE table DemoEmptyAndNULL
-> (
-> Message varchar(100)
-> );
Query OK, 0 rows affected (0.49 sec)
ログイン後にコピー

テーブルが正常に作成されたら、次のコマンドを使用して空のレコードをテーブルに挿入します。 次のような挿入コマンド -

mysql> INSERT into DemoEmptyAndNULL values(' ');
Query OK, 1 row affected (0.17 sec)
ログイン後にコピー

レコードを挿入した後、select コマンドを使用してすべてのレコードを表示できます これは次のとおりです -

mysql> SELECT * from DemoEmptyAndNULL;
ログイン後にコピー

上記のクエリを実行すると、次の出力が得られます -

+---------+
| Message |
+---------+
|         |
+---------+
1 row in set (0.00 sec)
ログイン後にコピー

組み込み関数を使用して空の文字列の長さをチェックするための構文関数内のカウントは次のとおりです Follow-

select count(column_name) from yourTableName;
ログイン後にコピー

上記の構文は、次のように指定される空の文字列の長さを取得するために使用されます-

mysql> select count(message) from DemoEmptyAndNULL;
ログイン後にコピー

上記のクエリを実行すると、出力は次のようになります-

+----------------+
| count(message) |
+----------------+
| 1              |
+----------------+
1 row in set (0.06 sec)
ログイン後にコピー

上記の出力から、空の文字列の長さが 1 であることがわかります。

次に、NULL の長さを確認します。まず、テーブルに挿入されるレコードは次のとおりです。 次のように削除コマンドを使用して削除します-

mysql> delete from DemoEmptyAndNULL where message=' ';
Query OK, 1 row affected (0.19 sec)
ログイン後にコピー

次のクエリは、現在のテーブルにレコードがないかどうかを確認するために使用されます

mysql> SELECT * from DemoEmptyAndNULL;
Empty set (0.00 sec)
ログイン後にコピー

これで、NULL 値のレコードがテーブルに挿入されます次のように-

mysql> INSERT into DemoEmptyAndNULL values();
Query OK, 1 row affected (0.18 sec)
ログイン後にコピー

select コマンドを使用してレコードが表示され、取得される出力は次のとおりです-

+---------+
| Message |
+---------+
| NULL    |
+---------+
1 row in set (0.00 sec)
ログイン後にコピー

これで、テーブル内に null 値を持つレコードは 1 つだけになりました。その長さを確認するには、次のクエリを実行します。 -

mysql> select count(message) from DemoEmptyAndNULL;
ログイン後にコピー

の使用方法は、上記のクエリの出力です -

+----------------+
| count(message) |
+----------------+
| 0              |
+----------------+
1 row in set (0.00 sec)
ログイン後にコピー

上記の出力は、カウントが 0 (NULL 値) であることを意味します。

MySQL のバージョンを確認してみましょう。

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.06 sec)
ログイン後にコピー

NULL 値を許可するとシステムに空の文字列の使用が強制されるため、データベースでは空の文字列を使用する方が良いでしょう。 余分な作業が発生し、探しているデータは提供されません。ただし、NULLはスローされません count() 関数の実行中に例外が発生します。

以上がMySQLにNULLと空の文字列を挿入するのはどちらが良いでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート