Exkurs - Funktionen in der Ausgabe
SQL kann auch Funktionen anwenden, um die Werte von Ausgabespalten zu berechnen.
Leider ist die Sprache hier nicht standardisiert, so dass unterschiedliche Datenbanksysteme verschiedene Syntax verwenden können.
Die folgenden einfachen Beispiele beziehen sich auf das freie Datenbanksystem MySQL.
Beispiel 1: Berechnen der Bevölkerungsdichte
In der land-Tabelle sind sowohl die Einwohnerzahl (in Mio.) als auch die Fläche in km2 gespeichert. Damit kann man die Bevölkerungsdichte (in 1000 Einwohner pro km2) berechnen:
Beachte, dass hier der Aliasname der berechneten Spalte auch in der Sortierung verwendet wird.
Beispiel 2: Anzeige der Breite in Grad
Die Grad-Angabe für die geografische Breite ist in der Datenbank dezimal angegeben. Dabei werden Werte unterhalb des Äquators mit negativem Vorzeichen versehen.
Der folgende SQL-Befehl gibt die Breite (gerundet auf ganze Grad) in der üblichen Form, z.B. 49,1° N, aus.
Zur Erklärung:
- Die äußere Funktion
CONCAT
erlaubt es, mehrere Werte (Zeichenketten) zu verbinden. Die Zahl als erstes Argument wird dabei bei MySQL automatisch in eine Zeichenkette verwandelt. -
ABS
ist die Betragsfunktion,ROUND
erklärt sich von selbst. - Die besondere "Funktion"
IIF
oderIF
erlaubt es, eine Bedingung auszuwerten.
Weitere Funktionen finden sich in der jeweiligen Dokumentation des Datenbanksystems:
- Für SQLite (das wir auch hier in der online-Datenbank verwenden) findest du eine hier englische Beschreibung.
- Falls du eine Datenbank in der Schule oder zu Hause selbst mit XAMPP betreibst: Für MySQL/MariaDB findest du
hier eine englischsprachige Dokumentation mit allen Funktionen.
Übrigens - in MySQL heißt die Funktion (eigentlich logischer)IF
stattIIF
Beispiel 3: Benfordsches Gesetz
Die Mathematiker Simon Newcomb und Frank Benford haben ein mathematisches Gesetz über die Verteilung der Ziffernstrukturen von Zahlen in empirischen Datensätzen herausgefunden. Kurz gefasst besagt es:
In empirischen Daten (etwa die Bevölkerungszahlen) tritt die Zahl 1 häufiger auf als die 9.
Genauer: Je höher die Ziffer, desto seltener tritt sie auf.
Für die Anfangsziffern in Zahlen des Zehnersystems gilt zum Beispiel: Zahlen mit der Anfangsziffer 1 treten etwa 6,5-mal so häufig auf wie solche mit der Anfangsziffer 9. (Quelle: de.wikipedia.org).
Dieses Gesetz kannst du mit einem SQL-Befehl in der terra-Datenbank nachvollziehen:
Interessant ist hier zunächst nur die Funktion SUBSTR(Einwohner,1,1)
als Beispiel für eine
(selbst erklärende?) Funktion für Zeichenketten. Den Rest des SQL-Befehls lernst du in späteren Kapiteln kennen.