0%

Wenn eine Datei nicht mehr reicht · Übung

Mit SELECT nach einer Spalte fragen

Angenommen, du möchtest nur sehen, welche Kategorien im Verleihkatalog vorkommen. Du brauchst weder die IDs noch die Namen der Gegenstände, also kannst du allein nach der Spalte category fragen:

SELECT category FROM items;

Führe diese Anfrage aus, und SQLite gibt eine Spalte zurück:

Columns: category
electronics
events
tools

Diese Anfrage ist eine SQL-Abfrage. Eine Abfrage bittet eine Datenbank um ein Ergebnis. SQL steht für Structured Query Language.

Lies die Abfrage von links nach rechts. SELECT category sagt, welche Spalte du zurückhaben möchtest. FROM items sagt, welche Tabelle die Zeilen liefern soll.

Nach den Gegenstandsnamen fragen

Der Editor hat query.sql geöffnet. Die Abfrage im Startcode fragt nach der id jedes Gegenstands. Ändere diesen einen Spaltennamen in name und klicke dann auf Run.

Achte auf dieses Ergebnis:

Columns: name
Cordless drill
Folding table
Projector

Du hast die Tabelle items nicht verändert. Du hast SQLite gebeten, eine Antwort mit einer Spalte und einer Ergebniszeile pro gespeichertem Gegenstand zusammenzustellen. Wenn zwei Gegenstände denselben Namen haben, erscheint dieser Name zweimal. Die Abfrage verlangt keine Reihenfolge der Zeilen, deshalb können dieselben Namen in einer anderen Reihenfolge erscheinen.

Wenn du deine Lösung einreichst, führt das Kurssystem deine Abfrage mit einem anderen Katalog aus, um sicherzustellen, dass du keine Abkürzungen nimmst. Falls du das noch nicht getan hast, ist jetzt ein guter Zeitpunkt, deine Lösung einzureichen!

Einige Details, auf die du achten solltest

SQL-Schlüsselwörter werden häufig großgeschrieben, damit sie sich von Tabellen- und Spaltennamen abheben. SQLite akzeptiert auch kleingeschriebene Schlüsselwörter. Das Semikolon markiert das Ende der Anweisung.

Beachte, dass der Editor dieser Website query.sql farbig hervorhebt, um den Text lesbarer zu machen, genauso wie er Python-Code farbig hervorheben kann.

Wenn ein Fehler erscheint, vergleiche die Spalten- und Tabellennamen deiner Abfrage mit dem Schema aus der vorherigen Lektion. Ändere eine Sache und führe die Abfrage erneut aus. Um die ursprünglichen Dateien wiederherzustellen, verwende Reset project in der Projektwerkzeugleiste.

Was bezeichnet in SELECT category FROM items; der Name hinter FROM?

Du hast deine erste SQL-Abfrage geschrieben und damit genau einen Teil des Katalogs abgerufen. Bisher hat Python die Datenbank im Hintergrund geöffnet. Jetzt schreibst du diese Zeile selbst.

Aufgabe

Öffne query.sql. Die Datei fragt derzeit nach der id jedes Gegenstands. Ändere sie so, dass SQLite nur die Spalte name aus items zurückgibt.

Führe die Abfrage aus und prüfe, ob du in jeder Zeile einen Namen siehst. Reiche sie dann ein. Wir probieren die Abfrage mit einem anderen Katalog aus. Lass deshalb SQLite die Namen lesen, statt das sichtbare Ergebnis selbst einzutippen.