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

Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

Inhaltsverzeichnis Indexmodell B+Baum Indexauswah...

Grundlegendes Handbuch für Webdesign 216 Websichere Farben

Die Farbdarstellung auf einer Webseite wird von ve...

So konvertieren Sie MySQL horizontal in vertikal und vertikal in horizontal

Daten initialisieren Tabelle löschen, wenn `test_...

CSS implementiert fünf gängige 2D-Transformationen

2D-Transformationen in CSS ermöglichen es uns, ei...

Prozessdiagramm zur Implementierung der Zabbix WEB-Überwachung

Nehmen Sie als Beispiel die WEB-Schnittstelle von...

Detaillierte Konfiguration der drahtlosen Netzwerkkarte unter Ubuntu Server

1. Stecken Sie die WLAN-Karte ein und prüfen Sie ...

Spezifische Verwendung des Stapelkontexts in CSS

Vorwort Unter dem Einfluss einiger CSS-Interaktio...

So deinstallieren Sie das native OpenJDK von Linux und installieren Sun JDK

Siehe: https://www.jb51.net/article/112612.htm Üb...

Lösung für leere Seite nach Vue-Verpackung

1. Lösung für das Problem, dass die Seite leer is...