Der Unterschied zwischen dem Dezimaltyp und dem Float Double in MySQL (ausführliche Erklärung)

Der Unterschied zwischen dem Dezimaltyp und dem Float Double in MySQL (ausführliche Erklärung)

MySQL verfügt über nicht standardmäßige Datentypen wie Float und Double sowie über standardmäßige Datentypen wie Decimal.

Der Unterschied besteht darin, dass nicht standardmäßige Typen wie Float und Double ungefähre Werte in der Datenbank speichern, während Decimal numerische Werte in Form von Zeichenfolgen speichert.
Float- und Double-Typen können Gleitkommazahlen speichern (also Dezimaltypen), aber Float hat einen Nachteil. Wenn die von Ihnen angegebenen Daten eine Ganzzahl sind, werden sie als Ganzzahl behandelt. Auf diese Weise stoßen wir natürlich auf Probleme beim Speichern und Zugreifen auf Währungswerte. Mein Standardwert ist: 0,00, aber der tatsächliche Speicherwert ist 0. Wenn ich Währungswerte als 12,00 einzahle und darauf zugreife, beträgt der tatsächliche Speicherwert 12.

Glücklicherweise bietet MySQL zwei Datentypen: Dezimal, wodurch das obige Problem leicht gelöst werden kann: Der Dezimaltyp wird von MySQL im gleichen Typ implementiert, der im SQL92-Standard zulässig ist. Sie werden zum Speichern von Werten verwendet, bei denen es auf genaue Genauigkeit ankommt, wie zum Beispiel bei Daten im Zusammenhang mit Geld.

Datendefinition

float(M,S) M ist die Gesamtlänge und S die Länge nach dem Dezimalpunkt. Im Internet gibt es viele ungenaue Beispiele. Kopieren Sie sie wie folgt:

mysql> Tabelle erstellen t1(c1 float(10,2), c3 decimal(10,2));

Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)

mysql> in t1-Werte einfügen (9876543.21, 9876543.12);

Abfrage OK, 1 Zeile betroffen (0,00 Sek.)

mysql> wähle * aus t1;

+----------------+-----------------+

| c1 | c3 |

+----------------+-----------------+

| 9876543.00 | 9876543.12 |

+----------------+------------------+

2 Zeilen im Satz (0,00 Sek.)

Ein weiteres Beispiel: DECIMAL(5,2)

mysql> Tabelle erstellen t1(id1 float(5,2) Standard null,id2 double(5,2) Standard null,
id3 dezimal(5,2) Standard null );

mysql> in t1-Werte einfügen (1,2345,1,2345,1,2345);
Abfrage OK, 1 Zeile betroffen, 1 Warnung (0,04 Sek.)

mysql> Warnungen anzeigen;
+-------+------+------------------------------------------+
| Ebene | Code | Nachricht |
+-------+------+------------------------------------------+
| Hinweis | 1265 | Daten für Spalte „id3“ in Zeile 1 abgeschnitten |
+-------+------+------------------------------------------+
1 Zeile im Satz (0,00 Sek.)

1,2345 --- Es gibt höchstens 2 Dezimalstellen, daher kann es gespeichert werden und die Daten werden automatisch gerundet, aber ein Rückgang wird gemeldet

12.34 --- OK

1234,5 --- Da der Dezimalteil weniger als 2 Ziffern umfasst, muss er mit 0 aufgefüllt werden. Er sollte daher als 1234,50 gespeichert werden. Dadurch wird die Gesamtzahl der Ziffern 5 überschritten und beim Speichern ein Fehler gemeldet.

1.2 --- Füllen Sie den Dezimalteil mit 0. Sparen Sie nach 1.20.

Vergleich des Standardstatus

Wenn bei Gleitkommazahlen Längengrad und Maßstab nicht angegeben werden, werden sie entsprechend dem tatsächlichen Genauigkeitswert gespeichert. Wenn Genauigkeit und Maßstab angegeben werden, wird das gerundete Ergebnis automatisch eingefügt und das System meldet keinen Fehler. Wenn Genauigkeit und Maßstab bei Festkommazahlen nicht angegeben werden, wird der Standardwert decimal(10,0) verwendet. Wenn die Daten den Genauigkeits- und Maßstabswert überschreiten, meldet das System einen Fehler.

Der obige Artikel über den Unterschied zwischen dem Dezimaltyp und dem Float Double in MySQL (ausführliche Erklärung) ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Eine kurze Einführung in die Verwendung des Dezimaltyps in MySQL
  • Detaillierte Erklärung der Bedeutung von N und M im MySQL-Datentyp DECIMAL(N,M)
  • Methode zum Konvertieren einer numerischen Zeichenfolge in wissenschaftlicher Notation in den Dezimaltyp
  • Datenbankdatentyp Float zum C#-Typ Dezimal, Konvertierung des Float-Datentyps ist ungültig
  • Detaillierte Erklärung der Verwendung von DECIMAL im MySQL-Datentyp
  • Implementierung der MySQL-Dezimaldatentypkonvertierung
  • Detaillierte Erläuterung des Dezimal-Padding-Problems des Dezimal-Datentyps in MySQL
  • Detaillierte Erklärung zur Verwendung des MySQL-Datentyps DECIMAL
  • Ausführliche Erläuterung der Verwendung und Implementierung des Decimal-Typs in der Datenbank

<<:  So mounten Sie eine Datenfestplatte auf Tencent Cloud Server Centos

>>:  Detaillierte Erläuterung der Konfiguration und Serialisierung von Nest.js-Umgebungsvariablen

Artikel empfehlen

Installationsprozess von Zabbix-Agent auf Kylin V10

1. Laden Sie das Installationspaket herunter Down...

Praktische Methode zum Upgrade von PHP auf 5.6 unter Linux

1: Überprüfen Sie die PHP-Version nach dem Aufruf...

So konfigurieren Sie zwei oder mehr Sites mit dem Apache-Webserver

So hosten Sie zwei oder mehr Sites auf dem belieb...

CSS imitiert den sanften Umschalttasteneffekt von Apple

Inhaltsverzeichnis 1. Code-Analyse 2. Quellcode Q...

Detaillierte Erläuterung des Vue-Routing-Routers

Inhaltsverzeichnis Routing-Plugins modular nutzen...

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort vergessen?

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort ve...

Lösung für das Problem des Speicherns des Formats in HTML TextArea

Das Format des Textbereichs kann beim Speichern in...

Vue realisiert den Card-Flip-Effekt

In diesem Artikelbeispiel wird der spezifische Co...

So handhaben Sie gleichzeitige Aktualisierungen von MySQL-Daten

Wird UPDATE gesperrt? Wird die SQL-Anweisung gesp...

So erreichen Sie die maximale Anzahl von Verbindungen in MySQL

Inhaltsverzeichnis Was ist der Grund für den plöt...

So installieren Sie MySql in CentOS 8 und erlauben Remoteverbindungen

Herunterladen und installieren. Prüfen Sie zunäch...