Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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:27] gkochmodul:m290_guko:learningunits:lu02:theorie:b_sql_select [2025/08/31 11:27] (aktuell) gkoch
Zeile 4: Zeile 4:
 ===== Daten abfragen ===== ===== Daten abfragen =====
 Das //SELECT//-Statement ist das am häufigsten verwendete SQL-Statement.   Das //SELECT//-Statement ist das am häufigsten verwendete SQL-Statement.  
-Mit <WRAP center box 80%><code sql>SELECT</code></WRAP> können Daten in verschiedenen Varianten ausgegeben werden:  +Mit <WRAP center box round 80%><code sql>SELECT</code></WRAP> können Daten in verschiedenen Varianten ausgegeben werden:  
   * alle Spalten     * alle Spalten  
   * bestimmte Spalten     * bestimmte Spalten  
Zeile 14: Zeile 14:
 Die einfachste Abfrageform ist:   Die einfachste Abfrageform ist:  
  
-<WRAP center box 80%><code sql>+<WRAP center box round 80%><code sql>
 SELECT * FROM imdb_top_1000; SELECT * FROM imdb_top_1000;
 </code></WRAP> </code></WRAP>
 +
 +Die **FROM-Anweisung** sagt in welcher Tabelle gesucht werden soll. 
  
 Dies gibt **alle Spalten** und **alle Zeilen** der Tabelle zurück.   Dies gibt **alle Spalten** und **alle Zeilen** der Tabelle zurück.  
Zeile 30: 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:  
  
-<code sql>+<WRAP center box round 80%><code sql>
 SELECT Series_Title, Released_Year, IMDB_Rating SELECT Series_Title, Released_Year, IMDB_Rating
 FROM imdb_top_1000; FROM imdb_top_1000;
-</code>+</code></WRAP>
  
- 
-Die **FROM-Anweisung** sagt in welcher Tabelle gesucht werden soll.  
  
 Beispielauszug:   Beispielauszug:  
 +<WRAP center box round 80%>
 ^ Filmtitel ^ Jahr ^ Bewertung ^ ^ Filmtitel ^ Jahr ^ Bewertung ^
 | The Godfather | 1972 | 9.2 | | The Godfather | 1972 | 9.2 |
Zeile 47: Zeile 47:
 | The Green Mile | 1999 | 8.6 | | The Green Mile | 1999 | 8.6 |
 | Whiplash | 2014 | 8.5 | | Whiplash | 2014 | 8.5 |
 +</WRAP>
  
  
Zeile 52: Zeile 53:
 Mit //ORDER BY// können Ergebnisse sortiert werden.   Mit //ORDER BY// können Ergebnisse sortiert werden.  
  
-<code sql>+<WRAP center box round 80%><code sql>
 -- Die Filme nach Erscheinungsjahr sortieren -- Die Filme nach Erscheinungsjahr sortieren
 SELECT Series_Title, Released_Year, IMDB_Rating SELECT Series_Title, Released_Year, IMDB_Rating
 FROM imdb_top_1000 FROM imdb_top_1000
 ORDER BY Released_Year ASC; ORDER BY Released_Year ASC;
-</code>+</code></WRAP>
  
-Oder umgekehrt, die besten Filme zuerst:  +Mit //ASC// (engl. ascending = Aufsteigend) oder //DESC// (engl. descending = Absteigend) kann die Sortierung bestimmt werden.
  
-<code sql>+Die besten Filme zuerst:   
 + 
 +<WRAP center box round 80%><code sql>
 SELECT Series_Title, Released_Year, IMDB_Rating SELECT Series_Title, Released_Year, IMDB_Rating
 FROM imdb_top_1000 FROM imdb_top_1000
 ORDER BY IMDB_Rating DESC; ORDER BY IMDB_Rating DESC;
-</code>+</code></WRAP>
  
  
 ===== 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 //FROM//-Anweisungen in jedem //SELECT//-Befehl vorkommen müssen, ist die **WHERE-Anweisung optional**. 
 +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:
  
