Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m290_guko:learningunits:lu02:theorie:b_sql_select [2025/08/27 17:31] – gkoch | modul:m290_guko:learningunits:lu02:theorie:b_sql_select [2025/08/31 11:27] (aktuell) – gkoch | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
===== Daten abfragen ===== | ===== Daten abfragen ===== | ||
Das // | Das // | ||
- | Mit <WRAP center box 80%>< | + | Mit <WRAP center box round 80%>< |
* alle Spalten | * alle Spalten | ||
* bestimmte Spalten | * bestimmte Spalten | ||
Zeile 14: | Zeile 14: | ||
Die einfachste Abfrageform ist: | Die einfachste Abfrageform ist: | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
SELECT * FROM imdb_top_1000; | SELECT * FROM imdb_top_1000; | ||
</ | </ | ||
Zeile 32: | Zeile 32: | ||
===== Bestimmte Spalten ausgeben ===== | ===== Bestimmte Spalten ausgeben ===== | ||
- | Wenn nur bestimmte Daten benötigt werden, empfiehlt es sich, die Spalten **explizit** anzugeben: | + | Wenn nur bestimmte Daten benötigt werden, empfiehlt es sich, die Spalten **explizit** anzugeben. Die Spalten werden mit **Kommas (,)** getrennt: |
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
SELECT Series_Title, | SELECT Series_Title, | ||
FROM imdb_top_1000; | FROM imdb_top_1000; | ||
Zeile 41: | Zeile 41: | ||
Beispielauszug: | Beispielauszug: | ||
- | <WRAP center box 80%> | + | <WRAP center box round 80%> |
^ Filmtitel ^ Jahr ^ Bewertung ^ | ^ Filmtitel ^ Jahr ^ Bewertung ^ | ||
| The Godfather | 1972 | 9.2 | | | The Godfather | 1972 | 9.2 | | ||
Zeile 53: | Zeile 53: | ||
Mit //ORDER BY// können Ergebnisse sortiert werden. | Mit //ORDER BY// können Ergebnisse sortiert werden. | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
-- Die Filme nach Erscheinungsjahr sortieren | -- Die Filme nach Erscheinungsjahr sortieren | ||
SELECT Series_Title, | SELECT Series_Title, | ||
Zeile 60: | Zeile 60: | ||
</ | </ | ||
- | Oder umgekehrt, | + | Mit //ASC// (engl. ascending = Aufsteigend) oder //DESC// (engl. descending = Absteigend) kann die Sortierung bestimmt werden. |
- | <WRAP center box 80%>< | + | Die besten Filme zuerst: |
+ | |||
+ | <WRAP center box round 80%>< | ||
SELECT Series_Title, | SELECT Series_Title, | ||
FROM imdb_top_1000 | FROM imdb_top_1000 | ||
Zeile 70: | Zeile 72: | ||
===== Abfragen filtern ===== | ===== Abfragen filtern ===== | ||
- | Nicht immer sind alle Daten interessant – mit //WHERE// können Bedingungen definiert werden. | + | Nicht immer sind alle Daten interessant – **mit //WHERE// können Bedingungen definiert** werden. |
+ | Während die bisher behandelten //SELECT//- und // | ||
+ | Wegen seiner wichtigen Bedeutung zur Einschränkung (Restriktion) einer Tabelle auf bestimmte Zeilen kommt die WHERE-Anweisung in der Praxis trotzdem in fast allen SELECT-Befehlen vor. Die Struktur einer Abfrage mit Bedingung lautet in Worten: | ||
+ | |||
+ | * **Was?** (welche **Spalten** werden ausgewählt -> z.B. //SELECT Series_Title// | ||
+ | * **Woher?** (aus welcher/n **Tabelle/ | ||
+ | * Unter **welcher/n Bedingung/ | ||
+ | \\ | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
-- Alle Filme mit Bewertung über 8.5 | -- Alle Filme mit Bewertung über 8.5 | ||
SELECT Series_Title, | SELECT Series_Title, | ||
Zeile 80: | Zeile 89: | ||
Ergebnis (Auszug): | Ergebnis (Auszug): | ||
- | <WRAP center box 80%> | + | <WRAP center box round 80%> |
^ Filmtitel ^ Bewertung ^ | ^ Filmtitel ^ Bewertung ^ | ||
| The Godfather | 9.2 | | | The Godfather | 9.2 | | ||
Zeile 95: | Zeile 104: | ||
Beispiel: nur Filme anzeigen, die **vor 1970** erschienen sind. | Beispiel: nur Filme anzeigen, die **vor 1970** erschienen sind. | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
SELECT Series_Title, | SELECT Series_Title, | ||
FROM imdb_top_1000 | FROM imdb_top_1000 | ||
Zeile 104: | Zeile 113: | ||
==== Logische Verknüpfungen ==== | ==== Logische Verknüpfungen ==== | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
→ verbinden mehrere Bedingungen. | → verbinden mehrere Bedingungen. | ||
Beispiel: Filme von Regisseuren // | Beispiel: Filme von Regisseuren // | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
SELECT Series_Title, | SELECT Series_Title, | ||
FROM imdb_top_1000 | FROM imdb_top_1000 | ||
Zeile 115: | Zeile 124: | ||
Mit //AND// kann man Bedingungen kombinieren, | Mit //AND// kann man Bedingungen kombinieren, | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
-- Alle Sci-Fi-Filme von Christopher Nolan | -- Alle Sci-Fi-Filme von Christopher Nolan | ||
SELECT Series_Title, | SELECT Series_Title, | ||
Zeile 123: | Zeile 132: | ||
==== IN-Operator ==== | ==== IN-Operator ==== | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
→ vereinfacht Abfragen mit vielen Bedingungen. | → vereinfacht Abfragen mit vielen Bedingungen. | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
-- Filme von Nolan oder Coppola | -- Filme von Nolan oder Coppola | ||
SELECT Series_Title, | SELECT Series_Title, | ||
Zeile 134: | Zeile 143: | ||
Das Gegenteil mit //NOT IN//: | Das Gegenteil mit //NOT IN//: | ||
- | <WRAP center box 80%>< | + | <WRAP center box round 80%>< |
-- Alle Filme, die NICHT von Nolan oder Coppola sind | -- Alle Filme, die NICHT von Nolan oder Coppola sind | ||
SELECT Series_Title, | SELECT Series_Title, |