Ich glaube, dass vielen Leuten, die MySQL schon lange verwenden, die Konzepte dieser beiden Feldattribute immer noch nicht ganz klar sind und sie im Allgemeinen die folgenden Fragen haben:
Lassen Sie uns vor dem Hintergrund der oben genannten Fragen einen genaueren Blick auf die Unterschiede zwischen „null“ und „nicht null“ werfen.
Wenn Sie beispielsweise eine Tasse haben, bedeutet ein Nullwert, dass sich in der Tasse ein Vakuum befindet, und NULL bedeutet, dass die Tasse mit Luft gefüllt ist. Obwohl die Tassen leer aussehen, ist der Unterschied enorm. Nachdem wir die Begriffe „Nullwert“ und „NULL“ geklärt haben, ist das Problem im Grunde klar. Machen wir ein Beispiel, um es zu testen: CREATE TABLE `test` ( `col1` VARCHAR( 10 ) ZEICHENSATZ utf8 COLLATE utf8_general_ci NICHT NULL , `col2` VARCHAR( 10 ) ZEICHENSATZ utf8 COLLATE utf8_general_ci NULL ) ENGINE = MYISAM; Daten einfügen: INSERT INTO `test` VALUES (null,1); MySQL-Fehler:
Noch eine INSERT INTO `test` VALUES ('',1); Erfolgreich eingefügt. Es ist ersichtlich, dass in das Feld NOT NULL nicht „NULL“ eingefügt werden kann, sondern nur „Nullwert“. Die Antwort auf Frage 1 oben ist ebenfalls verfügbar. Zu Frage 2 haben wir oben bereits gesagt, dass NULL eigentlich kein Nullwert ist, aber Platz einnimmt. Wenn MySQL Vergleiche durchführt, nimmt NULL daher am Feldvergleich teil, was einige Auswirkungen auf die Effizienz hat. Fügen wir noch einige Daten in die Testtabelle ein: INSERT INTO `test` VALUES ('', NULL); INSERT INTO `test` VALUES ('1', '2'); Nun die Daten in der Tabelle: Jetzt möchte ich gemäß den Anforderungen alle Daten in der Testtabelle zählen, bei denen col1 nicht leer ist. Soll ich „<> ''“ oder „IS NOT NULL“ verwenden? Schauen wir uns den Unterschied in den Ergebnissen an. Wählen Sie * aus `test`, wobei col1 nicht NULL ist Wählen Sie * aus `test`, wobei col1 <> '' Wie Sie sehen, sind die Ergebnisse sehr unterschiedlich. Daher müssen wir basierend auf den Geschäftsanforderungen herausfinden, welche Suchkriterien zu verwenden sind. MySQL empfiehlt, dass Spaltenattribute so oft wie möglich NOT NULL sind Längenprüfung: Beachten Sie, dass zwischen den leeren Werten kein Leerzeichen steht. mysql> wähle Länge(''), Länge(null), Länge(' '); +------------+--------------+--------------+ | Länge('') | Länge(null) | Länge(' ') | +------------+--------------+--------------+ | 0 | NULL | 2 | +------------+--------------+--------------+ Notiz:
Damit ist dieser Artikel über die Unterschiede zwischen MySQL null und nicht null und zwischen null und leerem Wert '''' abgeschlossen. Weitere Informationen zu MySQL null und nicht null finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Vue implementiert den Anruf der PC-Kamera, um Fotos in Echtzeit aufzunehmen
>>: Analyse des Funktionsprinzips und des Implementierungsprozesses von Docker Hub
Klassifizierung der Farbeigenschaften Jede Farbe ...
Inhaltsverzeichnis Frage Hintergrund Idee & U...
Bei der sogenannten kaskadierenden Replikation sy...
Das World Wide Web Consortium (W3C) hat einen Entw...
1. Ordner löschen Beispiel: rm -rf /usr/java Das ...
1. Laden Sie die virtuelle Maschine Version 15.5....
Zwei Möglichkeiten zum Navigieren auf der Seite D...
1. Bedeutung der Partitionstabelle Eine Partition...
MySQL 8.0.19 unterstützt die Sperrung des Kontos ...
Pixel Auflösung Mit der Monitorauflösung ist eige...
Inhaltsverzeichnis 1. Installationsumgebung 2. In...
Vorwort Im Internet gibt es häufig Artikel, die v...
Vorwort <br />Ich arbeite schon eine ganze W...
Hintergrund Beim Ausführen einer SQL-Abfrage habe...
Die Referenzierung ist über CDN (Content Delivery ...