1. Welche Kunden werden von Filiale Nr. 2 betreut?
1 2 3 4 5 6 7 8 |
SELECT first_name , last_name FROM customer WHERE store_id = 2 ORDER BY last_name , first_name; |
+----------+---------+ |first_name|last_name| +----------+---------+ |Kathleen |Adams | |Shirley |Allen | |Charlene |Alvarez | |Lisa |Anderson | |Ida |Andrews | |Oscar |Aquino | ... (273 Datensätze insgesamt)
2. Welche Filme haben eine Spieldauer zwischen 45 und 60 Minuten?
Lösen Sie die Aufgabe mit zwei alternativen Abfragen:
- Verwenden Sie
BETWEEN
. - Nutzen Sie zwei logisch verknüpfte Teilbedingungen als Filter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
-- Lösung mit BETWEEN SELECT title , length FROM film WHERE length BETWEEN 45 AND 60 ORDER BY length DESC , title; -- Lösung mit zwei logisch verknüpften Teilbedingungen SELECT title , length FROM film WHERE length >= 45 AND length <= 60 ORDER BY length DESC , title; |
+---------------------+------+ |title |length| +---------------------+------+ |Bubble Grosse |60 | |Jersey Sassy |60 | |Mockingbird Hollywood|60 | |Phantom Glory |60 | |Pity Bound |60 | |Room Roman |60 | ... (104 Datens#tze insgesamt)
3. Welche Filme handeln laut Titel von Dinosauriern?
Hinweis: Nutzen Sie die Kurzform ‚Dino‘.
Anscheinend sollen wir prüfen, ob die Zeichenkette ‚Dino‘ im Filmtitel vorkommt.
1 2 3 |
SELECT title FROM film WHERE title LIKE '%Dino%'; |
+------------------+ |title | +------------------+ |Academy Dinosaur | |Center Dinosaur | |Dinosaur Secretary| +------------------+
Wir könnten uns auch überlegen, dass die gesuchte Zeichenkette vielleicht, wenn wir die Groß-/Kleinschreibung ignorieren, anderweitig vorkommt.
1 2 3 |
SELECT title FROM film WHERE lower(title) LIKE '%dino%'; |
Es bleibt bei drei Filmen.
4. XOR – exklusives ODER
Das logische ODER (OR
) ist in SQL, wie auch in anderen Programmiersprachen, ein inklusives ODER. Wenn Sie ein exklusives ODER benötigen, also ein „entweder oder“, wie würden Sie es in SQL formulieren?
- Erstellen Sie eine Wahrheitstafel.
- Prüfen Sie Ihre Formulierung. Suchen Sie nach Filmen, die entweder ‚Dino‘ im Titel haben oder ‚Academy‘, jedoch nicht beides. Groß-/Kleinschreibung soll ignoriert werden.
Ein „entweder oder“ (A XOR B
) bedeutet: (A AND NOT B) OR (NOT A AND B)
A | B | ||
---|---|---|---|
XOR |
FALSE |
TRUE |
NULL |
FALSE |
FALSE | TRUE | NULL |
TRUE |
TRUE | FALSE | NULL |
NULL |
NULL | NULL | NULL |
1 2 3 4 5 |
SELECT title FROM film WHERE (lower(title) LIKE '%dino%' AND lower(title) NOT LIKE '%academy%') OR (lower(title) NOT LIKE '%dino%' AND lower(title) LIKE '%academy%'); |
+------------------+ |title | +------------------+ |Center Dinosaur | |Dinosaur Secretary| |Victory Academy | +------------------+