NULL und leere Zeichenfolge in MySQL

NULL und leere Zeichenfolge in MySQL

Ich bin vor kurzem mit MySQL in Berührung gekommen. Gestern habe ich eine neue Tabelle erstellt, um Informationen zur Tabellenstruktur zu speichern:

Tabelle tablist erstellen(TABLE_SCHEMA varchar(40),TABLE_NAME varchar(40),COLUMN_NAME varchar(40),COLUMN_TYPE varchar(40),
IS_NULLABLE varchar (10), COLUMN_DEFAULT varchar (40), COLUMN_COMMENT varchar (1000), REMARK varchar (2000));
in Tablist einfügen (TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT)
Wählen Sie TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
aus information_schema.`COLUMNS`, wobei TABLE_SCHEMA='leo';

Fragen Sie dann die Tablist-Tabelle ab:

Sehen Sie, welche Spalten keine Kommentare haben:

Wählen Sie * aus der Registerkartenliste, wo COLUMN_COMMENT null ist;

Das Ergebnis, das ich gefunden habe, war „Leere Menge“. Aus den obigen Abfrageergebnissen und Navicat können wir jedoch ersehen, dass der Nullwert im Ergebnissatz als Wort „null“ angezeigt wird, während die leere Zeichenfolge als leer angezeigt wird.

Nachdem ich die Informationen überprüft hatte, stellte ich fest, dass es in MySQL einen Unterschied zwischen dem Nullwert und der leeren Zeichenfolge gibt. Es ist sehr seltsam, dass sich der Nullwert nach dem Einfügen von COLUMN_COMMENT in eine leere Zeichenfolge verwandelt (der Grund ist unbekannt).

Verwenden Sie select * from tablist where COLUMN_COMMENT=''; und die Abfrage funktioniert einwandfrei.

NULL-Spalten benötigen zusätzlichen Platz in der Zeile, um aufzuzeichnen, ob ihre Werte NULL sind. Bei MyISAM-Tabellen benötigt jede NULL-Spalte ein zusätzliches Bit, aufgerundet auf das nächste Byte.

In der Myisam-Engine von MySQL belegen Nullwerte zusätzlichen Speicherplatz (1 Bit), während leere Zeichenfolgen überhaupt keinen Speicherplatz beanspruchen. Gleichzeitig können Nullwerte nicht im B-Baum-Indizierung gespeichert werden, was bei großen Datenmengen zu schwerwiegenden Leistungsproblemen führt.

Auch die Abfragemethoden der beiden sind unterschiedlich: Die Nullwertabfrage verwendet die „ist null/ist nicht null“-Abfrage, während leere Zeichenfolgen mit „=“ oder „!=“ abgefragt werden können.

Zusammenfassen

Oben habe ich Ihnen NULL und leere Zeichenfolgen in MySQL vorgestellt. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Der MySQL-Server läuft mit der Option --read-only und kann diese Anweisung daher nicht ausführen.
  • mysql-Datenbankmysql: [FEHLER] unbekannte Option ''--skip-grant-tables''
  • Detaillierte Erklärung zur Sicherstellung der Konsistenz von MySQL-Ansichten (mit Prüfoption)
  • Lösung für die Fehlermeldung "java.sql.SQLException: Incorrect string value:'\xF0\x9F\x92\xA9\x0D\x0A...'" beim Speichern von Emoticons in MySQL
  • Ein Beispiel für die Verbindung von MySQL mit PHP über ODBC zu einer beliebigen Datenbank
  • Detaillierte Erklärung zur Installation und vollständigen Deinstallation von MySQL mit apt-get unter Ubuntu
  • Beispiele für die korrekte Verwendung von AES_ENCRYPT() und AES_DECRYPT() zum Verschlüsseln und Entschlüsseln von MySQL
  • Der MySQL-Server wird mit der Option --skip-grant-tables ausgeführt.
  • Detaillierte Erklärung zur Verwendung von pt-heartbeat zur Überwachung der MySQL-Replikationsverzögerung
  • Einführung in die Verwendung des MySQL pt-slave-restart-Tools

<<:  Top 10 Js Bildverarbeitungsbibliotheken

>>:  So übertragen Sie Dateien zwischen Windows und Linux

Artikel empfehlen

Lösung für das Datenasymmetrieproblem zwischen MySQL und Elasticsearch

Lösung für das Datenasymmetrieproblem zwischen My...

So verwenden Sie das Videowiedergabe-Plugin DPlayer.js

Das Videoplayer-Plugin DPlayer.js ist einfach zu ...

Detaillierte Erklärung zur Verwendung der Vue h-Funktion

Inhaltsverzeichnis 1. Verstehen 2. Verwendung 1. ...

Vue-Router-Verlaufsmodus, serverseitiger Konfigurationsprozess-Datensatz

Geschichtsroute Der Verlaufsmodus bezieht sich au...

Detaillierte Erläuterung des Selinux-Grundkonfigurationstutorials unter Linux

selinux ( Security-Enhanced Linux) ist ein Linux-...

Zusammenfassung ungewöhnlicher JS-Operationsoperatoren

Inhaltsverzeichnis 2. Komma-Operator 3. JavaScrip...

Beispiele für die Verwendung von „Provide“ und „Inject“ in Vue2.0/3.0

Inhaltsverzeichnis 1. Was ist der Nutzen von Prov...

Überwachen Sie die Größenänderung eines DOM-Elements über Iframe

Ein während des Entwicklungsprozesses häufig auft...

Schritte zur Lösung des Zeitzonenproblems in MySQL 8.0

Softwareversion Windows: Windows 10 MySQL: mysql-...

Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit

Ich werde nicht erklären, was CUDA ist, sondern d...

Node implementiert Suchfeld für Fuzzy-Abfragen

In diesem Artikelbeispiel wird der spezifische Co...