SQL DML — SELECT/WHERE/ORDER BY/GROUP BY/HAVING
It A · STX · A-niveau · Databaser og datamodellering
💻 SQL DML — SELECT/WHERE/ORDER BY/GROUP BY/HAVING
DML (Data Manipulation Language) arbejder med data. SELECT med klausuler:
```sql
SELECT k.klassenavn, COUNT(e.id) AS antal, AVG(e.alder) AS snit_alder
FROM elev e
INNER JOIN klasse k ON e.klasse_id = k.id
WHERE e.alder >= 16
GROUP BY k.klassenavn
HAVING COUNT(e.id) > 5
ORDER BY snit_alder DESC
LIMIT 10;
```
JOIN-typer: INNER JOIN (kun matches), LEFT JOIN (alle fra venstre + matches), RIGHT JOIN, FULL OUTER JOIN, CROSS JOIN (kartesisk produkt).
Subforespørgsler (subqueries): SELECT navn FROM elev WHERE alder = (SELECT MAX(alder) FROM elev).
CTEs (Common Table Expressions): WITH ... AS (SELECT ...) — forbedrer læsbarhed.
Window functions: ROW_NUMBER() OVER (PARTITION BY klasse_id ORDER BY alder) — avanceret analyse.
INSERT: INSERT INTO elev (navn, alder) VALUES ('Jonas', 17).
UPDATE: UPDATE elev SET alder = 18 WHERE id = 5.
DELETE: DELETE FROM elev WHERE alder < 0.
ACID-transaktioner: BEGIN TRANSACTION; ... COMMIT; eller ROLLBACK;.
Læringsmål
- Skrive SELECT-forespørgsler med betingelser i WHERE
- Sortere resultater med ORDER BY
- Gruppere og filtrere data med GROUP BY og HAVING
Sådan kan du arbejde med emnet
- Skriv en SQL-forespørgsel, der finder alle kunder med mere end 3 ordrer og sorterer dem efter navn
- Brug GROUP BY og HAVING til at finde alle produktkategorier med en gennemsnitlig pris over 500 kr.
- Forklar, hvad der er forskellen på WHERE og HAVING i en SQL-forespørgsel
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis