SQL
SQL (Structured Query Language) er et domæne-specifikt sprog, der anvendes i programmering og designet til at håndtere, og hente data i relationelle databaser.
Eksempel databaser
Northwind
ER-diagram Northwind
Power BI
Du kan hente Power BI fil med forbindelse til MySQL Server - northwind.pbix
SQL File Northwind
Du kan hente SQL file for oprettelse og indsætning af data:
“Skole” eksempel
Forestil dig en database for en skole. En tabel, Studerende, indeholder generel studerende information, mens en anden tabel, StuderendeDetaljer, indeholder mere dybdegående information som Email for hver studerende. Hver studerende i Studerende-tabellen korresponderer til præcis én post i StuderendeDetaljer.
ER-diagram “Skole”
SQL File “Skole”
Du kan hente SQL file for oprettelse og indsætning af data: skoledabase.sql
SELECT
Bruges til at hente data fra en database.
Eksempel: Hent alle kolonner fra en tabel ved navn “orders”
1
SELECT * FROM orders;
Eksempel: Hent kun kolonner: OrderID, CustomerID, OrderDate fra en tabel ved navn “orders”
1
2
3
4
5
SELECT
OrderID,
CustomerID,
OrderDate
FROM orders;
DISTINCT
Vis kun unikke værdier ud fra en kolonne
Eksempel: Find alle lande der er sendt noget til, vis kun hvert land en gang.
1
2
SELECT DISTINCT ShipCountry
FROM orders;
WHERE
Bruges til at filtrere resultaterne baseret på en betingelse.
Eksempel: Vælg alle kolonner fra “orders” hvor “EmployeeID” er lig med 5.
1
2
SELECT * FROM orders
WHERE EmployeeID = 5;
ORDER BY
Bruges til at sortere resultaterne i en forespørgsel.
Eksempel: Vælg alle kolonner fra “orders” hvor “EmployeeID” er lig med 5. Sorteret efter “OrderDate” i stigende orden - ASC
1
2
3
SELECT * FROM orders
WHERE EmployeeID = 5
ORDER BY OrderDate ASC;
Samme, bare i faldende orden - DESC
1
2
3
SELECT * FROM orders
WHERE EmployeeID = 5
ORDER BY OrderDate DESC;
Beregnet kolonne
Det er muligt at fortage beregninger og oprette nye kolonner med beregningen.
Eksempel: Ud fra tabellen orderdetails beregnes en total pr. række - UnitPrice * Quantity AS RowTotal
1
2
3
4
5
6
7
SELECT
OrderID,
ProductID,
UnitPrice,
Quantity,
UnitPrice * Quantity AS RowTotal
FROM orderdetails;
GROUP BY
Bruges til at gruppere rækker, der har de samme værdier i udvalgte kolonner.
Eksempel: Summering af hver enkelt order i tabellen orderdetails
1
2
3
4
5
6
SELECT
OrderID,
SUM(UnitPrice * Quantity) AS RowTotal
FROM orderdetails
GROUP BY OrderID
ORDER BY OrderID;
JOIN
Bruges til at kombinere rækker fra to eller flere tabeller baseret på en relateret kolonne.
Eksempel 1: Hvad er omsætningen pr. Country?. For at finde dette skal der opretters forbindelse (JOIN/Relation) mellem tabellerne:
- orders
- orderdetails
1
2
3
4
5
6
7
SELECT
ShipCountry,
SUM(UnitPrice * Quantity) AS Total
FROM orders JOIN orderdetails
ON orders.OrderID = orderdetails.OrderID
GROUP BY ShipCountry
ORDER BY Total DESC;
Eksempel 2: Hvad er omsætningen pr. Category?. For at finde dette skal der opretters forbindelse (JOIN/Relation) mellem 3 tabeller:
- categories
- products
- orderdetails
1
2
3
4
5
6
7
8
9
SELECT
CategoryName,
SUM(orderdetails.UnitPrice * orderdetails.Quantity) AS Total
FROM categories JOIN products
ON categories.CategoryID = products.CategoryID
JOIN orderdetails
ON products.ProductID = orderdetails.ProductID
GROUP BY CategoryName
ORDER BY Total;