Bygg en databas med SQL
Du skall bygga upp en databas från grunden med hjälp av SQL i databasen SQLite. Du fyller databasen med innehåll och skriver SELECT för att få ut rapporter.
#Förkunskaper
Du har grundläggande kunskap om databasen SQLite och SQL.
#Introduktion och förberedelse
Du skall jobba i terminalklienten sqlite3
eller så kan du välja en annan klient om du vill.
Du skall skapa en databas med “gula postit-lappar”, en “ToDo”-databas. Du skall ha en tabell och varje rad i tabellen är en “postit-lapp” som anger en aktivitet som skall utföras.
#Utskrifter från sqlite3
När du vill ha fina rapporter i kommandoradsklienten så kan du sätta på tabellutskrift med rubriker.
.headers ON .mode column
#Krav
Utför följande krav.
Spara alla filer i katalogen
me/sqlite
.Spara databasen som
db.sqlite
.När du skriver SQL så kan du använda kommentarer för att dokumentera och visa vad du gör.
All SQL DDL skall sparas i
ddl.sql
. Här lägger du all SQL-kod som kan användas för att återskapa databasens schema (tabeller).Skapa en tabell för dina “ToDo”-lappar. Välj vilket namn du vill ha på tabellen. Tabellen skall innehålla minst följande kolumner och du skall välja en relevant datatyp.
- En id som primärnyckel som räknas upp för varje ny rad.
- Titel på aktiviteten.
- Beskrivning av aktiviteten.
- Tid för start av aktiviteten.
- Tid för slut av aktiviteten.
- Prioritering av aktiviteten.
I filen
insert.sql
lägger du INSERT-satser som fyller tabellen med innehåll. Du skall ha minst 7 aktiviter i tabellen. Lägg in data så att det blir lätt att testa och prova din databas.Du skall nu kunna återskapa databasen genom att först köra alla kommandon i
ddl.sql
följt avinsert.sql
. Du skall också kunna återfylla databasen genom att enbart köra fileninsert.sql
. Provkör så att återställningen fungerar.I filen
dml.sql
lägger du all SQL som är relaterad till dina rapporter.Skapa en rapport (SELECT) som visar alla dina aktiviteter.
Skapa en rapport (SELECT) som visar de aktiviteter som matchar delar av en söksträng (LIKE). Sök i titel, description och prioritet.
Skapa en rapport som visar titel och prioritering på aktiviteter, sorterat per prioritet så att den viktigaste kommer först.
Skapa en rapport som visar titel och aktivitens start, slut och längd. Längden på en aktivitet kan du beräkna med inbyggda funktioner för datum och tid. Sortera per längd i sjunkande ordning.
Visa att du kan göra en UPDATE-sats genom att ändra prioriteringen för en av dina aktiviteter. Spara koden tillsammans med en kommentar i
dml.sql
.Visa att du kan göra en DELETE-sats genom att radera alla aktiviteter som har lägst/ingen prioritering. Spara koden tillsammans med en kommentar i
dml.sql
.Avsluta med att återskapa databasen med
ddl.sql
ochinsert.sql
.
#Redovisning
Besvara följande frågor i din redovisningstext.
- Berätta hur det gick att lösa uppgiften, var något extra svårt, lurigt, krångligt eller flöt det på smidigt?
- Är det något som du är extra nöjd med i ditt resultat från uppgifterna?
#Publicera
Avsluta uppgiften så här.
Testa ditt resultat så att det passera de automatiska testerna med
dbwebb test sqlite
.När du är klar kan du publicera resultatet med
dbwebb publish sqlite
.
#Revision history
- 2021-09-30: (B, mos) Felstavade filnamn, skall ha ändelse .sql.
- 2021-09-23: (A, mos) Första utgåvan.