---
# System prepended metadata

title: Övningar sqlite3-paketet

---

# Övningar sqlite3-paketet

### 1. 

Skapa en ny fil i din projektmapp som heter `school.db`. Öppna filen i Beekeeper och kör följande två queries för att skapa en tabell.

```sql
CREATE TABLE students (
  id INTEGER PRIMARY KEY,
  name TEXT,
  age INTEGER
);

INSERT INTO students (name, age) VALUES
('Anna', 17),
('Erik', 16),
('Sara', 18);
```

Skapa en ny js-fil där du skriver ett program som kopplar upp sig mot databasen, hämtar alla elever och skriver ut dem till konsolen.


### 2. 

Utgå från din kod i förra uppgiften och lägg till att ditt program gör följande.

1. Lägger till en ny elev med ditt namn och din ålder.
2. Hämtar den yngsta eleven och skriver ut dess namn till konsolen
3. Hämtar alla elever som är 17 år eller äldre.


### 3.

Fortsätt utöka ditt program genom att låta databasen användas i en express-server. Sätt upp express som vi har gjort tidigare och skapa två routes:

1. `GET /student` som skickar tillbaka alla elever i json-format
2. `POST /student?name=...&age=...` som lägger till en ny elev med namn och ålder angivet i query-strängen.

### 4. 
Skapa en ny databas med en tabell för användaruppgifter med: id, namn, email, lösenord, och adress. Lägg till några användare i tabellen.

Gör en query från node med sqlite3-paketet till databasen som motsvarar en “inloggning” utifrån email och lösenord dvs: kontrollera ettt givet lösenord mot det som lagras i databasen för den givna mailadressen. Skriv ut id och address för användaren till terminalen.

Testa att “injecta” SQL genom lösenordet:
* För att visa resultatet även utan rätt lösenord
* För att visa allas användaruppgifter
* För att ta bort en annan användare

Testa att använda prepared statements istället, för samma lösenord.