-<code sql>+  * **Was?** (welche **Spalten** werden ausgewählt -> z.B. //SELECT Series_Title//
 +  * **Woher?** (aus welcher/n **Tabelle/n** -> z.B. //FROM imbd_top_1000//
 +  * Unter **welcher/n Bedingung/en?** (welche **Feldwerte** -> z.B. //WHERE IMDB_Rating > 8.5//) 
 +\\ 
 + 
 +<WRAP center box round 80%><code sql>
 -- Alle Filme mit Bewertung über 8.5 -- Alle Filme mit Bewertung über 8.5
 SELECT Series_Title, IMDB_Rating SELECT Series_Title, IMDB_Rating
 FROM imdb_top_1000 FROM imdb_top_1000
 WHERE IMDB_Rating > 8.5; WHERE IMDB_Rating > 8.5;
-</code>+</code></WRAP>
  
 Ergebnis (Auszug):   Ergebnis (Auszug):  
 +<WRAP center box round 80%>
 ^ Filmtitel ^ Bewertung ^ ^ Filmtitel ^ Bewertung ^
 | The Godfather | 9.2 | | The Godfather | 9.2 |
 | The Green Mile | 8.6 | | The Green Mile | 8.6 |
 | Interstellar | 8.6 | | Interstellar | 8.6 |
 +</WRAP>
  
 ===== Operatoren ===== ===== Operatoren =====
Zeile 90: Zeile 100:
  
 ==== Vergleichsoperatoren ==== ==== Vergleichsoperatoren ====
-<code>= , < , > , <= , >= , <></code>  +<WRAP center box 80%><code>= , < , > , <= , >= , <></code></WRAP>
 → werden vor allem bei Zahlen verwendet.   → werden vor allem bei Zahlen verwendet.  
 Beispiel: nur Filme anzeigen, die **vor 1970** erschienen sind.   Beispiel: nur Filme anzeigen, die **vor 1970** erschienen sind.  
  
-<code sql>+<WRAP center box round 80%><code sql>
 SELECT Series_Title, Released_Year SELECT Series_Title, Released_Year
 FROM imdb_top_1000 FROM imdb_top_1000
 WHERE Released_Year < 1970; WHERE Released_Year < 1970;
-</code>+</code></WRAP>
  
  
 ==== Logische Verknüpfungen ==== ==== Logische Verknüpfungen ====
  
-<code>AND, OR, NOT</code>  +<WRAP center box round 80%><code>AND, OR, NOT</code></WRAP>
 → verbinden mehrere Bedingungen.   → verbinden mehrere Bedingungen.  
 Beispiel: Filme von Regisseuren //Christopher Nolan// **oder** //Francis Ford Coppola//:   Beispiel: Filme von Regisseuren //Christopher Nolan// **oder** //Francis Ford Coppola//:  
  
-<code sql>+<WRAP center box round 80%><code sql>
 SELECT Series_Title, Director SELECT Series_Title, Director
 FROM imdb_top_1000 FROM imdb_top_1000
 WHERE Director = 'Christopher Nolan' OR Director = 'Francis Ford Coppola'; WHERE Director = 'Christopher Nolan' OR Director = 'Francis Ford Coppola';
-</code>+</code></WRAP>
  
 Mit //AND// kann man Bedingungen kombinieren, z. B.:   Mit //AND// kann man Bedingungen kombinieren, z. B.:  
-<code sql>+<WRAP center box round 80%><code sql>
 -- Alle Sci-Fi-Filme von Christopher Nolan -- Alle Sci-Fi-Filme von Christopher Nolan
 SELECT Series_Title, Director, Genre SELECT Series_Title, Director, Genre
 FROM imdb_top_1000 FROM imdb_top_1000
 WHERE Director = 'Christopher Nolan' AND Genre = 'Drama'; WHERE Director = 'Christopher Nolan' AND Genre = 'Drama';
-</code>+</code></WRAP>
  
 ==== IN-Operator ==== ==== IN-Operator ====
-<code>IN, NOT IN</code>  +<WRAP center box round 80%><code>IN, NOT IN</code></WRAP>  
 → vereinfacht Abfragen mit vielen Bedingungen.   → vereinfacht Abfragen mit vielen Bedingungen.  
  
-<code sql>+<WRAP center box round 80%><code sql>
 -- Filme von Nolan oder Coppola -- Filme von Nolan oder Coppola
 SELECT Series_Title, Director SELECT Series_Title, Director
 FROM imdb_top_1000 FROM imdb_top_1000
 WHERE Director IN ('Christopher Nolan', 'Francis Ford Coppola'); WHERE Director IN ('Christopher Nolan', 'Francis Ford Coppola');
-</code>+</code></WRAP>
  
 Das Gegenteil mit //NOT IN//:   Das Gegenteil mit //NOT IN//:  
-<code sql>+<WRAP center box round 80%><code sql>
 -- Alle Filme, die NICHT von Nolan oder Coppola sind -- Alle Filme, die NICHT von Nolan oder Coppola sind
 SELECT Series_Title, Director SELECT Series_Title, Director
 FROM imdb_top_1000 FROM imdb_top_1000
 WHERE Director NOT IN ('Christopher Nolan', 'Francis Ford Coppola'); WHERE Director NOT IN ('Christopher Nolan', 'Francis Ford Coppola');
-</code>+</code></WRAP>
  
  
  • modul/m290_guko/learningunits/lu02/theorie/b_sql_select.1756308471.txt.gz
  • Zuletzt geändert: 2025/08/27 17:27
  • von gkoch