Stel precieze vragen · oefening
Geef resultaatkolommen een naam met AS
De waarden in de shortlist zijn bruikbaar, maar de koppen gebruiken nog steeds opgeslagen kolomnamen zoals asset_tag en loan_days. Een compact rapport kan diezelfde resultaatkolommen tag, item en days noemen zonder de onderliggende catalogus te veranderen.
Vervang de SELECT-regel in search.sql door deze projectie over meerdere regels:
SELECT
asset_tag AS tag,
name AS item,
loan_days AS days
Behoud de bestaande FROM, het filter, de volledige volgorde en de limiet. Druk op Run en bekijk de koppen:
Columns: tag | item | days
TL-100 | Cordless drill | 7
EV-101 | Folding table | 7
AS geeft een resultaatkolom een alias, een andere naam die voor dit antwoord wordt gebruikt. asset_tag AS tag leest nog steeds waarden uit de opgeslagen kolom asset_tag. Het vraagt SQLite alleen om die positie in het resultaat tag te noemen.
De opgeslagen tabel heeft geen andere naam gekregen. Een andere query kan nog steeds asset_tag, name en loan_days opvragen, en latere clausules in deze query verwijzen nog steeds naar de onderliggende gegevens van het voorwerp. Je geeft het antwoord vorm voor de lezer, in plaats van de database opnieuw te ontwerpen.
Zie de projectie als een kleine overdracht. SQLite leest asset_tag uit elke gekozen rij en geeft die waarde vervolgens aan het resultaat door onder de kop tag. De opgeslagen waarde blijft gelijk en dezelfde rij bevat nog steeds zijn oorspronkelijke waarden voor name en loan_days.
Je hebt ook category uit het resultaat verwijderd. De WHERE-clausule mag een kolom gebruiken zonder die te tonen, net zoals de sortering id mag gebruiken zonder die te tonen. Filteren, sorteren en resultaatkolommen kiezen zijn samenhangende onderdelen van één query, maar elk heeft zijn eigen taak.
SQLite accepteert een alias ook zonder het optionele woord AS, zoals asset_tag tag. Het is zinvol om de getoonde versie eerst te lezen, omdat AS de naamswijziging zichtbaar maakt. Submit accepteert beide schrijfwijzen wanneer de koppen en waarden kloppen.
Schrijf 'tag', 'item' en 'days' niet als resultaatwaarden tussen aanhalingstekens. Dan zouden die woorden in de rijen worden herhaald, in plaats van kolommen met catalogusgegevens een naam te geven. Controleer na Run de regel Columns: om het onderscheid te zien.
Je shortlist met twee rijen presenteert nu precies drie bruikbare velden onder leesbare namen, terwijl het oorspronkelijke tabelontwerp intact blijft.
Opdracht
Verander het resultaat in search.sql in drie kolommen met de koppen tag, item en days, waarbij je asset_tag, name en loan_days in die volgorde gebruikt.
Behoud het bestaande filter, de sortering en LIMIT 2. Voer daarna de query uit en stuur hem in.