Textfunktionen
Funktionen gibt es auch für Text. UPPER(x) schreibt einen Text in Großbuchstaben, LOWER(x) in Kleinbuchstaben, und LENGTH(x) sagt dir, wie viele Zeichen er hat:
SELECT name, UPPER(name) AS grossbuchstaben, LENGTH(name) AS zeichen
FROM kunden
LIMIT 3;| name | grossbuchstaben | zeichen |
|---|---|---|
| Emma Becker | EMMA BECKER | 11 |
| Lukas Neumann | LUKAS NEUMANN | 13 |
| Olivia Braun | OLIVIA BRAUN | 12 |
LENGTH zählt jedes Zeichen: Buchstaben, Ziffern, Leerzeichen und Satzzeichen. Emma Becker hat 11 davon, das Leerzeichen eingerechnet. Und LOWER('Moon Farm') ergibt moon farm.
Wozu ist das nützlich? Ein Banner auf der Startseite des Shops zeigt Titel in Großbuchstaben, ein Formular prüft, ob ein Name nicht zu lang für ein Versandetikett ist, und LOWER hilft beim Vergleichen von Texten, wenn du nicht weißt, wie sie geschrieben sind: LOWER(genre) ist rpg, egal ob in der Tabelle RPG, Rpg oder rpg steht. Das wirst du später in dieser Lektion in WHERE benutzen.
Funktionen ändern nicht die Daten in der Tabelle, nur das, was die Abfrage zeigt. Nach der Abfrage oben steht in der Tabelle immer noch Emma Becker, wie vorher. Das gilt für jede Abfrage: Sie liest die Daten nur.
Und NULL bleibt NULL: Die Länge eines fehlenden Kommentars ist nicht 0, sondern NULL. Eine Funktion, die keinen Wert bekommt, hat nichts, womit sie arbeiten könnte, und liefert deshalb auch keinen Wert. Wie du NULL durch etwas anderes ersetzt, lernst du bald.
Typischer Fehler: der Name einer Spalte in Anführungszeichen. UPPER('titel') funktioniert nicht mit der Spalte titel, es schreibt den Text 'titel' in Großbuchstaben, sodass jede Zeile TITEL sagt. Text in einfachen Anführungszeichen ist immer nur Text; schreibe die Namen von Spalten ohne Anführungszeichen.
So schreibst du es:
Anweisungen
- 1
Das Banner auf der Startseite des Shops zeigt Titel in Großbuchstaben, und es passen nur 12 Zeichen darauf. Um zu sehen, welche Titel passen, zeige den Titel jedes Spiels in Großbuchstaben als
bannerund die Länge des Titels alszeichen. Sortiere die Spiele nach dem Titel:banner zeichen BAKERY STORY 12 CASTLE SIEGE 12 CUBE LOGIC 10 … … - 2
Zeige darunter die Bewertungen von Dragon Forge (
spiel_id1): diekunde_id, die Sterne und die Länge des Kommentars alszeichen, sortiert nachkunde_id. Eine der Bewertungen hat keinen Kommentar:kunde_id sterne zeichen 1 4 36 2 5 26 5 3 20 8 5 NULL