Dies ist eine alte Version des Dokuments!


LU02 - Daten mit SQL abfragen

Nach dieser Lerneinheit können Sie:

  • Einfache Abfragen: Ich kann mit dem SQL-Befehl SELECT alle Spalten oder nur bestimmte Spalten aus einer Tabelle anzeigen.
  • Sortieren von Daten: Ich kann mit ORDER BY die Ergebnisse sortieren (aufsteigend oder absteigend).
  • Filtern mit Bedingungen: Ich kann mit WHERE Daten filtern – sowohl nach Zahlen als auch nach Text, inklusive der richtigen Anführungszeichen bei Textwerten.
  • Mehrere Bedingungen kombinieren: Ich kann mit AND, OR und NOT mehrere Bedingungen verknüpfen.
  • Richtig starten: Ich weiss, dass ich in WebStorm zuerst das richtige Schema auswählen muss, bevor ich Abfragen mache.

Die Datenbanksprache SQL (Structured Query Language) basiert auf der relationalen Algebra. Es handelt sich um eine Datenbanksprache zur Erstellung von Datenbankstrukturen in relationalen Datenbanken sowie zum Bearbeiten und Abfragen der darin gespeicherten Datenbestände. Ihre Syntax ist vergleichsweise einfach und stark an die englische Sprache angelehnt.

SQL dient zur:

  • Abfrage von Daten
  • Auswertung von Daten
  • Verwaltung von Daten
  • Programmierung innerhalb von Datenbanken

Im Begriff SQL steckt das englische Wort query (= Abfrage). Mit dem Befehl

SELECT

können Daten abgefragt werden. Weitere wichtige Befehle sind:

  • INSERT

    – Daten einfügen

  • UPDATE

    – Daten ändern

  • DELETE

    – Daten löschen

Diese vier Befehle bilden zusammen die sogenannten CRUD-Operationen: C = Create, R = Read (=Select), U = Update, D = Delete. Sie sind die Grundlage jeder Datenbankarbeit. INSERT, UPDATE und DELETE lernen wir in einer späteren Lerneinheit – heute geht es um Read, also SELECT.

Bevor Sie in der Query-Console von WebStorm eine Abfrage ausführen können, müssen Sie zuerst das Schema (also Ihre Datenbank, z.B. `film_collection`) auswählen. Sonst weiss MySQL nicht, in welcher Datenbank gesucht werden soll, und Sie erhalten eine Fehlermeldung.

Erst das Schema (=Datenbank) im Konsolenfenster auswählen, dann können wir SQL-Befehle schreiben und ausführen.

Das SELECT-Statement ist das am häufigsten verwendete SQL-Statement. Mit

SELECT

können Daten in verschiedenen Varianten ausgegeben werden:

  • alle Spalten
  • bestimmte Spalten
  • mit Filterbedingungen
  • sortiert

 Platzhalter: Aufbau eines SELECT-Statements – SELECT (Spalten), FROM (Tabelle), WHERE (Bedingung), ORDER BY (Sortierung) farblich hervorgehoben

Die einfachste Abfrageform ist:

SELECT * FROM imdb_top_1000;

Die FROM-Anweisung sagt, in welcher Tabelle gesucht werden soll.

Dies gibt alle Spalten und alle Zeilen der Tabelle zurück.

Beispielauszug (die tatsächliche Tabelle hat noch mehr Spalten):

Poster Filmtitel Jahr Genre Rating Kurzbeschreibung
mv5bm2mynjyxnmutytawni00mtyxlwjmnwytyzzlody3ztk3otflxkeyxkfqcgdeqxvynzkwmjq5nzm_._v1_uy98_cr1_0_67_98_al_.jpg The Godfather 1972 Crime, Drama 9.2 An organized crime dynasty's aging patriarch transfers control of his clandestine empire to his reluctant son.
mv5bzjdkotu3mdktn2ixos00ogeylwfmmjkty2fimmzknwiyodzixkeyxkfqcgdeqxvymtmxodk2otu_._v1_ux67_cr0_0_67_98_al_.jpg Interstellar 2014 Adventure, Drama, Sci-Fi 8.6 A team of explorers travel through a wormhole in space in an attempt to ensure humanity's survival.
mv5bmtuxmzqynja5mf5bml5banbnxkftztywotu2nty3._v1_ux67_cr0_0_67_98_al_.jpg The Green Mile 1999 Crime, Drama, Fantasy 8.6 The lives of guards on Death Row are affected by one of their charges: a black man accused of child murder and rape, yet who has a mysterious gift.
mv5bota5ndzlzgutmjaxos00ytrkltkwymmtywq0nwewzdzinjezxkeyxkfqcgdeqxvymtmxodk2otu_._v1_ux67_cr0_0_67_98_al_.jpg Whiplash 2014 Drama, Music 8.5 A promising young drummer enrolls at a cut-throat music conservatory where his dreams of greatness are mentored by a strict instructor.

