0%

Kapitel 3 · Übung

Präzise Fragen stellen

Mehrere Spalten auswählen

Der Verleihkatalog kann mit SELECT name FROM items; bereits die Frage „Wie heißen die Gegenstände?“ beantworten. Ein nützliches Suchergebnis braucht meist mehr Kontext. Wer Projector sieht, braucht möglicherweise auch das Inventarkennzeichen, die Kategorie und die übliche Leihdauer, um zu entscheiden, ob das der richtige Gegenstand ist.

Öffne search.sql. Behalte FROM items bei, ersetze aber den einzelnen Namen hinter SELECT durch diese vier Namen:

SELECT asset_tag, name, category, loan_days
FROM items;

Die Kommas trennen die angeforderten Spalten. Ihre Reihenfolge von links nach rechts ist wichtig, weil SQLite dieselbe Reihenfolge im Ergebnis verwendet. Hier kommt zuerst das Kennzeichen, danach der Name des Gegenstands, die Kategorie und die Leihdauer.

Klicke auf Run. Die ersten Zeilen sollten so aussehen:

== search.sql ==
Columns: asset_tag | name | category | loan_days
EV-101 | Folding table | events | 7

Das Projekt enthält auch run_queries.py. Du musst diese Datei nicht bearbeiten. Jedes Mal, wenn du auf Run klickst, erstellt sie einen neuen Katalog mit sechs Gegenständen, führt die vorhandenen Übungsdateien aus und gibt SQLites Antworten aus. Die Datenbank verschwindet nach dem Durchlauf, während deine SQL-Dateien im Projekt bleiben.

Dieser konkrete Katalog gibt alle sechs Gegenstände in ID-Reihenfolge aus, aber deine Abfrage hat noch keine Reihenfolge angefordert. Prüfe vorerst die Überschriften und Werte, statt die sichtbare Zeilenfolge als Zusage zu betrachten.

Wenn du auf Submit klickst, läuft deine Abfrage mit einem anderen Katalog. Sie soll jede gespeicherte Zeile lesen, statt die sechs hier sichtbaren Antworten ausdrücklich aufzuschreiben. Sie muss außerdem die vier benannten Spalten anfordern, statt * zu verwenden, denn das Ergebnis bewusst auszuwählen ist die Fähigkeit, die du übst.

Wenn du zu den Ausgangsdateien zurückkehren möchtest, verwende Reset project. Dadurch wird run_queries.py wiederhergestellt; beim Zurückkehren hierher wird die anfängliche search.sql ergänzt, falls sie fehlt.

Du hast mit einem einzelnen Namen angefangen. Dein neues Ergebnis hält jeden Namen neben den Angaben, die ihn nützlich machen, und du hast genau entschieden, wie diese Angaben angeordnet sind.

Aufgabe

Gib in search.sql die Spalten asset_tag, name, category und loan_days aus items in dieser Reihenfolge zurück. Behalte jeden gespeicherten Gegenstand im Ergebnis.

Führe die Abfrage aus und prüfe die vier Überschriften. Reiche sie dann zur Prüfung mit einem anderen Katalog ein.