Rumah  >  Artikel  >  pangkalan data  >  Mana yang lebih baik untuk memasukkan NULL atau rentetan kosong dalam MySQL?

Mana yang lebih baik untuk memasukkan NULL atau rentetan kosong dalam MySQL?

PHPz
PHPzke hadapan
2023-08-25 23:17:131502semak imbas

Mana yang lebih baik untuk memasukkan NULL atau rentetan kosong dalam MySQL?

Dalam innoDB, NULL menggunakan lebih sedikit ruang daripada rentetan kosong. Selain itu, panjang NULL ialah null, dan panjang rentetan kosong ialah 0.

Untuk memahami perkara ini, cipta jadual dengan bantuan arahan cipta seperti yang ditunjukkan di bawah Seperti berikut -

mysql> CREATE table DemoEmptyAndNULL
-> (
-> Message varchar(100)
-> );
Query OK, 0 rows affected (0.49 sec)

Selepas jadual berjaya dibuat, masukkan rekod kosong ke dalam jadual melalui arahan berikut arahan masukkan iaitu seperti berikut -

mysql> INSERT into DemoEmptyAndNULL values(' ');
Query OK, 1 row affected (0.17 sec)

Selepas memasukkan rekod, kita boleh menggunakan arahan pilih untuk memaparkan semua rekod iaitu seperti berikut -

mysql> SELECT * from DemoEmptyAndNULL;

Selepas melaksanakan pertanyaan di atas, output berikut diperoleh -

+---------+
| Message |
+---------+
|         |
+---------+
1 row in set (0.00 sec)

Sintaks untuk menyemak panjang rentetan kosong dengan bantuan kiraan fungsi terbina dalam adalah seperti berikut Ikut-

select count(column_name) from yourTableName;

Sintaks di atas digunakan untuk mendapatkan panjang rentetan kosong yang diberikan seperti berikut-

mysql> select count(message) from DemoEmptyAndNULL;

Selepas melaksanakan pertanyaan di atas, output adalah seperti berikut-

+----------------+
| count(message) |
+----------------+
| 1              |
+----------------+
1 row in set (0.06 sec)

Daripada output di atas ia adalah jelas bahawa aksara kosong Panjang rentetan ialah 1.

Sekarang kita akan semak panjang NULL. Pertama, rekod yang dimasukkan ke dalam jadual ialah dipadam menggunakan arahan padam seperti di bawah-

mysql> delete from DemoEmptyAndNULL where message=' ';
Query OK, 1 row affected (0.19 sec)

Pertanyaan berikut digunakan untuk menyemak sama ada tiada rekod dalam jadual semasa

mysql> SELECT * from DemoEmptyAndNULL;
Empty set (0.00 sec)

Kini, rekod dengan nilai nol dimasukkan ke dalam jadual seperti di bawah-

mysql> INSERT into DemoEmptyAndNULL values();
Query OK, 1 row affected (0.18 sec)

Rekod itu dipaparkan menggunakan arahan pilih dan output yang diperoleh adalah seperti berikut-

+---------+
| Message |
+---------+
| NULL    |
+---------+
1 row in set (0.00 sec)

Kini hanya terdapat satu rekod dengan nilai nol dalam jadual. Untuk mencari panjangnya, laksanakan pertanyaan berikut: Menggunakan -

mysql> select count(message) from DemoEmptyAndNULL;

Berikut ialah output pertanyaan di atas -

+----------------+
| count(message) |
+----------------+
| 0              |
+----------------+
1 row in set (0.00 sec)

Output di atas bermakna kiraan ialah 0 (nilai nol).

Jom semak versi MySQL.

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.06 sec)

Jadi pangkalan data lebih baik menggunakan rentetan kosong kerana membenarkan nilai NULL memaksa sistem melakukan ini Kerja tambahan dan tidak memberikan data yang anda cari. Walau bagaimanapun, NULL tidak membuang Sebarang pengecualian berlaku semasa melaksanakan fungsi count().

Atas ialah kandungan terperinci Mana yang lebih baik untuk memasukkan NULL atau rentetan kosong dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam