SQL-Abfrage-Werkstatt
Über diese App
WHERE als Sieb: Die Werkzeug-Tabelle aus der Vorlesung wird Zeile für Zeile geprüft, Treffer wandern ins Ergebnis, der Rest fällt durch. Die Anführungszeichen-Falle tag = A zeigt „no such column: A“, dazu price/weight Zeile für Zeile gerechnet, as und order by … desc mit sichtbarem Platztausch.
Mit Erklärmodus: Ein KI-Tutor führt dich durch die App, zeigt in der Szene, worauf es ankommt, und beantwortet deine Fragen.
Was eine SQL-Abfrage tut
Eine Abfrage beschreibt ihr Ergebnis. FROM liefert die Zeilen einer Tabelle, WHERE prüft jede Zeile einzeln gegen eine Bedingung, SELECT wählt und berechnet Spalten, ORDER BY ordnet das Ergebnis. Die Tabelle selbst bleibt dabei unverändert. Text steht in einfachen Anführungszeichen: Ohne sie liest SQL das Wort als Spaltennamen, und tag = A sucht eine Spalte A.
Was die App zeigt
Oben steht die Abfrage als Code-Zeile, darunter die Tabelle tools aus der Vorlesung mit fünf Werkzeugen (name, weight, price, tag). Daneben vergleicht eine Prüfspalte Zeile für Zeile, etwa 540 >= 500, und setzt Haken oder Kreuz. Treffer gleiten ins Ergebnis, der Rest sinkt weg. SELECT rechnet price/weight Zeile für Zeile aus (320/109 = 2.936) und wirft die übrigen Spalten weg, as benennt die Spalte um, und beim Sortieren tauschen die Zeilen sichtbar ihre Plätze.
Selbst ausprobieren
Wähle eine vorbereitete Abfrage, ändere Vergleichsoperator und Schwelle und verbinde Bedingungen mit and oder or. Schreib tag = A ohne Anführungszeichen und sieh die Meldung no such column: A; ein Gedankenexperiment zeigt, was mit einer erfundenen Spalte A verglichen würde. Schalte den Spaltentyp von REAL auf INTEGER und sieh, wie SQLite ganzzahlig teilt.
Häufige Fragen
- Was macht WHERE in SQL?
- WHERE prüft jede Zeile der Tabelle einzeln gegen eine Bedingung. Nur Zeilen, für die die Bedingung wahr ist, kommen ins Ergebnis. Die Tabelle selbst ändert sich nicht.
- Warum meldet SQL „no such column“, wenn ich tag = A schreibe?
- Ohne Anführungszeichen ist A kein Text, sondern ein Name. SQL sucht deshalb eine Spalte A, findet keine und bricht mit no such column: A ab. Richtig ist tag = 'A' mit einfachen Anführungszeichen.
- Warum ergibt 320/109 in SQLite 2?
- Sind beide Spalten vom Typ INTEGER, teilt SQLite ganzzahlig und schneidet die Nachkommastellen ab. Mit price * 1.0 / weight oder mit REAL-Spalten entsteht 2.936.
- Was kann ich in der App ausprobieren?
- Vorbereitete Abfragen abspielen, Vergleichsoperator und Schwelle ändern, Bedingungen mit and und or verbinden, die Anführungszeichen-Falle mit Gedankenexperiment ansehen, berechnete Spalten umbenennen, auf- und absteigend sortieren und den Spaltentyp zwischen REAL und INTEGER wechseln.
Fach: Informatik
Mehr aus Informatik
- Ackermann-Funktion
- Aufzug-Simulator
- Binär-Werkstatt
- Binäre vs. lineare Suche
- Collatz-Problem (3n+1)
- CPU-Innenleben
- Das Innere austauschen
- Ein Frame in 16 Millisekunden — wie eine Game-Engine ein Bild rechnet (3D)
Eine VisuApp von heyprof: interaktiv, kostenlos im Browser, ohne Anmeldung. Was ist eine VisuApp? · Alle Apps