The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert
If you want to learn how to gain insights from data but are too intimidated by databases to know where to start, then this course is for you. This course is a gentle but comprehensive introduction to MySQL, one of the most highly in-demand skills in the business sector today. Whether you work in sales or marketing, you run your own company, or you want to build your own apps, mastering MySQL is crucial to answering complex business problems and questions using insights from data.
More
The Ultimate MySQL Bootcamp introduces you to a solid foundation in databases in a way that’s both informative and engaging. Yes, that’s right, it’s possible to make an engaging course on databases.
In this course, you will:
Learn the ins and outs of SQL syntax
Generate reports using sales and user data
Analyze data using Aggregate Functions
Run complex queries using MySQL logical operators and string functions
Write all the common SQL joins
Work with large datasets containing thousands of entries
Build a web app using MySQL and NodeJS
Design and implement complex database schemas
Learn to navigate the treacherous world of storing dates and times
Clone the database structure of a photo sharing social network
Write Javascript code to generate fake data sets
And more!
This course is also chock full of exercises, challenges, projects, and opportunities for you to practice what you’re learning. Apply what you’re learning to real-world challenges such as finding a website’s power users, calculating your top students, identifying bots on a site, or determining which hashtags generate the most traction on a site. Along the way, you’ll also get to meet my pet cat, Blue! (She’s really cute.)
Why Learn MySQL
Consistently ranked the most in-demand skill in recent employer surveys, SQL is a fantastic way to increase your income and boost your professional development. So many companies today use MySQL, including Twitter, Uber, Airbnb, Dropbox, Github, Kickstarter, Udemy, Slack, and many others. Unsure about the difference between SQL and MySQL? MySQL is the most popular open source SQL database out there, so it’s a great choice to begin your learning journey. We’ll talk a lot more about the difference between SQL and MySQL in the course, but 95% of what you learn about MySQL in this course will apply to other databases such as Postgres, Oracle, and Microsoft SQL Server.
Why This Course Is Different
This isn’t going to be a course where you watch me code for 20 hours; it’s a course with ample opportunity for you to get your hands dirty writing code (even within the first 7 minutes of the course).
My teaching experience is rooted in the classroom. I’ve spent years teaching programming, web development, and databases to my in-person bootcamp students. This course combines the best of my offline courses with the convenience of learning online, in a setting that’s best for you.
Upon completing this course, you’ll be able to interact with and query any SQL database out there. You’ll also be able to generate reports with ease, answer company performance questions using data, and integrate MySQL into complete applications.
So let’s do this! Enroll today and start learning SQL!
- No Database, SQL, or MySQL experience needed! Complete beginners to MySQL are welcome.
- All you need is a working computer for this course; PC, Mac, and Linux users are all welcome.
- No previous programming language experience required, but it won't hurt :)
- Anyone interested in learning SQL to help with their current job or to find a new role. SQL is one of today's most in-demand skills
- Anyone looking to answer complex business problems and generate reports using data
- Business owners, people in sales, or people in marketing roles who are interested in understanding company data better.
- Developers who are looking to build applications (e.g. social network, ecommerce site) using MySQL
What you'll learn:
- Create your own database or interact with existing databases
- Write complex SQL queries across multiple tables
- Build a web app using NodeJS and MySQL
- Model real-world data and generate reports using SQL
- Answer company performance or sales questions using data
Watch Online The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert
# | Title | Duration |
---|---|---|
1 | This Course Was Just Updated! | 03:09 |
2 | Course Intro | 01:09 |
3 | About Me | 01:26 |
4 | Getting The Course Code | 01:41 |
5 | First 5 Minutes of SQL | 08:24 |
6 | Section Introduction | 01:03 |
7 | What Is A Database? | 07:17 |
8 | SQL vs. MySQL | 05:51 |
9 | Installation: START HERE! | 05:18 |
10 | Installation: Windows Instructions | 09:14 |
11 | Installation: Mac Instructions | 11:35 |
12 | Section Introduction | 01:10 |
13 | Showing Databases | 04:16 |
14 | Creating Databases | 04:56 |
15 | Dropping and Using Databases | 05:33 |
16 | Introducing Tables | 05:19 |
17 | Data Types: The Basics | 07:39 |
18 | Basic Datatypes Challenge | 02:36 |
19 | Creating Tables | 04:58 |
20 | How Do We Know It Worked? | 04:34 |
21 | Dropping Tables | 02:11 |
22 | Tables Basics Activity | 02:37 |
23 | MySQL Comments | 03:13 |
24 | Section Introduction | 01:41 |
25 | INSERT: The Basics | 03:45 |
26 | A Quick Preview of SELECT | 01:45 |
27 | Multi-inserts | 04:49 |
28 | INSERT Exercise | 05:28 |
29 | Working With NOT NULL | 05:41 |
30 | Sidenote: Quotes In MySQL | 04:14 |
31 | Adding DEFAULT Values | 06:32 |
32 | Introducing Primary Keys | 04:58 |
33 | Working With AUTO_INCREMENT | 07:14 |
34 | Create Table/ Insert Exercise | 07:20 |
35 | Section Introduction | 01:31 |
36 | Introducing CRUD | 01:52 |
37 | Getting Our New "Dataset" | 01:51 |
38 | Officially Introducing SELECT | 03:14 |
39 | The WHERE clause | 03:33 |
40 | Rapid Fire Exercises | 01:26 |
41 | Rapid Fire Exercises SOLUTION | 02:56 |
42 | Aliases | 02:14 |
43 | Using UPDATE | 05:25 |
44 | A Quick Rule Of Thumb | 01:45 |
45 | UPDATE Exercise | 01:05 |
46 | UPDATE Exercise SOLUTION | 03:03 |
47 | Introducing DELETE | 02:38 |
48 | DELETE Exercise | 00:59 |
49 | DELETE Exercise SOLUTION | 02:16 |
50 | Section Introduction | 01:53 |
51 | Introducing the CRUD Challenge | 05:12 |
52 | CRUD Challenge Solution: Creating | 08:09 |
53 | CRUD Challenge Solution: Reading | 01:43 |
54 | CRUD Challenge Solution: Updating | 03:25 |
55 | CRUD Challenge Solution: Deleting | 02:51 |
56 | Section Introduction | 02:05 |
57 | The World Of String Functions | 01:53 |
58 | Loading Our Books Data | 05:26 |
59 | CONCAT | 08:51 |
60 | SUBSTRING | 07:32 |
61 | Combining String Functions | 06:50 |
62 | Sidenote: SQL Formatting | 04:27 |
63 | REPLACE | 05:44 |
64 | REVERSE | 03:31 |
65 | CHAR_LENGTH | 02:51 |
66 | UPPER & LOWER | 03:49 |
67 | Other String Functions | 06:22 |
68 | String Functions Exercise | 03:44 |
69 | String Functions Exerise SOLUTION | 11:33 |
70 | Section Introduction | 00:36 |
71 | Adding Some New Books | 01:27 |
72 | DISTINCT | 06:13 |
73 | ORDER BY | 06:38 |
74 | More On ORDER BY | 06:20 |
75 | LIMIT | 05:40 |
76 | LIKE | 07:15 |
77 | Escaping Wildcards | 02:04 |
78 | Refining Selections Exercise | 03:06 |
79 | Refining Selections Exercise SOLUTION | 14:41 |
80 | Section Introduction | 03:57 |
81 | Count Basics | 07:34 |
82 | GROUP BY | 10:12 |
83 | MIN and MAX Basics | 03:46 |
84 | Subqueries | 06:27 |
85 | Grouping By Multiple Columns | 04:48 |
86 | MIN and MAX With GROUP BY | 05:51 |
87 | SUM | 03:46 |
88 | AVG | 02:24 |
89 | Aggregate Functions Docs | 01:18 |
90 | Agg Functions Exercise | 02:52 |
91 | Agg Functions Exercise SOLUTION | 12:36 |
92 | Section Introduction | 01:57 |
93 | Surveying Other Data Types | 02:53 |
94 | CHAR vs. VARCHAR | 12:07 |
95 | INT, TINYINT, BIGINT, etc. | 05:03 |
96 | DECIMAL | 06:56 |
97 | FLOAT & DOUBLE | 05:32 |
98 | DATE and TIME | 04:38 |
99 | Working With Dates | 07:40 |
100 | CURDATE, CURTIME, & NOW | 04:16 |
101 | Date Functions | 06:04 |
102 | Time Functions | 02:04 |
103 | Formatting Dates | 09:14 |
104 | Date Math | 10:43 |
105 | TIMESTAMPS | 03:29 |
106 | DEFAULT & ON UPDATE TIMESTAMPS | 06:59 |
107 | Data Types Exercise | 03:37 |
108 | Data Types Exercise SOLUTION | 13:17 |
109 | Section Introduction | 02:45 |
110 | Not Equal | 02:57 |
111 | NOT LIKE | 03:22 |
112 | Greater Than | 03:57 |
113 | Less Than Or Equal To | 02:58 |
114 | Logical AND | 08:54 |
115 | Logical OR | 05:39 |
116 | Between | 04:48 |
117 | Comparing Dates | 08:16 |
118 | The IN Operator | 08:30 |
119 | CASE | 08:48 |
120 | IS NULL | 02:04 |
121 | Exercise | 03:26 |
122 | Exercise SOLUTION | 15:23 |
123 | UNIQUE Constraint | 03:45 |
124 | CHECK Constraints | 05:00 |
125 | Named Constraints | 04:14 |
126 | Multiple Column Constraints | 05:21 |
127 | ALTER TABLE: Adding Columns | 05:39 |
128 | ALTER TABLE: Dropping Columns | 01:55 |
129 | ALTER TABLE: Renaming | 03:44 |
130 | ALTER TABLE: Modifying Columns | 03:56 |
131 | ALTER TABLE: Constraints | 04:13 |
132 | Section Introduction | 01:58 |
133 | Data is Messy | 10:29 |
134 | Relationships Basics | 04:38 |
135 | One to Many Relationship | 12:34 |
136 | Working with FOREIGN KEY | 11:08 |
137 | Cross Joins | 08:00 |
138 | Inner Joins | 08:53 |
139 | Inner Joins With Group By | 04:54 |
140 | Left Join | 07:06 |
141 | Left Join With Group By | 03:36 |
142 | Right Join | 04:29 |
143 | On Delete Cascade | 05:37 |
144 | Joins Exercise | 03:02 |
145 | Joins Exercise SOLUTION | 10:43 |
146 | Section Introduction | 01:55 |
147 | Many to Many Basics | 10:49 |
148 | Creating Our Many To Many Tables | 06:44 |
149 | TV Series Challenge #1 | 03:36 |
150 | TV Series Challenge #2 | 03:25 |
151 | TV Series Challenge #3 | 03:39 |
152 | TV Series Challenge #4 | 03:35 |
153 | TV Series Challenge #5 | 02:26 |
154 | TV Series Challenge #6 | 09:11 |
155 | TV Series Challenge #7 | 05:28 |
156 | Introducing Views | 06:32 |
157 | Updateable Views | 05:43 |
158 | Replacing/Altering Views | 03:27 |
159 | HAVING clause | 04:29 |
160 | WITH ROLLUP | 08:19 |
161 | SQL Modes Basics | 05:52 |
162 | STRICT_TRANS_TABLES | 04:26 |
163 | More Modes | 09:50 |
164 | Introducing Window Functions | 06:29 |
165 | Using OVER() | 08:16 |
166 | PARTITION BY | 06:54 |
167 | ORDER BY with Windows | 06:42 |
168 | RANK() | 05:54 |
169 | DENSE_RANK, & ROW_NUMBER() | 05:15 |
170 | NTILE() | 03:37 |
171 | FIRST_VALUE | 04:06 |
172 | LEAD and LAG | 05:52 |
173 | Section Introduction | 01:20 |
174 | IMPORTANT NOTE ABOUT THIS SECTION! | 01:53 |
175 | Introducing Instagram Clone | 08:32 |
176 | Users Schema | 06:09 |
177 | Photos Schema | 06:38 |
178 | Comments Schema | 06:40 |
179 | Likes Schema | 07:42 |
180 | Followers Schema | 07:21 |
181 | 3 Approaches for Hashtags | 10:35 |
182 | Implementing Hashtags Table | 05:27 |
183 | Section Introduction | 01:43 |
184 | Getting Lots of Instagram Data | 08:31 |
185 | Instagram Challenge #1 | 04:54 |
186 | Instagram Challenge #2 | 06:42 |
187 | Instagram Challenge #3 | 07:23 |
188 | Instagram Challenge #4 | 07:06 |
189 | Instagram Challenge #5 | 03:14 |
190 | Instagram Challenge #6 | 05:30 |
191 | Instagram Challenge #7 | 05:16 |
192 | Course Introduction | 01:09 |
193 | Instructor Introduction(s) | 01:26 |
194 | Syllabus Walkthrough and Prerequisites | 04:19 |
195 | Your First 5 Minutes of SQL - Let's Get Coding! | 06:14 |
196 | How The Course Works | 03:45 |
197 | Section Introduction | 01:03 |
198 | What Is a Database? | 07:17 |
199 | SQL Vs. MySQL | 05:51 |
200 | Installation Overview - WATCH BEFORE INSTALLING | 05:11 |
201 | Now using GoormIDE instead of Cloud9 | 03:17 |
202 | Mac Installation | 11:42 |
203 | Windows Installation | 03:33 |
204 | Section 3 Introduction | 01:10 |
205 | Creating Databases | 05:21 |
206 | Dropping Databases | 01:47 |
207 | Using Databases | 03:01 |
208 | Introduction to Tables | 05:10 |
209 | The Basic Datatypes | 07:53 |
210 | Basic Datatypes Challenge | 02:36 |
211 | Creating Your Own Tables | 00:00 |
212 | How Do We Know It Worked? | 02:34 |
213 | Dropping Tables | 01:37 |
214 | Creating Your Own Tables Challenge | 04:30 |
215 | Section 4 Introduction | 01:41 |
216 | Inserting Data | 05:04 |
217 | Super Quick Intro To SELECT | 02:09 |
218 | Multiple INSERT | 03:01 |
219 | INSERT Challenges | 01:36 |
220 | INSERT Challenges Solution | 04:44 |
221 | MySQL Warnings | 05:36 |
222 | NULL and NOT_NULL | 06:55 |
223 | Setting Default Values | 07:18 |
224 | A Primer On Primary Keys | 12:22 |
225 | Table Constraints Exercise | 01:52 |
226 | Table Constraints Exercise Solution | 03:35 |
227 | Section 5 Introduction | 01:31 |
228 | Introduction to CRUD | 01:45 |
229 | Preparing Our Data | 02:30 |
230 | Official Introduction to SELECT | 04:19 |
231 | Introduction to WHERE | 05:06 |
232 | SELECT Challenges | 02:01 |
233 | SELECT Challenges Solution | 02:46 |
234 | Introduction to Aliases | 02:56 |
235 | The UPDATE Command | 03:59 |
236 | UPDATE Challenges | 00:38 |
237 | UPDATE Challenges Solution | 03:59 |
238 | Introduction to DELETE | 04:42 |
239 | DELETE Challenges | 01:12 |
240 | DELETE Challenges Solution | 02:46 |
241 | Section 6 Introduction | 01:53 |
242 | CRUD Exercise Overview | 07:27 |
243 | CRUD Exercise Create Solution | 05:56 |
244 | CRUD Exercise Read Solution | 01:49 |
245 | CRUD Exercise Update Solution | 04:11 |
246 | CRUD Exercise Delete Solution | 03:22 |
247 | Section 7 Introduction | 02:05 |
248 | Running SQL Files | 10:16 |
249 | Loading Our Book Data | 05:26 |
250 | Working with CONCAT | 11:08 |
251 | Introducing SUBSTRING | 10:05 |
252 | Introducing REPLACE | 06:40 |
253 | Using REVERSE | 03:40 |
254 | Working with CHAR LENGTH | 04:55 |
255 | Changing Case with UPPER and LOWER | 03:21 |
256 | String Function Challenges | 04:43 |
257 | String Function Challenges Solution | 13:09 |
258 | Section 8 Introduction | 00:36 |
259 | Seed Data: Adding A Couple New Books | 02:48 |
260 | Using DISTINCT | 08:25 |
261 | Sorting Data with ORDER BY | 11:20 |
262 | Using LIMIT | 09:04 |
263 | Better Searches with LIKE | 07:43 |
264 | LIKE Part 2: More Wildcards | 06:10 |
265 | Refining Selections Exercises | 04:53 |
266 | Refining Selections Exercises Solution | 12:30 |
267 | Section 9 Introduction | 03:57 |
268 | The Count Function | 08:39 |
269 | The Joys of Group By | 12:23 |
270 | Note about SQL Mode only_full_group_by | 04:20 |
271 | Min and Max Basics | 04:13 |
272 | SUBQUERIES - A Problem with Min and Max | 07:16 |
273 | Using Min and Max with Group By | 06:40 |
274 | The Sum Function | 04:28 |
275 | The Avg Function | 06:01 |
276 | Aggregate Functions Challenges | 04:28 |
277 | Aggregate Functions Challenges Solution | 09:11 |
278 | Section 10 Introduction | 01:57 |
279 | CHAR and VARCHAR | 14:30 |
280 | DECIMAL | 06:09 |
281 | FLOAT and DOUBLE | 07:45 |
282 | DATE, TIME, and DATETIME | 04:32 |
283 | Creating Our DATE data | 05:50 |
284 | CURDATE, CURTIME, and NOW | 05:16 |
285 | Formatting Dates | 14:30 |
286 | Date Math | 09:41 |
287 | Working with TIMESTAMPS | 10:55 |
288 | Data Types Exercises | 04:51 |
289 | Data Types Exercises Solution | 13:59 |
290 | Section 11 Introduction | 02:45 |
291 | Not Equal | 04:27 |
292 | Not Like | 02:35 |
293 | Greater Than | 10:05 |
294 | Less Than | 03:49 |
295 | Logical AND | 09:48 |
296 | Logical OR | 06:42 |
297 | Between | 10:58 |
298 | In And Not In | 11:48 |
299 | Case Statements | 11:22 |
300 | Logical Operators Exercises | 06:46 |
301 | Logical Operators Exercises Solution | 17:48 |
302 | Section 12 Introduction | 01:58 |
303 | Real World Data Is Messy | 10:29 |
304 | Types of Data Relationships | 04:38 |
305 | One To Many: The Basics | 12:34 |
306 | Working With Foreign Keys | 12:05 |
307 | Cross Join | 07:37 |
308 | Inner Join | 12:46 |
309 | Left Join | 15:18 |
310 | Right Joins Pt 1 | 10:37 |
311 | Right Joins Pt 2 | 09:52 |
312 | Right and Left Joins: A Common Question | 03:10 |
313 | Our First Joins Exercise | 06:59 |
314 | Our First Joins Exercise SOLUTION | 09:11 |
315 | Our First Joins Exercise SOLUTION PT. 2 | 09:22 |
316 | Section 13 Introduction | 01:55 |
317 | Many To Many Basics | 10:49 |
318 | Creating Our Tables | 10:58 |
319 | TV Joins Challenge 1 | 04:50 |
320 | TV Joins Challenge 2 | 06:23 |
321 | TV Joins Challenge 3 | 05:00 |
322 | TV Joins Challenge 4 | 06:00 |
323 | TV Joins Challenge 5 | 04:57 |
324 | TV Joins Challenge 6 | 11:58 |
325 | TV Joins Challenge 7 | 07:10 |
326 | Section 14 Introduction | 01:20 |
327 | Introduction To Instagram Clone Schema | 08:32 |
328 | Cloning Instagram's DB: Users Schema | 06:09 |
329 | Cloning Instagram's DB: Photos Schema | 06:38 |
330 | Cloning Instagram's DB: Comments Schema | 06:40 |
331 | Cloning Instagram's DB: Likes Schema | 07:42 |
332 | Cloning Instagram's DB: Followers Schema | 07:21 |
333 | Cloning Instagram's DB: Hashtags Part 1 | 10:35 |
334 | Cloning Instagram's DB: Hashtags Part 2 | 05:27 |
335 | Section 15 Introduction | 01:43 |
336 | Loading The JUMBO dataset | 08:31 |
337 | Instagram Clone Challenge 1 | 04:54 |
338 | Instagram Clone Challenge 2 | 06:42 |
339 | Instagram Clone Challenge 3 | 07:23 |
340 | Instagram Clone Challenge 4 | 07:06 |
341 | Instagram Clone Challenge 5 | 03:14 |
342 | Instagram Clone Challenge 6 | 05:30 |
343 | Instagram Clone Challenge 7 | 05:16 |
344 | Section 16 Introduction | 01:37 |
345 | MySQL and Other Languages | 09:00 |
346 | BUT WHAT ABOUT PHP | 07:35 |
347 | Introduction to JOIN US app | 08:01 |
348 | 5 Minute NodeJS Crash Course | 06:13 |
349 | Introduction to NPM and Faker | 09:12 |
350 | Introducing the MySQL Package | 04:54 |
351 | Connecting Node to MySQL | 12:47 |
352 | Creating Our Users Table | 06:55 |
353 | Selecting Using Node | 06:16 |
354 | Inserting Using Node | 11:32 |
355 | Some MySQL/Node Magic | 07:42 |
356 | Bulk Inserting 500 Users - Finally! | 08:41 |
357 | 500 Users Exercises | 02:31 |
358 | 500 Users Exercises Solutions | 11:56 |
359 | Section 17 Introduction | 01:53 |
360 | Introducing Express | 05:41 |
361 | NPM Init and package.json files | 06:39 |
362 | Our First Simple Web App | 16:34 |
363 | Adding Multiple Routes | 09:57 |
364 | Connecting Express and MySQL | 11:09 |
365 | Adding EJS Templates | 16:03 |
366 | Connecting The Form | 18:33 |
367 | Styling Part 1 | 08:25 |
368 | Styling Part 2 | 08:17 |
369 | Introduction to Database Triggers | 06:11 |
370 | Writing Our First Trigger Part 1 | 07:28 |
371 | Writing Our First Trigger Part 2 | 11:37 |
372 | Preventing Instagram Self-Follows With Triggers | 08:17 |
373 | Creating Logger Triggers | 10:18 |
374 | Managing Triggers And A Warning | 06:13 |