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 | +------------------+
