SQL - Numerische Funktionen
Willkommen, zukünftige SQL-Zauberer! Heute tauchen wir in die magische Welt der SQL-Numerischen Funktionen ein. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast – ich werde dein freundlicher Guide auf diesem Abenteuer sein. Bis zum Ende dieses Tutorials wirst du Zahlen wie ein Profi manipulieren können!
Was sind SQL-Numerische Funktionen?
Stell dir vor, du bist ein Koch in einer Küche. Du hast verschiedene Werkzeuge, um deine Zutaten zu schneiden, zu schneiden und zu zerkleinern. SQL-Numerische Funktionen sind wie diese Küchenwerkzeuge, aber für Zahlen. Sie helfen uns dabei, Berechnungen und Transformationen an numerischen Daten in unserer Datenbank durchzuführen.
Häufige SQL-Numerische Funktionen
Schauen wir uns einige der nützlichsten numerischen Funktionen in SQL an. Ich habe eine praktische Tabelle für dich vorbereitet:
Funktion | Beschreibung | Beispiel |
---|---|---|
ABS() | Gibt den Betrag des angegebenen Wertes zurück | ABS(-5) = 5 |
ROUND() | Runde eine Zahl auf eine bestimmte Anzahl von Dezimalstellen | ROUND(3.14159, 2) = 3.14 |
CEILING() | Gibt die kleinste Ganzzahl zurück, die größer oder gleich dem angegebenen Wert ist | CEILING(3.1) = 4 |
FLOOR() | Gibt die größte Ganzzahl zurück, die kleiner oder gleich dem angegebenen Wert ist | FLOOR(3.9) = 3 |
POWER() | Erhöht eine Zahl um die angegebene Potenz | POWER(2, 3) = 8 |
SQRT() | Gibt die Quadratwurzel einer Zahl zurück | SQRT(16) = 4 |
Nun wollen wir jede dieser Funktionen mit einigen praktischen Beispielen genauer untersuchen.
Die ABS() Funktion
Die ABS() Funktion gibt den Betrag einer Zahl zurück. Einfacher ausgedrückt, sie entfernt das Negativezeichen, wenn vorhanden.
SELECT ABS(-10) AS absolute_value;
Diese Abfrage wird folgendes zurückgeben:
absolute_value
--------------
10
Stell dir vor, du berechnest den Unterschied zwischen zwei Temperaturen. Es interessiert dich nicht, ob es positiv oder negativ ist; du möchtest nur die Größenordnung wissen. Genau hier kommt ABS() ins Spiel!
Die ROUND() Funktion
ROUND() ist wie jener Freund, der immer die Rechnung im Restaurant aufrundet. Es rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen.
SELECT ROUND(3.14159, 2) AS rounded_pi;
Ergebnis:
rounded_pi
----------
3.14
Diese Funktion ist super nützlich, wenn man mit Währungen zu tun hat oder wenn man große Zahlen für Berichte vereinfachen muss.
Die CEILING() und FLOOR() Funktionen
Diese Funktionen sind wie die Überflieger und Unterflieger der Zahlwelt. CEILING() rundet immer auf zur nächsten Ganzzahl, während FLOOR() immer abrundet.
SELECT CEILING(3.1) AS ceiling_value, FLOOR(3.9) AS floor_value;
Ergebnis:
ceiling_value | floor_value
--------------+------------
4 | 3
Ich stelle mir CEILING() als Optimisten (immer nach oben schauend) und FLOOR() als Pessimisten (immer nach unten schauend) vor. Verwende sie klug in deinen Berechnungen!
Die POWER() Funktion
POWER() ist wie das Verleihen von Superkräften an deine Zahlen! Es erhöht eine Zahl um die angegebene Potenz.
SELECT POWER(2, 3) AS two_cubed;
Ergebnis:
two_cubed
---------
8
Diese Funktion ist besonders nützlich in wissenschaftlichen Berechnungen oder wenn man Zinseszinsen berechnen muss (dein zukünftiges Ich wird dir dafür danken!).
Die SQRT() Funktion
SQRT() ist die Quadratwurzelfunktion. Es ist wie das Finden der Zahl, die, wenn sie mit sich selbst multipliziert wird, die ursprüngliche Zahl ergibt.
SELECT SQRT(16) AS square_root;
Ergebnis:
square_root
-----------
4
Fun Fact: Die alten Babyloner verwendeten eine Methode zur Berechnung von Quadratwurzeln, die überraschend ähnlich zu dem ist, was Computer heute tun!
Alles zusammenbringen
Nun, da wir diese Funktionen einzeln gelernt haben, sehen wir, wie wir sie in einer realen Welt-Situation kombinieren können. Stell dir vor, du analysierst Verkaufsdaten für ein kleines Unternehmen.
CREATE TABLE sales (
id INT PRIMARY KEY,
product_name VARCHAR(50),
sale_amount DECIMAL(10, 2),
discount DECIMAL(5, 2)
);
INSERT INTO sales VALUES
(1, 'Widget A', 100.00, 10.50),
(2, 'Gadget B', 75.25, 5.00),
(3, 'Doohickey C', 50.75, 2.25);
SELECT
product_name,
sale_amount,
discount,
ROUND(sale_amount - discount, 2) AS net_sale,
CEILING(POWER(net_sale, 1.05)) AS loyalty_points
FROM
sales;
Diese Abfrage berechnet den Nettobetrag nach Rabatt und weist basierend auf einem leicht aufgeblähten Nettobetrag Treuepunkte zu. Lassen wir es auseinanderfließen:
- Wir erstellen eine Tabelle und füllen sie mit Beispiel Daten.
- Wir verwenden ROUND(), um den Nettobetrag auf zwei Dezimalstellen zu berechnen.
- Wir verwenden POWER(), um den Nettobetrag leicht aufzublähen (erhöhen ihn auf die Potenz von 1.05).
- Schließlich verwenden wir CEILING(), um die Treuepunkte auf die nächste Ganzzahl aufzurunden.
Das Ergebnis könnte so aussehen:
product_name | sale_amount | discount | net_sale | loyalty_points
-------------+-------------+----------+----------+----------------
Widget A | 100.00 | 10.50 | 89.50 | 115
Gadget B | 75.25 | 5.00 | 70.25 | 89
Doohickey C | 50.75 | 2.25 | 48.50 | 60
Schlussfolgerung
Glückwunsch! Du hast deine ersten Schritte in die Welt der SQL-Numerischen Funktionen gewagt. Denke daran, Übung macht den Meister. Probiere diese Funktionen mit deinen eigenen Daten oder Beispielen aus. Habe keine Angst, Fehler zu machen – das ist, wie wir lernen!
In meinen Jahren des Unterrichtens habe ich festgestellt, dass die Schüler, die experimentieren und Spaß mit SQL haben, diejenigen sind, die es wirklich beherrschen. Also, geh forth, berechne, runde und power up deine Daten! Wer weiß? Vielleicht wirst du feststellen, dass das Arbeiten mit Zahlen in SQL so befriedigend ist wie das Lösen eines kniffligen Puzzles oder das Schaffen eines schönen Kunstwerks.
Weiter codieren, weiter lernen und vor allem: weiter Spaß mit SQL haben!
Credits: Image by storyset