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

PHPz
Lepaskan: 2023-08-25 23:17:13
ke hadapan
1526 orang telah melayarinya

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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

mysql> SELECT * from DemoEmptyAndNULL;
Salin selepas log masuk

Selepas melaksanakan pertanyaan di atas, output berikut diperoleh -

+---------+
| Message |
+---------+
|         |
+---------+
1 row in set (0.00 sec)
Salin selepas log masuk

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

select count(column_name) from yourTableName;
Salin selepas log masuk

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

mysql> select count(message) from DemoEmptyAndNULL;
Salin selepas log masuk

Selepas melaksanakan pertanyaan di atas, output adalah seperti berikut-

+----------------+
| count(message) |
+----------------+
| 1              |
+----------------+
1 row in set (0.06 sec)
Salin selepas log masuk

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)
Salin selepas log masuk

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

mysql> SELECT * from DemoEmptyAndNULL;
Empty set (0.00 sec)
Salin selepas log masuk

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)
Salin selepas log masuk

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

+---------+
| Message |
+---------+
| NULL    |
+---------+
1 row in set (0.00 sec)
Salin selepas log masuk

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

mysql> select count(message) from DemoEmptyAndNULL;
Salin selepas log masuk

Berikut ialah output pertanyaan di atas -

+----------------+
| count(message) |
+----------------+
| 0              |
+----------------+
1 row in set (0.00 sec)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!