MySQL - DECIMAL: Ein umfassender Leitfaden für Anfänger

Hallo da draußen, zukünftige Datenbank-Zauberer! Heute tauchen wir in die wunderbare Welt von MySQLs DECIMAL-Datentyp ein. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast – ich werde dein freundlicher Guide auf dieser Reise sein und alles Schritt für Schritt erklären. Also hol dir eine Tasse Kaffee (oder Tee, wenn das dein Ding ist) und los geht's!

MySQL - DECIMAL

Der MySQL Decimal-Datentyp

Was ist DECIMAL?

DECIMAL ist ein Datentyp in MySQL, der es uns ermöglicht, exakte numerische Werte zu speichern. Du könntest jetzt denken: "Können wir nicht einfach reguläre Zahlen verwenden?" Ja, das können wir, aber DECIMAL ist besonders. Es ist besonders nützlich, wenn wir präzise Berechnungen benötigen, wie zum Beispiel bei Geldangelegenheiten oder wissenschaftlichen Messungen.

Stell dir vor, du baust eine Banking-App. Du würdest sicherlich nicht einen Datentyp verwenden, der Centbeträge abrunden könnte, oder? Genau hier kommt DECIMAL ins Spiel!

Syntax und Verwendung

Die grundlegende Syntax für die Deklaration einer DECIMAL-Spalte lautet:

DECIMAL(M,D)

Hierbei ist 'M' die maximale Anzahl von Ziffern (die Präzision) und 'D' die Anzahl der Nachkommastellen (der Skalierung). Lassen wir das mit einem Beispiel erläutern:

CREATE TABLE product_prices (
id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100),
price DECIMAL(10,2)
);

In diesem Beispiel erstellen wir eine Tabelle, um Produkt-preise zu speichern. Die 'price'-Spalte ist als DECIMAL(10,2) definiert, was bedeutet:

  • Sie kann bis zu 10 Ziffern insgesamt speichern
  • 2 dieser Ziffern werden nach dem Dezimalpunkt sein

Wir könnten also Preise wie 1234567.89 oder 9.99 speichern, aber nicht 1234567890.99 (zu viele Ziffern) oder 9.999 (zu viele Nachkommastellen).

MySQL DECIMAL Speicherung

Nun sprechen wir darüber, wie MySQL DECIMAL-Werte speichert. Das klingt vielleicht etwas technisch, aber ich verspreche, es ist interessant!

MySQL speichert DECIMAL-Werte in einem binären Format. Jede Dezimalziffer beansprucht 4 Bits, und für negative Zahlen verwendet MySQL das Vorzeichenbit des ersten Bytes.

Hier ist ein interessantes Detail: MySQL packt die Ziffern in Bytes, was bedeutet, dass es zwei Dezimalziffern pro Byte speichern kann. Clever, oder?

Schauen wir uns einige Beispiele an, um die Speicheranforderungen zu verstehen:

DECIMAL-Definition Erforderter Speicher
DECIMAL(5,2) 3 Bytes
DECIMAL(5,0) 3 Bytes
DECIMAL(10,5) 5 Bytes
DECIMAL(65,30) 33 Bytes

Wie du siehst, steigt der Speicherbedarf, wenn wir die Präzision (M) unseres DECIMAL erhöhen.

Dezimal-Datentyp in einem Client-Programm verwenden

Nun, da wir wissen, was DECIMAL ist und wie es gespeichert wird, lassen uns es in die Tat umsetzen! Wir verwenden ein MySQL-Client-Programm, um eine Tabelle zu erstellen, Daten einzufügen und abzufragen.

Erstellen einer Tabelle mit DECIMAL

Zunächst erstellen wir eine Tabelle, um Informationen über Produkte zu speichern:

CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10,2),
weight DECIMAL(5,3)
);

Hier verwenden wir DECIMAL sowohl für den Preis (bis zu 8 Ziffern vor dem Dezimalpunkt und 2 danach) als auch für das Gewicht (bis zu 2 Ziffern vor dem Dezimalpunkt und 3 danach).

Daten einfügen

Nun fügen wir einige Produkte in unsere Tabelle ein:

INSERT INTO products (name, price, weight)
VALUES
('Laptop', 999.99, 2.500),
('Smartphone', 599.99, 0.180),
('Kopfhörer', 149.99, 0.220);

Daten abfragen

Lassen wir uns unsere Daten abrufen und einige Berechnungen durchführen:

SELECT name, price, weight, price * weight AS price_per_kg
FROM products;

Diese Abfrage wird uns ein Ergebnis wie dieses geben:

+------------+---------+--------+--------------+
| name       | price   | weight | price_per_kg |
+------------+---------+--------+--------------+
| Laptop     | 999.99  | 2.500  | 2499.975000  |
| Smartphone | 599.99  | 0.180  | 107.998200   |
| Kopfhörer  | 149.99  | 0.220  | 32.997800    |
+------------+---------+--------+--------------+

Beachte, wie MySQL die Präzision in Berechnungen mit DECIMAL-Werten beibehält.

Ein Wort der Warnung

Obwohl DECIMAL großartig für Präzision ist, ist es wichtig, es maßvoll zu verwenden. Wenn du keine exakte Präzision benötigst (wie bei großen Zahlen, bei denen kleine Unterschiede unwichtig sind), erwäge die Verwendung von FLOAT oder DOUBLE für bessere Leistung.

Fazit

Und hier haben wir es, Leute! Wir haben die Welt von MySQLs DECIMAL-Datentyp durchquert. Wir haben gelernt, was es ist, wie es gespeichert wird und wie man es in der realen Welt verwendet.

Denke daran, in der Welt der Datenbanken kann Präzision dein bester Freund oder dein schlimmster Feind sein. Wähle deine Datentypen weise und möge deine Berechnungen stets genau sein!

Beim Abschied hier ein kleiner Datenbank-Witz für dich: Warum bevorzugen Programmierer dunklen Modus? Weil Licht Käfer anzieht!

Weiter üben, bleib neugierig und viel Spaß beim Programmieren!

Credits: Image by storyset