Wenn nur bestimmte Daten benötigt werden, empfiehlt es sich, die Spalten explizit anzugeben. Die Spalten werden mit Kommas (,) getrennt:

SELECT Series_Title, Released_Year, IMDB_Rating
FROM imdb_top_1000;

Beispielauszug:

Filmtitel Jahr Bewertung
The Godfather 1972 9.2
Interstellar 2014 8.6
The Green Mile 1999 8.6
Whiplash 2014 8.5

Mit ORDER BY können Ergebnisse sortiert werden.

-- Die Filme nach Erscheinungsjahr sortieren
SELECT Series_Title, Released_Year, IMDB_Rating
FROM imdb_top_1000
ORDER BY Released_Year ASC;

Mit ASC (engl. ascending = aufsteigend) oder DESC (engl. descending = absteigend) kann die Sortierung bestimmt werden.

Die besten Filme zuerst:

SELECT Series_Title, Released_Year, IMDB_Rating
FROM imdb_top_1000
ORDER BY IMDB_Rating DESC;

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 ihrer 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/n → z.B. FROM imdb_top_1000)
  • Unter welcher/n Bedingung/en? (welche Feldwerte → z.B. WHERE IMDB_Rating > 8.5)
-- Alle Filme mit Bewertung über 8.5
SELECT Series_Title, IMDB_Rating
FROM imdb_top_1000
WHERE IMDB_Rating > 8.5;

Ergebnis (Auszug):

Filmtitel Bewertung
The Godfather 9.2
The Green Mile 8.6
Interstellar 8.6

Zahlen vs. Text in der WHERE-Klausel: Zahlenwerte (wie 8.5) schreibt man ohne Anführungszeichen. Text (sogenannte Strings) muss dagegen immer in einfachen Anführungszeichen (''' ''') stehen:

WHERE IMDB_Rating > 8.5          -- Zahl: keine Anführungszeichen
WHERE Director = 'Christopher Nolan'   -- Text: einfache Anführungszeichen

Vergessen Sie die Anführungszeichen bei Text, meldet MySQL einen Fehler.

AND, OR, NOT

→ verbinden mehrere Bedingungen.

Filme von Regisseuren Christopher Nolan oder Francis Ford Coppola:

SELECT Series_Title, Director
FROM imdb_top_1000
WHERE Director = 'Christopher Nolan' OR Director = 'Francis Ford Coppola';

Mit AND kann man Bedingungen kombinieren, z.B.:

-- Alle Drama-Filme von Christopher Nolan
SELECT Series_Title, Director, Genre
FROM imdb_top_1000
WHERE Director = 'Christopher Nolan' AND Genre = 'Drama';

Mit NOT kehrt man eine Bedingung um:

-- Alle Filme, die NICHT von Christopher Nolan sind
SELECT Series_Title, Director
FROM imdb_top_1000
WHERE NOT Director = 'Christopher Nolan';
  • SELECT

    – bestimmt die Spalten

  • FROM

    – bestimmt die Tabelle

  • WHERE

    – filtert die Zeilen (Text in ''' ''', Zahlen ohne)

  • ORDER BY

    – sortiert die Ergebnisse

  • AND / OR / NOT

    – kombiniert mehrere Bedingungen

Mit diesen Befehlen sind die wichtigsten Grundlagen für Abfragen in relationalen Datenbanken gelegt.


Guido Koch

  • de/modul/m290_guko/learningunits/lu02/theorie/a_sql_basics.1787520349.txt.gz
  • Zuletzt geändert: 2026/08/23 23:25
  • von gkoch