# 🚧 Databas - Introduktion till SQL databaser

__ icon: 💽 author: krm created: 2024-02-12 __

Vi ska här lära oss att använda SQL. SQL behöver vi för att kunna hantera data
på en webbsajt. Du ska göra en egen databas. Fyll den med information som du
tycker är viktigt.

# Innehåll

Genomgångarna och föreläsningarna.

- 📄
  [Guide till databaser](https://docs.google.com/document/d/1TfDodKD673sy9sNbrUutvx5pcgI-LrQh8hjjAscrxeg/edit?usp=sharing)
  - Observera att vi inte kommer använda SQLite, men du kan öva dig med det om
    du vill.
  - Användbar SQL-kod finns under "Olika kommandon för SQL"
- 🔗 [Du hittar guiderna som ska använda här](https://htsit.se/t)
- 🔗
  [Du har ett exempel projekt som kallas mimer-flags](https://gitlab.com/krmit/mimer-flags.git)

## Tänk på

- Att skapa alla filer beskriva under bedömning.
- Om du är intresserade av de högre betyg läs igenom alla bedömningar först så
  kan du arbeta mer effektivt.

## Guider och exempel

För exempel gällande skapa tabeller och liknade hänvisar vi till Guiden ovan och
till vårt demo mimer-flags. Exemplena nedan kommer bara göras om det
efterfrågas.

- 🦉 [Installera en databas](../t/install-mariadb.sv.html)
- 🚧🔨 [Database](../e/database/examples.sv.html)
- 🚧🔨 [Tabell](../e/table/examples.sv.html)
- 🚧🔨 [Sökningar](../e/query/examples.sv.html)
- 🚧🔨 [Samband](../e/relationship/examples.sv.html)
- 🦉 [Anslut till en databas från ditt program](../t/conect-to-a-database.html)
- 🦉
  [Visa resultat från en sökning i en databas](../t/show-information-from-a-database.sv.html)
- 🦉 [Webbformulär](../t/create-a-web-form.sv.html)
- 🦉
  [Spara data från ett formulär i en databas](../t/store-data-from-a-form.sv.html)

# Bedömning

Bedömingen ges från ett helhetsperspektiv utifrån punkterna nedan. Kommentera
kod om det är nödvändigt och se till att den är väl strukturerad.

Följande filer nedan ska finnas i ett mapp med ditt namn eller alias och lämnas
in på USB. Folder ska inte vara komprimerad utan lämans in som den är.

- _database.md_ En beskrivning av din databas.
- _er-diagram_ Behövs bara för A. Filformatet ska vara dot eller png och visa
  ett ER diagram över databasen.
- _install.sql_ Installer alla tabeller för databasen.
- _demo.sql_ Demo över data som ska vara i databasen.
- _question.sql_ Sökningar som gjorts i database.

# Uppgift

Du ska görra en databas som kan vara grund till en sajt. Du ahr stor frihete att
själv utforma denna databas, men tänk på att det ska vara lätt att lägga till
data och söka i den. Det blir också roligare om du tycker infromationen som
finns i den är intressant och information ska gärna vara gärna unik.

## Förslag

Några förslag finns nedan. Fundera gäran ut egna, men tänk på att det gärna ska
finnas instressant data att dela.

- Karaktärer i din favorit manga, spel, film, bok eller likande. Gäran med ett
  unik samband utifrån kontexkten av dessa historier.
- Statestik för ditt favorit lag eller spelare.
- Information för något som är viktig för dig. Till exempel hur du tränar på ett
  gym eller hur mågna matte tal du löst.
- Grunden för något typ av spel. Mimer-flag är ett exempel på detta.

## Nivå E

- Se till att du lämnat in en folder enlig beskrivning ovan.

### Steg

1. Fundera på en databas som du vill göra. Skriv en beskrivning av databasen och
   all data som den ska innehålla i din _database.md_ fil.
2. Installera en databas, se guiden ovan.
3. Gör tabell/tabeller i en sql databas utifrån din beskrivning.
4. Kopiera in all sql kod till _install.sgl_.
5. Gör minst ett par exempeldata per tabell som du har med i databasen.
6. Kopiera in all sql kod till _demo.sgl_.
7. Gör minst en sökning i din tabell.
8. Kopiera in all sql kod till _question.sgl_.

## Nivå C

- Alla krav och steg på E nivå ska vara uppfyllda.
- Din kod ska vara lätt att förstå och se snygg ut.
- Din beskrivning ovan ska vara utförlig.
- Se till att skapa en bild som illustrerar din datamodell. Dataformatet ska
  vara png.
- Din databas måste bestå av minst två tabeller som innehåller ett samband.
- Gör tabell i en sql databas utifrån värdena ovan. Se också till att deklarera
  nycklar i dina tabeller.
- Varje tabell måste innehålla minst 5 rader och vara i överensstämmelse med din
  datamodell.
- Totalt ska det vara minst 15 rader i din databas.
- Gör flera sökningar som är användbara.

## Nivå A

- Gör som för nivå C.
- Allt ska fungera enligt din övergripande vison för programmet.
- Du ska arbeta snabbt och noggrant, t.ex. lämnat in till första deadline.
- Din beskrivning ska vara nyanserad. Se till att bifoga ett ER-diagram enligt
  ovan.
- Din databas måste bestå fler tabeller med minst två samband.
- Varje tabell måste bestå av realistiska värden och vara så många att databasen
  är användbar, åtminstone i än begränsad omfattning.
- Du ska ha skapat en databas som har god kvalitet . All sql kod ska vara
  korrekt och optimal utifrån situationen.
- Gör flera sökningar som kombinerar data från flera tabeller.

_🍀 Lycka Till! 🍀_ _/krm_
