Projet conçu en tant que formateur pour héberger des exercices liés à l'apprentissage de la programmation
Vous trouverez dans ce document une série d’exercices qui vont vous obliger à réaliser des requêtes sql de plus en plus complexes.
Pour réaliser ces exercices, vous utiliserez une base de données libre, mise à disposition par la w3school sur laquelle vous pouvez réaliser des requêtes pour vous entraîner.
Le contexte : la base de données est celle d’une entreprise de vente de produits. Vous avez été engagé comme développeur pour réaliser un espace d’administration complet permettant une gestion et une visualisation aisée de la base de données de l’entreprise. Pour ce faire vous aller devoir réaliser un ensemble de requêtes.
Ecrivez les requêtes pour :
Ecrivez les requêtes pour :
Ecrivez les requêtes pour :
Ecrivez les requêtes pour :
Ecrivez les requêtes pour :
Ecrivez les requêtes pour :
SELECT * FROM Employees
SELECT * FROM Products
SELECT * FROM OrderDetails
INSERT INTO Customers(CustomerName, ContactName, Address, City, PostalCode, Country) VALUES("Thomas Gossart", "Thomas Gossart", "Imaginaire", "Ville", 45654, "France")
INSERT INTO Products(ProductName, SupplierID, CategoryID, Unit, Price) VALUES("SaucePoivre", 21, 3, "20 sachet", 45)
DELETE FROM Customers WHERE CustomerID = 94
DELETE FROM Products WHERE ProductId = 78
UPDATE OrderDetails SET Quantity = 20 WHERE OrderDetailID = 14
UPDATE Customers SET CustomerName = "Jorge", City = "Stockholm", Country = "Sweden" WHERE CustomerId = 50
SELECT * FROM Customers WHERE Country = "France"
SELECT * FROM Customers WHERE Country = "France" AND City = "Paris"
SELECT * FROM Customers WHERE Country = "France" AND (City = "Paris" OR City = "Lille")
SELECT ProductName, Unit, Price FROM Products WHERE CategoryID = 1 AND SupplierID = 16
SELECT LastName, FirstName FROM Employees LIMIT 0, 3
SELECT LastName, FirstName FROM Employees ORDER BY EmployeeID DESC LIMIT 0, 3
SELECT ProductName, Price FROM Products WHERE Price >= 10 AND Price <= 30 ORDER BY Price DESC
SELECT ProductName, SupplierID, CategoryID, Price FROM Products WHERE (SupplierID = 1 OR SupplierID = 8 OR SupplierID = 12) AND (CategoryID = 1 OR CategoryID = 3) ORDER BY Price ASC
SELECT UPPER(CategoryName), UPPER(Description) FROM Categories
SELECT UPPER(CategoryName) AS NameToUpper, UPPER(Description) AS DescriptionToUpper FROM Categories
SELECT * FROM Customers WHERE LENGTH(CustomerName)BETWEEN 20 AND 30
SELECT AVG(Price) AS PrixMoyen FROM Products
SELECT ROUND(AVG(Price), 2) AS PrixMoyen FROM Products
SELECT ROUND(AVG(Price), 2) AS PrixMoyen FROM Products WHERE CategoryID = 2
SELECT COUNT(*) AS "NombreCommande" FROM Orders WHERE CustomerID = 25
SELECT o.OrderID, o.OrderDate, c.CustomerName, c.Country FROM Orders AS o INNER JOIN Customers as c ON o.CustomerID = c.CustomerID
SELECT o.OrderID, o.OrderDate, c.CustomerName, c.Country, e.LastName, e.FirstName FROM Orders AS o INNER JOIN Customers as c ON o.CustomerID = c.CustomerID INNER JOIN Employees as e ON o.EmployeeID = e.EmployeeID
SELECT o.OrderID, o.OrderDate, c.CustomerName, c.Country, e.LastName, e.FirstName, od.Quantity, p.ProductName, p.Price FROM Orders AS o INNER JOIN Customers as c ON o.CustomerID = c.CustomerID INNER JOIN Employees as e ON o.EmployeeID = e.EmployeeID INNER JOIN OrderDetails AS od ON o.OrderID = od.OrderID INNER JOIN Products AS p ON od.ProductID = p.ProductID WHERE c.Country = "USA"
SELECT o.OrderID, o.OrderDate, c.CustomerName, c.Country, e.LastName, e.FirstName, od.Quantity, p.ProductName, p.Price, ROUND((od.Quantity * p.Price), 2) AS Amount FROM Orders AS o INNER JOIN Customers as c ON o.CustomerID = c.CustomerID INNER JOIN Employees as e ON o.EmployeeID = e.EmployeeID INNER JOIN OrderDetails AS od ON o.OrderID = od.OrderID INNER JOIN Products AS p ON od.ProductID = p.ProductID WHERE c.Country = "USA"