diff --git a/README.md b/README.md index 2990f94..5c75d52 100644 --- a/README.md +++ b/README.md @@ -35,22 +35,47 @@ 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 contact_title, contact_name, country, city +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 contact_title, contact_name, country, city +from customers +where postal_code = '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 company_name, phone +from suppliers +where supplier_id = '11' +``` ### list orders descending by the order date. The order with date 1998-05-06 should be at the top. > This can be done with SELECT, WHERE, and ORDER BY clauses +``` +select customer_id, ship_name, order_date +from orders +order by order_date desc +``` ### find all suppliers who have names longer than 20 characters. You can use `length(company_name)` to get the length of the name. Returns 11 records. > This can be done with SELECT and WHERE clauses +``` +select supplier_id, company_name, city +from suppliers +where length(company_name) > 20 +``` ### find all customers that include the word 'MARKET' in the contact title. Should return 19 records. @@ -59,7 +84,11 @@ Answer the following data queries. Keep track of the SQL you write by pasting it > 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 > Remember to convert your contact title to all upper case for case insenstive comparing so upper(contact_title) - +``` +select * +from customers +where upper(contact_title) like '%MARKET%' +``` ### add a customer record for * customer id is 'SHIRE' @@ -70,25 +99,52 @@ Answer the following data queries. Keep track of the SQL you write by pasting it * the postal code is '111' * the country is 'Middle Earth' > This can be done with the INSERT INTO clause +``` +insert into customers(customer_id, company_name, contact_name, address, city, postal_code, country) +values('SHIRE', '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 postal_code = '11122' +where customer_id = 'SHIRE' +``` ### list orders grouped by customer showing the number of orders per customer. _Rattlesnake Canyon Grocery_ should have 18 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 > There is more information about the COUNT clause on [W3 Schools](https://www.w3schools.com/sql/sql_count_avg_sum.asp) - +``` +select count(o.order_id), c.contact_name, c.company_name +from orders o join customers c +on o.customer_id = c.customer_id +group by c.contact_name, c.company_name +order by count(o.order_id) +``` ### list customers names and the number of orders per customer. Sort the list by number of orders in descending order. _Save-a-lot Markets should be at the top with 31 orders followed by _Ernst Handle_ with 30 orders. Last should be _Centro comercial Moctezuma_ with 1 order. > This can be done by adding an ORDER BY clause to the previous answer - +``` +select count(o.order_id), c.contact_name, c.company_name +from orders o join customers c +on o.customer_id = c.customer_id +group by c.contact_name, c.company_name +order by count(o.order_id) desc +``` ### list orders grouped by customer's city showing number of orders per city. Returns 69 Records with _Aachen_ showing 6 orders and _Albuquerque_ showing 18 orders. > This is very similar to the previous two queries, however, it focuses on the City rather than the CustomerName +``` +select count(o.order_id), c.city +from customers c join orders o +on o.customer_id = c.customer_id +group by c.city +order by c.city +``` ## Data Normalization @@ -102,6 +158,38 @@ Take the following data and normalize it into a 3NF database. | Bob | Joe | Horse | | | | | No | No | | Sam | Ginger | Dog | Miss Kitty | Cat | Bubble | Fish | Yes | No | + + + +| Person Name |Fenced Yard | City Dweller | Person Id | +|-------------|------------|--------------|--------------| +| Jane |No | Yes | 1 | +| Bob |No | No | 2 | +| Sam |Yes | No | 3 | + + +| Person Id | Pet Id | Pet Name | Pet Type | +|-------------|----------|----------|------------| +| 1 | 1 | Ellie | Dog | +| 1 | 2 | Tiger | Cat | +| 1 | 3 | Toby | Turtle | +| 2 | 4 | Joe |Horse | +| 3 | 5 | Ginger | Dog | +| 3 | 6 |Miss Kitty| Cat | +| 3 | 7 | Bubble | Fish | + + + + + + + + + + + + + --- ## Stretch Goals