Del 1: Skapa och hantera tabeller
1. Skapa en tabell (Departments) som lagrar information om företagets avdelningar. Tabellen ska ha kolumnerna:
- DepartmentID (heltal, primärnyckel, ökar automatiskt)
- DepartmentName (text, max 50 tecken)
- Location (text, max 50 tecken)
CREATE TABLE Departments(
DepartmentID int NOT NULL PRIMARY KEY AUTO_INCREMENT,
DepartmentName VARCHAR (50),
Location VARCHAR (50)
);
2. Lägg till tre avdelningar i tabellen Departments:
- IT, Stockholm
- HR, Göteborg
- Finance, Malmö
INSERT INTO Departments ( DepartmentName, Location)
VALUES
('IT', 'Stockholm'),
('HR', 'Göteborg'),
('Finance', 'Malmö');
Del 2: Grundläggande urval
3. Visa alla kunder från tabellen Customers.
SELECT CustomerName FROM Customers;
4. Visa alla produkter som kostar mer än 200 kr från tabellen Products.
SELECT * FROM Products WHERE Price > 200;
5. Visa alla anställdas förnamn, efternamn och födelsedatum från tabellen Employees.
SELECT FirstName, LastName, BirthDate FROM Employees;
Del 3: Filter och sortering
6. Visa alla beställningar från tabellen Orders som gjordes efter den 1 januari 1997.
SELECT * FROM Orders
WHERE OrderDate > '1997-01-01'
7. Visa kundnamn och stad för kunder som bor i "Rio de Janeiro" (Customers).
SELECT DISTINCT City, CustomerName FROM Customers
WHERE City = 'Rio de Janeiro'
8. Visa produktnamn och enhet för produkter som har "pies" i enhetsfältet (Products).
SELECT ProductName, Unit FROM Products WHERE Unit LIKE '%pies%';
9. Visa de fem senaste beställningarna från Orders, sorterade efter datum (nyast först).
SELECT * FROM Orders ORDER BY OrderDate DESC LIMIT 5;
Del 4: Uppdatera och radera data
10. Uppdatera telefonnumret till "1234567890" för fraktföretaget "Speedy Express" i tabellen Shippers.
UPDATE Shippers
SET Phone = 1234567890
WHERE ShipperName = 'Speedy Express'
11. Uppdatera adressen för kund med ID 10 till "Main Street 456" i tabellen Customers.
UPDATE Customers
SET Address = 'Main Street 456'
WHERE CustomerId = 10
12. Ta bort produkten med ID 60 från tabellen Products.
DELETE FROM Products
WHERE ProductId = 60
13. Ta bort alla kunder från "Germany" i tabellen Customers.
DELETE FROM Customers
WHERE Country = 'Germany'
Del 5: Aggregering och funktioner
14. Visa det högsta priset bland alla produkter i Products.
SELECT * FROM Products
ORDER BY Price DESC
15. Visa det genomsnittliga priset för alla produkter i Products.
SELECT AVG(Price)
FROM Products
Del 6: Joins – koppla tabeller
16. Visa alla kunder och deras beställningar genom att koppla Customers och Orders.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
17. Visa alla produkter tillsammans med deras kategorinamn (Products + Categories).
SELECT Products.ProductName, Categories.CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryId;
18. Visa alla anställda tillsammans med deras avdelningsnamn och plats (Employees + Departments).
SELECT Employees.FirstName, Departments.DepartmentName, Departments.Location
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID
19. Visa alla beställningar med kundnamn, orderdatum och avdelningsnamn för den ansvariga anställda.
(Använd Orders, Customers, Employees och Departments.)
SELECT Customers.CustomerName, Orders.OrderDate, Employees.FirstName, Departments.DepartmentName
FROM Orders
INNER JOIN Customers ON Orders.CustomerId = Customers.CustomerId
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID
Del 7: Avancerade frågor
20. Visa alla produkter som kostar mer än det genomsnittliga priset.
SELECT ProductName, Price
FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products)
21. Visa alla anställda som har hanterat fler än 2 beställningar.
-- Skriv din SQL-kod här
22. Visa alla kunder från "USA" och deras 20 högsta beställningar (räknat som Quantity × Price).
-- Skriv din SQL-kod här
23. Visa alla anställda födda mellan 1950 och 1960.
-- Skriv din SQL-kod här
24. Visa hur många anställda som finns i varje avdelning (Departments + Employees).
-- Skriv din SQL-kod här
Del 8: VIEW och sammanfattning
25. Skapa en VIEW som heter CustomerSpending och visar:
- Kundnamn (CustomerName)
- Totalt spenderat belopp (Quantity × Price från alla deras beställningar)
Använd tabellerna Customers, Orders, OrderDetails och Products.
-- Skriv din SQL-kod här
26. Visa de fem mest sålda produkterna (efter total antal sålda enheter).
-- Skriv din SQL-kod här
27. Visa alla kunder från "USA" som har gjort en beställning under de senaste 6 månaderna.
-- Skriv din SQL-kod här
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDD
Del 1: Skapa och hantera tabeller
1. Skapa en tabell (Departments) som lagrar information om företagets avdelningar. Tabellen ska ha kolumnerna:
- DepartmentID (int, Primär nyckel och räkna automatiskt)
- DepartmentName (varchar(50))
- Location (varchar(50))
Del 2: Urval och filter
2. Skriv ut alla kunder från tabellen Customers.
3. Skriv ut alla produkter som kostar mer än 200 kr från tabellen Products.
4. Skriv ut alla anställdas för, efternamn och deras födelsedatum från tabellen Employees.
5. Skriv ut alla beställningar som gjorts efter den 1 januari 1997 från tabellen Orders.
6. Skriv ut CustomerName och stad som bor i staden "Rio de Janeiro" från tabellen Customers.
7. Skriv ut produktnamn och unit som har enhet i "pies" från tabellen Products.
8. Skriv ut de fem senaste beställningarna från tabellen Orders, sorterade efter datum.
Del 3: Lägga till data
9. Lägg till minst tre nya avdelningar i tabellen Departments med namn och plats.
- IT, Stockholm
- HR, Gothenburg
- Finance, Malmo
Del 4: Uppdatering av data
10. Uppdatera telefonnumret (1234567890) för fraktföretaget "Speedy Express" i tabellen Shippers.
11. Uppdatera adressen för en kund 10 i tabellen Customers till "Main Street 456".
Del 5: Radering av data
12. Ta bort en produkt från tabellen Products baserat på produktens ID 60.
13. Ta bort alla kunder från tabellen Customers som bor i "Germany".
Del 6: Funktioner och aggregering
14. Skriv ut det högsta priset bland alla produkter i tabellen Products.
15. Skriv ut det genomsnittliga priset för alla produkter i tabellen Products.
Del 7: Joins och relationer
16. Använd tabellerna Customers och Orders för att visa alla kunder tillsammans med deras beställningar.
17. Använd tabellerna Products och Categories för att visa alla produkter tillsammans med deras kategori.
18. Skriv ut alla anställda från tabellen Employees tillsammans med de kunder de ansvarar för, baserat på beställningar i tabellerna Orders och Customers.
19. Skriv ut alla produkter från tabellen Products som har köpts av kunder i "Sweden". Använd tabellerna Products, OrderDetails, Orders och Customers.
Del 8: Skapa VIEW
20. Skapa en VIEW som visar kundnamn från tabellen Customers och det totala beloppet som varje kund har spenderat på produkter (beräknat som Quantity * Price).
Del 9: Extra uppgifter
21. Skriv ut alla produkter från tabellen Products som har ett pris som är högre än det genomsnittliga priset för alla produkter.
22. Skriv ut alla anställda från tabellen Employees som har hand om mer än två beställningar (kopplat till tabellen Orders).
23. Skriv ut alla kunder från tabellen Customers som kommer från “USA” och de 20 största beställningarna, baserat på ordervärde.
24. Skriv ut alla anställda från tabellen Employees som är födda mellan 1950 och 1960.
25. Skriv ut den genomsnittliga beställningssumman (beräknat som Quantity * Price) för varje kund baserat på tabellerna Customers, Orders och OrderDetails.
26. Skriv ut de fem mest sålda produkterna från tabellen Products, baserat på den totala mängden sålda enheter i tabellen OrderDetails.
27. Skriv ut alla kunder från tabellen Customers som kommer från "USA" och som har gjort en beställning under de senaste 6 månaderna.