diff --git a/README.md b/README.md index bafd2b1..6b96fd1 100644 --- a/README.md +++ b/README.md @@ -18,41 +18,58 @@ Answer the following data queries. Keep track of the SQL you write by pasting it ### find all customers that live in London. Returns 6 records. > This can be done with SELECT and WHERE clauses +SELECT * FROM Customers WHERE city= 'London'; ### find all customers with postal code 1010. Returns 3 customers. > This can be done with SELECT and WHERE clauses +SELECT * FROM Customers WHERE PostalCode = '1010'; ### find the phone number for the supplier with the id 11. Should be (010) 9984510. > This can be done with SELECT and WHERE clauses +SELECT Phone FROM Suppliers WHERE SupplierID = 11 ### list orders descending by the order date. The order with date 1997-02-12 should be at the top. > This can be done with SELECT, WHERE, and ORDER BY clauses +SELECT * FROM Orders ORDER BY OrderDate DESC ### find all suppliers who have names longer than 20 characters. You can use `length(SupplierName)` to get the length of the name. Returns 11 records. > This can be done with SELECT and WHERE clauses +SELECT * FROM Suppliers WHERE length(SupplierName) > 20 ### find all customers that include the word "market" in the name. Should return 4 records. > This can be done with SELECT and a WHERE clause using the LIKE keyword +SELECT * FROM Customers WHERE CustomerName LIKE '%market%' > Don't forget the wildcard '%' symbols at the beginning and end of your substring to denote it can appear anywhere in the string in question ### add a customer record for _"The Shire"_, the contact name is _"Bilbo Baggins"_ the address is _"1 Hobbit-Hole"_ in _"Bag End"_, postal code _"111"_ and the country is _"Middle Earth"_. > This can be done with the INSERT INTO clause +INSERT INTO Customers +VALUES(100, 'The Shire', 'Bilbo Baggins', '1 Hobbit Hole', 'Bag End', '111', 'Middle Earth') ### update _Bilbo Baggins_ record so that the postal code changes to _"11122"_. > This can be done with UPDATE and WHERE clauses +UPDATE Customers +SET PostalCode = '111122' +WHERE CustomerID = 100 ### list orders grouped by customer showing the number of orders per customer. _Rattlesnake Canyon Grocery_ should have 7 orders. > This can be done with SELECT, COUNT, JOIN and GROUP BY clauses. Your count should focus on a field in the Orders table, not the Customer table +SELECT * FROM Customers c JOIN Orders o ON c.CustomerID = o.CustomerID WHERE CustomerName = 'Rattlesnake Canyon Grocery' + > There is more information about the COUNT clause on [W3 Schools](https://www.w3schools.com/sql/sql_count_avg_sum.asp) ### list customers names and the number of orders per customer. Sort the list by number of orders in descending order. _Ernst Handel_ should be at the top with 10 orders followed by _QUICK-Stop_, _Rattlesnake Canyon Grocery_ and _Wartian Herkku_ with 7 orders each. > This can be done by adding an ORDER BY clause to the previous answer +SELECT CustomerName, (SELECT COUNT(o.OrderID) FROM Orders o WHERE o.CustomerID = c.CustomerID) as OrderCount FROM Customers c ORDER BY OrderCount DESC + ### list orders grouped by customer's city showing number of orders per city. Returns 58 Records with _Aachen_ showing 2 orders and _Albuquerque_ showing 7 orders. > This is very similar to the previous two queries, however, it focuses on the City rather than the CustomerName +SELECT City, (SELECT COUNT(o.OrderID) FROM Orders o WHERE o.CustomerID = c.CustomerID) as OrderCount FROM Customers c ORDER BY OrderCount DESC + ## Stretch Goals ### delete all customers that have no orders. Should delete 17 (or 18 if you haven't deleted the record added) records.