0%

Präzise Fragen stellen · Übung

Ergebnisspalten mit AS benennen

Die Werte der engeren Auswahl sind nützlich, aber ihre Überschriften verwenden noch gespeicherte Spaltennamen wie asset_tag und loan_days. Ein kompakter Bericht kann dieselben Ergebnisspalten tag, item und days nennen, ohne den zugrunde liegenden Katalog zu ändern.

Ersetze die SELECT-Zeile in search.sql durch diese mehrzeilige Projektion:

SELECT
    asset_tag AS tag,
    name AS item,
    loan_days AS days

Behalte das vorhandene FROM, den Filter, die vollständige Sortierung und das Limit bei. Klicke auf Run und prüfe die Überschriften:

Columns: tag | item | days
TL-100 | Cordless drill | 7
EV-101 | Folding table | 7

AS gibt einer Ergebnisspalte einen Alias, also einen anderen Namen, der für diese Antwort verwendet wird. asset_tag AS tag liest weiterhin Werte aus der gespeicherten Spalte asset_tag. Es bittet SQLite lediglich, diese Ergebnisposition mit tag zu beschriften.

Die gespeicherte Tabelle wurde nicht umbenannt. Eine andere Abfrage kann weiterhin asset_tag, name und loan_days anfordern, und spätere Klauseln in dieser Abfrage verweisen weiterhin auf die zugrunde liegenden Gegenstandsdaten. Du gestaltest die Antwort für ihre Lesenden, statt die Datenbank neu zu entwerfen.

Stell dir die Projektion als kleine Übergabe vor. SQLite liest asset_tag aus jeder ausgewählten Zeile und übergibt diesen Wert unter der Überschrift tag an das Ergebnis. Der gespeicherte Wert bleibt unverändert, und dieselbe Zeile trägt weiterhin ihre ursprünglichen Werte für name und loan_days.

Du hast auch category aus dem Ergebnis entfernt. Die WHERE-Klausel darf eine Spalte verwenden, ohne sie anzuzeigen, genauso wie die Sortierung id verwenden darf, ohne es anzuzeigen. Filtern, Sortieren und das Auswählen von Ergebnisspalten gehören zu derselben Abfrage, haben aber jeweils eine eigene Aufgabe.

SQLite akzeptiert auch einen Alias ohne das optionale Wort AS, zum Beispiel asset_tag tag. Es lohnt sich, zuerst die hier gezeigte Variante zu lesen, weil AS die Umbenennung sichtbar macht. Submit akzeptiert beide Schreibweisen, wenn Überschriften und Werte stimmen.

Schreibe 'tag', 'item' und 'days' nicht als Ergebniswerte in Anführungszeichen. Das würde diese Wörter in den Zeilen wiederholen, statt Spalten mit Katalogdaten zu beschriften. Prüfe nach Run die Zeile Columns:, um den Unterschied zu sehen.

Deine Auswahl mit zwei Zeilen stellt jetzt genau drei nützliche Felder unter gut lesbaren Namen dar, während der ursprüngliche Tabellenentwurf unverändert bleibt.

Aufgabe

Ändere das Ergebnis in search.sql zu drei Spalten mit den Überschriften tag, item und days. Verwende dafür asset_tag, name und loan_days in dieser Reihenfolge.

Behalte den vorhandenen Filter, die Sortierung und LIMIT 2 bei, führe die Abfrage aus und reiche sie ein.