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

Ein paar Dinge zu favicon.ico (am besten im Stammverzeichnis ablegen)

Öffnen Sie eine beliebige Webseite, zum Beispiel ...

So installieren und implementieren Sie einen FTP-Image-Server unter Linux

Lesen Sie das Tutorial zum Einrichten eines FTP-S...

Detaillierte Erklärung der Schleifenverwendung in Javascript-Beispielen

Aus Langeweile habe ich ein paar einfache Übungen...

Detaillierte Erklärung zur Verwendung der Vue-Verifizierungscode-Komponente

In diesem Artikelbeispiel wird der spezifische Im...

Vue implementiert das Ziehen und Sortieren von Bildern

In diesem Artikelbeispiel wird der spezifische Co...

Erste Schritte mit Mysql - SQL-Ausführungsprozess

Inhaltsverzeichnis 1. Prozess 2. Kernarchitektur ...

JavaScript Canvas implementiert die Bewegung des Balls entlang der Maus

In diesem Artikelbeispiel wird der spezifische Co...

Implementierung der gemeinsamen Nutzung von Daten zwischen Docker Volume-Containern

Was ist Volumen? „Volume“ bedeutet auf Englisch K...

Detaillierte Erläuterung des Ausführungsplans, Beispiel für einen Befehl in MySQL

Vorwort Der Befehl „Explain“ ist die primäre Mögl...

So verwenden Sie den Vue-Video-Player für eine Live-Übertragung

Inhaltsverzeichnis 1. Installieren Sie den Vue-Vi...

Eine vollständige Anleitung zur Konfiguration von Linux-Umgebungsvariablen

Konfiguration der Linux-Umgebungsvariablen Beim A...