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)
-- Skriv din SQL-kod här
CREATE TABLE Departments
(
DepartmentID INT 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ö
-- Skriv din SQL-kod här
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.
-- Skriv din SQL-kod här
SELECT CustomerName FROM `Customers`;
4. Visa alla produkter som kostar mer än 200 kr från tabellen Products.
-- Skriv din SQL-kod här
SELECT ProductName FROM `Products` WHERE Price > 200;
5. Visa alla anställdas förnamn, efternamn och födelsedatum från tabellen Employees.
-- Skriv din SQL-kod här
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.
-- Skriv din SQL-kod här
SELECT * FROM Orders WHERE OrderDate > '1997-01-01';
7. Visa kundnamn och stad för kunder som bor i "Rio de Janeiro" (Customers).
-- Skriv din SQL-kod här
SELECT CustomerName FROM Customers WHERE City = 'Rio de Janeiro';
8. Visa produktnamn och enhet för produkter som har "pies" i enhetsfältet (Products).
-- Skriv din SQL-kod här
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).
-- Skriv din SQL-kod här
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.
-- Skriv din SQL-kod här
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.
-- Skriv din SQL-kod här
UPDATE `Customers` SET `Address`='Main Street 456' WHERE CustomerId = '10';
12. Ta bort produkten med ID 60 från tabellen Products.
-- Skriv din SQL-kod här
DELETE FROM `Customers` WHERE CustomerId = '60';
13. Ta bort alla kunder från "Germany" i tabellen Customers.
-- Skriv din SQL-kod här
DELETE FROM `Customers` WHERE Country = 'Germany';
Del 5: Aggregering och funktioner
14. Visa det högsta priset bland alla produkter i Products.
-- Skriv din SQL-kod här
SELECT Max(Price) As HighestPrice FROM Products;
15. Visa det genomsnittliga priset för alla produkter i Products.
-- Skriv din SQL-kod här
SELECT AVG(Price) As AveragePrice FROM Products;
Del 6: Joins – koppla tabeller
16. Visa alla kunder och deras beställningar genom att koppla Customers och Orders.
-- Skriv din SQL-kod här
SELECT Customers.CustomerName, Orders.OrderID, Orders.OrderDate FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
17. Visa alla produkter tillsammans med deras kategorinamn (Products + Categories).
-- Skriv din SQL-kod här
SELECT Products.ProductName, Categories.CategoryName FROM Products JOIN Categories ON Products.CategoryID = Categories.CategoryID;
18. Visa alla anställda tillsammans med deras avdelningsnamn och plats (Employees + Departments).
-- Skriv din SQL-kod här
SELECT Employees.FirstName,Departments.DepartmentName FROM Employees 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.)
-- Skriv din SQL-kod här
SELECT Orders.OrderID,Customers.CustomerName,Orders.OrderDate,Departments.DepartmentName AS EmployeeDepartment FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID JOIN Departments ON Employees.DepartmentId = Departments.DepartmentId;
Del 7: Avancerade frågor
20. Visa alla produkter som kostar mer än det genomsnittliga priset.
-- Skriv din SQL-kod här
SELECT ProductName 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
SELECT Employees.FirstName, COUNT(Orders.OrderID) AS OrderCount FROM Employees JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID GROUP BY Employees.EmployeeID, Employees.FirstName HAVING COUNT(Orders.OrderID) > 2;
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
SELECT Customers.CustomerName, Orders.OrderID, Products.ProductName, OrderDetails.Quantity, Products.Price, (OrderDetails.Quantity * Products.Price) AS TotalValue FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID JOIN Products ON OrderDetails.ProductID = Products.ProductID WHERE Customers.Country = 'USA' AND OrderDetails.Quantity>='20' ORDER BY TotalValue DESC;
23. Visa alla anställda födda mellan 1950 och 1960.
-- Skriv din SQL-kod här
SELECT FirstName , BirthDate FROM `Employees` WHERE BirthDate > '1950-00-00' AND BirthDate <'1960-00-00';
24. Visa hur många anställda som finns i varje avdelning (Departments + Employees).
-- Skriv din SQL-kod här
SELECT DepartmentId, COUNT(*) AS EmployeeCount
FROM Employees
WHERE DepartmentId IN (1, 2, 3)
GROUP BY DepartmentId;
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
CREATE VIEW CustomersSpending AS SELECT Customers.CustomerName, (OrderDetails.Quantity * Products.Price) AS ToptalSpending FROM Customers INNER JOIN Orders ON Customers.CustomerId = Orders.CustomerId INNER JOIN OrderDetails ON OrderDetails.OrderId = Orders.OrderId INNER JOIN Products ON Products.SupplierID = Orders.ShipperID;
26. Visa de fem mest sålda produkterna (efter total antal sålda enheter).
-- Skriv din SQL-kod här
SELECT OrderDetails.ProductId, COUNT(*) AS total_sold , Products.ProductName FROM OrderDetails JOIN Products ON OrderDetails.ProductId = Products.ProductId GROUP BY ProductId ORDER BY total_sold DESC LIMIT 5;
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
SELECT Customers.CustomerName, Customers.Country, Orders.OrderDate, Customers.CustomerId, Orders.CustomerId FROM Customers JOIN Orders ON Orders.CustomerId = Customers.CustomerId WHERE Customers.Country = 'USA' AND Orders.OrderDate > '1990-05-13';
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.