Vergleichsoperatoren
Neben = hat SQL fünf weitere Vergleichsoperatoren:
| Operator | Bedeutung | Beispiel |
|---|---|---|
| = | ist gleich | preis = 30 |
| <> oder != | ist ungleich | preis <> 30 |
| < | ist kleiner als | preis < 30 |
| > | ist größer als | preis > 30 |
| <= | ist kleiner oder gleich | preis <= 30 |
| >= | ist größer oder gleich | preis >= 30 |
<> und != bedeuten dasselbe. <> stammt aus dem SQL-Standard, den jede Datenbank kennt; != kennst du vielleicht aus anderen Programmiersprachen. Dieser Kurs verwendet <>.
Achte auf die Grenze. „Billiger als 15 €“ ist preis < 15, und die Spiele, die genau 15 € kosten, sind nicht dabei:
SELECT titel, preis
FROM spiele
WHERE preis < 15
ORDER BY preis;| titel | preis |
|---|---|
| Cube Logic | 5 |
| Word Quest | 10 |
„Höchstens 15 €“ ist preis <= 15, und die drei Spiele für 15 € sind auch dabei:
SELECT titel, preis
FROM spiele
WHERE preis <= 15
ORDER BY preis, titel;| titel | preis |
|---|---|
| Cube Logic | 5 |
| Word Quest | 10 |
| Bakery Story | 15 |
| Ocean Deep | 15 |
| Pixel Racer | 15 |
Jede Seite eines Vergleichs kann auch eine Rechnung sein. Ein Kunde hat 50 € und möchte zwei Exemplare desselben Spiels, eines für einen Freund. Die Spiele, deren zwei Exemplare höchstens 50 € kosten, die teuersten zuerst:
SELECT titel, preis * 2 AS zwei_exemplare
FROM spiele
WHERE preis * 2 <= 50
ORDER BY preis DESC, titel;| titel | zwei_exemplare |
|---|---|
| Mystery Manor | 50 |
| Shadow Ninja | 50 |
| Tiny Kingdoms | 50 |
| … | … |
Typischer Fehler: die Zeichen andersherum, => statt >=. WHERE preis => 40 endet mit einem Fehler:
Error on line 1: near ">": syntax errorDas Gleichheitszeichen steht immer an zweiter Stelle, in derselben Reihenfolge, in der du es sagst: „größer oder gleich“.
So schreibst du es:
Anweisungen
- 1
Zeige den Titel und den Preis der Spiele, die 40 € oder mehr kosten, die teuersten zuerst. Sortiere die Spiele mit demselben Preis nach dem Titel:
titel preis Knight's Oath 60 Goal Rush 50 Ice Hockey Pro 45 Dragon Forge 40 Robot Rebellion 40 - 2
Zeige darunter den Titel und die Altersfreigabe der Spiele, die nicht ab 3 Jahren geeignet sind (ihre
altersfreigabeist nicht 3). Sortiere sie nach der Altersfreigabe, von der niedrigsten, und dann nach dem Titel:titel altersfreigabe Ocean Deep 7 Tiny Kingdoms 7 Word Quest 7 Castle Siege 12 … … - 3
Und für die Buchhaltung: Zeige die Positionen, für die der Kunde insgesamt mehr als 50 € bezahlt hat, also die, deren
menge * preisgrößer als 50 ist. Zeige die Spaltenbestellung_idundspiel_idund die Summe unter dem Namengesamt, sortiert nachbestellung_id:bestellung_id spiel_id gesamt 22 14 60 26 15 60 27 15 60 29 15 60