|
| 1 | + |
| 2 | +/*********************** Time to Celebrate Restaurant Anniversary ***************************************/ |
| 3 | + |
| 4 | +/**************************************************************/ |
| 5 | +/* Create invitations for a party */ |
| 6 | +/**************************************************************/ |
| 7 | +SELECT FirstName, LastName, Email |
| 8 | +FROM Customers |
| 9 | +ORDER BY LastName; |
| 10 | + |
| 11 | + |
| 12 | +/**************************************************************/ |
| 13 | +/* Create a table to store information */ |
| 14 | +/**************************************************************/ |
| 15 | +CREATE TABLE PartyAttendees( |
| 16 | +CustomerID INTEGER, |
| 17 | +PartySize INTEGER, |
| 18 | +FOREIGN KEY(CustomerID) REFERENCES Customers(CustomerID) |
| 19 | +); |
| 20 | + |
| 21 | + |
| 22 | +/**************************************************************/ |
| 23 | +/* Print a menu */ |
| 24 | +/**************************************************************/ |
| 25 | +SELECT * FROM Dishes |
| 26 | +LIMIT 2; |
| 27 | + |
| 28 | +SELECT DISTINCT(Type) |
| 29 | +FROM Dishes; |
| 30 | + |
| 31 | +/*All items sorted by price, low to high*/ |
| 32 | +SELECT * |
| 33 | +FROM Dishes |
| 34 | +ORDER BY Price; |
| 35 | + |
| 36 | +/*Appetiers and beverages, by type*/ |
| 37 | +SELECT * |
| 38 | +FROM Dishes |
| 39 | +WHERE Type IN ("Beverage", "Appetizer") |
| 40 | +ORDER BY Type; |
| 41 | + |
| 42 | +/*All items except beverages, by type*/ |
| 43 | +SELECT * |
| 44 | +FROM Dishes |
| 45 | +WHERE Type NOT IN ("Beverage") |
| 46 | +ORDER BY Type; |
| 47 | + |
| 48 | + |
| 49 | +/**************************************************************/ |
| 50 | +/* Sign a cutomer up for your loyalty program */ |
| 51 | +/**************************************************************/ |
| 52 | +INSERT INTO Customers(FirstName, LastName, Email, Address, City, State, Phone, Birthday) |
| 53 | +VALUES ( 'Vivian', 'Fong', '[email protected]', '123 forest street', 'Singapore', 'ABC', '123-456', '27-08-2000'); |
| 54 | + |
| 55 | +SELECT * FROM Customers |
| 56 | +ORDER BY CustomerID DESC; |
| 57 | + |
| 58 | + |
| 59 | +/**************************************************************/ |
| 60 | +/* Update Customer Personal Information */ |
| 61 | +/**************************************************************/ |
| 62 | +SELECT CustomerID, FirstName, LastName, Address, City, State |
| 63 | +FROM Customers WHERE FirstName = "Taylor" AND LastName = "Jenkins"; |
| 64 | + |
| 65 | +UPDATE Customers |
| 66 | +SET Address = "74 Pine St", City = "New York", State = "NY" |
| 67 | +WHERE CustomerID = 26; |
| 68 | + |
| 69 | +SELECT * FROM Customers |
| 70 | +WHERE CustomerID = 26; |
| 71 | + |
| 72 | + |
| 73 | +/**************************************************************/ |
| 74 | +/* Remove Customer Record */ |
| 75 | +/**************************************************************/ |
| 76 | +SELECT CustomerID, FirstName, LastName, Email, Phone |
| 77 | +FROM Customers WHERE FirstName = "Taylor" AND LastName = "Jenkins"; |
| 78 | + |
| 79 | +DELETE |
| 80 | +FROM Customers |
| 81 | +WHERE CustomerID = 4; |
| 82 | + |
| 83 | + |
| 84 | +/**************************************************************/ |
| 85 | +/* Log Customer Responses */ |
| 86 | +/**************************************************************/ |
| 87 | +INSERT INTO PartyAttendees(CustomerID, PartySize) |
| 88 | +VALUES( |
| 89 | + ( SELECT CustomerID FROM Customers WHERE Email LIKE '[email protected]') |
| 90 | + ,3 |
| 91 | +); |
| 92 | + |
| 93 | +SELECT * FROM PartyAttendees; |
| 94 | + |
| 95 | + |
| 96 | +/**************************************************************/ |
| 97 | +/* Look up Reservations */ |
| 98 | +/**************************************************************/ |
| 99 | +SELECT r.*, c.FirstName, c.LastName, c.Email, c.Phone |
| 100 | +FROM Reservations r |
| 101 | +JOIN Customers c |
| 102 | +ON r.CustomerID = c.CustomerID |
| 103 | +WHERE c.LastName LIKE 'Ste%' |
| 104 | +ORDER BY r.Date DESC; |
| 105 | + |
| 106 | + |
| 107 | +/**************************************************************/ |
| 108 | +/* Take a Reservation */ |
| 109 | +/**************************************************************/ |
| 110 | +SELECT * FROM Customers |
| 111 | +WHERE Email = '[email protected]'; |
| 112 | + |
| 113 | +INSERT INTO Customers(FirstName, LastName, Email, Phone) |
| 114 | +VALUES( 'Same', 'McAdams', '[email protected]', '(555)555-1212)'); |
| 115 | + |
| 116 | +INSERT INTO Reservations(CustomerID, Date, PartySize) |
| 117 | +VALUES('102','2020-07-14 18:00:00','5'); |
| 118 | + |
| 119 | +SELECT * FROM Reservations |
| 120 | +WHERE CustomerID = 102; |
| 121 | + |
| 122 | + |
| 123 | +/**************************************************************/ |
| 124 | +/* Take a Delivery Order */ |
| 125 | +/**************************************************************/ |
| 126 | +/* check cusotmer exist or not */ |
| 127 | +SELECT * FROM Customers |
| 128 | +WHERE FirstName = 'Loretta' AND LastName = 'Hundey'; |
| 129 | + |
| 130 | +/* check dishes */ |
| 131 | +SELECT * FROM Dishes; |
| 132 | + |
| 133 | +/* create order */ |
| 134 | +INSERT INTO Orders(CustomerID, OrderDate) |
| 135 | +VALUES( |
| 136 | + (SELECT CustomerID FROM Customers WHERE FirstName = 'Loretta' AND LastName = 'Hundey'), |
| 137 | + '27-08-2020 20:00:00' |
| 138 | +); |
| 139 | + |
| 140 | +/* check the latest order of that customer */ |
| 141 | +SELECT OrderID FROM Orders WHERE CustomerID IN |
| 142 | + (SELECT CustomerID FROM Customers WHERE FirstName = 'Loretta' AND LastName = 'Hundey') |
| 143 | +ORDER BY OrderID DESC |
| 144 | +LIMIT 1; |
| 145 | + |
| 146 | + |
| 147 | +/* Create order dishes */ |
| 148 | +INSERT INTO OrdersDishes(OrderID, DishID) |
| 149 | +VALUES( |
| 150 | + (SELECT OrderID FROM Orders WHERE CustomerID IN |
| 151 | + (SELECT CustomerID FROM Customers WHERE FirstName = 'Loretta' AND LastName = 'Hundey') |
| 152 | + ORDER BY OrderID DESC |
| 153 | + LIMIT 1), |
| 154 | + (SELECT DishID FROM Dishes WHERE Name LIKE 'House Salad' ) |
| 155 | +); |
| 156 | + |
| 157 | +INSERT INTO OrdersDishes(OrderID, DishID) |
| 158 | +VALUES( |
| 159 | + (SELECT OrderID FROM Orders WHERE CustomerID IN |
| 160 | + (SELECT CustomerID FROM Customers WHERE FirstName = 'Loretta' AND LastName = 'Hundey') |
| 161 | + ORDER BY OrderID DESC |
| 162 | + LIMIT 1), |
| 163 | + (SELECT DishID FROM Dishes WHERE Name LIKE 'Mini Cheeseburgers' ) |
| 164 | +); |
| 165 | + |
| 166 | +INSERT INTO OrdersDishes(OrderID, DishID) |
| 167 | +VALUES( |
| 168 | + (SELECT OrderID FROM Orders WHERE CustomerID IN |
| 169 | + (SELECT CustomerID FROM Customers WHERE FirstName = 'Loretta' AND LastName = 'Hundey') |
| 170 | + ORDER BY OrderID DESC |
| 171 | + LIMIT 1), |
| 172 | + (SELECT DishID FROM Dishes WHERE Name LIKE 'Tropical Blue Smoothie' ) |
| 173 | +); |
| 174 | + |
| 175 | +/* Calculate Total Cost */ |
| 176 | +SELECT d.Name, SUM(d.Price) |
| 177 | +FROM OrdersDishes od |
| 178 | +LEFT JOIN Dishes d |
| 179 | +ON od.DishID = d.DishID |
| 180 | +WHERE od.OrderID == 1001; |
| 181 | + |
| 182 | + |
| 183 | +/**************************************************************/ |
| 184 | +/* Track Customer Favourite */ |
| 185 | +/**************************************************************/ |
| 186 | + |
| 187 | +SELECT * |
| 188 | +FROM Customers |
| 189 | +WHERE FirstName = 'Cleo' AND LastName = 'Goldwater'; |
| 190 | + |
| 191 | + |
| 192 | +UPDATE Customers |
| 193 | +SET FavoriteDish = (SELECT DishID FROM Dishes WHERE Name LIKE 'Quinoa Salmon Salad') |
| 194 | +WHERE FirstName = 'Cleo' AND LastName = 'Goldwater'; |
| 195 | + |
| 196 | + |
| 197 | +SELECT * |
| 198 | +FROM Customers c |
| 199 | +JOIN Dishes d |
| 200 | +ON c.FavoriteDish = d.DishID |
| 201 | +WHERE FirstName = 'Cleo' AND LastName = 'Goldwater'; |
| 202 | + |
| 203 | + |
| 204 | +/**************************************************************/ |
| 205 | +/* Report of Top 5 Customers */ |
| 206 | +/**************************************************************/ |
| 207 | +SELECT FirstName, LastName, Email, COUNT(OrderID) AS NumberOfOrders |
| 208 | +FROM Customers c |
| 209 | +JOIN Orders o |
| 210 | +ON c.CustomerID = o.CustomerID |
| 211 | +GROUP BY c.CustomerID |
| 212 | +ORDER BY 4 DESC |
| 213 | +LIMIT 5; |
0 commit comments