
This course overhaul removes Cloud9 and runs entirely locally with MySQL Workbench, updated to 8.x with new topics like check constraints, alter table, with rollup, and window functions.
Start by presenting the instructor, syllabus, and course scope, then dive into hands-on MySQL coding in the browser with no install required by the fifth minute, covering projects and assignments.
Meet the instructor and the course TA Blue, with five years of teaching web development bootcamps, now bringing the in-person curriculum online for this MySQL bootcamp.
access the MySQL bootcamp course code across hundreds of videos through text lectures labeled code, which include the previous lecture’s code and reduce the need for downloads.
Explore how to run basic SQL queries in a browser, and use select, inner join, group by, and order by to analyze customers and orders in a sample database.
Explore what makes a database versus a programming language, explain SQL versus MySQL, then install MySQL and run your first basic commands.
Define a database as a structured data collection with an accessible interface, and distinguish it from the database management system that talks to it, with examples like MySQL and SQLite.
Learn how SQL, the structured query language, powers database interactions, and how MySQL fits into the SQL ecosystem alongside other relational DBMS, with similar syntax and feature-driven differences.
Install MySQL server on Mac and Windows, use terminal or MySQL Workbench to write and run queries, compare interfaces, and view results from the same server.
Install MySQL on Windows using the installer, customize options to avoid unwanted plugins, configure the server and root password, and use Workbench or the command line client to run queries.
Install and configure MySQL on a Mac by downloading the community server, setting a root password, and updating the terminal path. Then install MySQL Workbench and test the connection.
Dive into section 3 and move from basic commands to creating, deleting, and managing databases and tables in MySQL. Practice using, switching databases, and describing tables through hands-on exercises.
Explore creating and managing separate databases in a MySQL server, using dog walker and soap shop examples to illustrate data silos and the show databases command.
Create empty databases using the create database command, choose meaningful, unique names, and manage them from both the MySQL shell and Workbench, then learn to delete them.
Learn how to safely drop a database and switch between databases using use, select database, and double-click methods in MySQL tools like DbGate and Workbench.
Explore the heart of sql by learning how tables organize data inside a relational database, including columns, rows, and how to define and populate a table.
MySQL data types define table structure by enforcing column content, focusing on int and varchar; learn how signed and unsigned integers and variable-length text support names, ages, and breeds.
Model a tweets table using data types: username varchar(15), content up to 140 characters, and favorites as int, with mock data to reinforce SQL table design.
Create tables by naming the table and listing each column with a data type, separated by commas and ended with a semicolon, as shown with cats and dogs.
Learn to verify a created table in MySQL by using show tables, show columns from table, or describe (desc), and compare results in CLI and graphical tools like workbench.
Use drop table to delete a single table and erase its contents, and drop it via GUI tools like DbGate or Workbench.
Practice creating and dropping a pastries table with columns name (varchar 50) and quantity (int), then inspect the table with show tables and describe pastries before deleting it.
Discover SQL comments by prefixing lines with two dashes and a space to ignore code in files, not run in the workbench or command line, and toggle them.
Practice inserting data into the cats table and executing insert commands, then retrieve records with select to view the last five cats and the names of Russian Blue cats.
Learn how to insert data with the insert into statement, specify column order for name and age, and insert into the cats table in a pet shop database.
Use the basic select command to view all rows in the cats table, confirming two entries with correct name and age values visible in SQL Workbench.
Master multi-inserts in MySQL by inserting multiple rows at once with a consistent column order. Ensure values match column types to avoid errors like non-integer data for age.
Create a MySQL table named people with first_name, last_name, and age, insert multiple records, verify with select, then drop the table.
Learn how null values differ from missing data, and how the not null constraint enforces values in MySQL, with examples of defaults and insertion errors.
Use single quotes to wrap text in MySQL varchar values, escape inner quotes with a backslash, and avoid double quotes to prevent cross-flavor sql errors.
learn how to add default values to MySQL columns using the default keyword, understand not null versus default, and see how defaults behave during inserts.
Learn how a primary key provides a unique, not-null identifier for each row, using an integer cat_id to prevent duplicates and distinguish identical records.
Learn how to define a primary key in MySQL using inline and separate syntax, then enable auto_increment to automatically assign unique cat_id values for each row.
Create an employees table with id as an auto_increment primary key and columns last_name, first_name, middle_name, age, and current_status, applying not null and default 'employed' constraints.
Master the four fundamental crud operations—create, read, update, and delete—in MySQL, reinforcing insert and select while preparing for extensive hands-on exercises.
Discover the basics of crud in MySQL, covering create, read, update, and delete of individual rows with insert into and select.
Drop and recreate the cats table, insert seven sample rows with id, name, breed, and age, then query with select star from cats to practice reading in CRUD.
Learn how to read data in MySQL with select, choosing specific columns or all columns. See examples selecting name, age, or name and breed from cats.
Learn how the where clause narrows rows in sql by filtering with age or name. Apply it across select, update, and delete operations, including case-insensitive text matching.
Tackle rapid-fire sql exercises on the cats table, select cat_id, name, and breed; filter tabby cats to show name and age, and print cat_id and age where cat_id equals age.
The solution video guides you through rapid fire sql practice, selecting cat_id, then name and breed, and finally name and age for tabby cats, with cat_id equals age.
master aliases in sql to rename output columns using the as keyword, making results shorter and clearer, with temporary renaming like cat_id to id and name to kitty_name.
Learn how to update rows in MySQL using the update query: specify the table, use set to change columns, and apply where to target rows, including multiple fields.
Test your where clause before updating or deleting in SQL to avoid accidental mass changes; select target records first, then run the update or delete on large datasets.
Update exercise to modify the cats table: rename Jackson to Jack, set Ringo's breed to British Shorthair, and set Cindy and Dumbledore's ages to 12.
Update Jackson to Jack, Ringo to British Shorthair, and both Maine Coon cats to age 12 in MySQL, using where clauses and selects to verify results.
Learn how to delete rows in SQL using delete from, understand when to use where clauses to avoid emptying a table, and practice with a deletion exercise.
Practice deleting in MySQL with the cats table; remove four-year-old cats and any rows where age equals cat_id, using cat_id and age as the basis, then empty the table.
Execute delete operations to remove specific rows from cats: delete where age = 4, delete where age = cat_id, then delete all remaining rows, with confirmations and results shown.
This section features challenges and exercises that have you practice all SQL commands learned so far—from creating databases to CRUD operations—using an inventory dataset built around shirts.
Learn to build shirts_db and shirts with shirt_id as primary key auto_increment, article, color, shirt_size varchar, and last_worn int, and perform full CRUD (insert, select, update, delete) and drop table.
Create a shirts_db database, use it, and create a shirts table with shirt_id as primary key, article, color, shirt_size, and last_worn. Insert and verify data with describe and select.
Practice hands-on SQL with the shirts table by selecting article and color, filtering by medium sizes with the where clause, and excluding shirt_id in targeted column lists.
Update shirts to set polo shirt sizes to L, reset last worn from 15 to 0, and change white shirts to off white with size XS.
Demonstrates deleting records in MySQL with delete from shirts where last worn = 200, testing with select star from shirts, and finally dropping the shirts table.
Explore a books dataset to model titles, genre, authors, reviews, ratings, and release dates as you rebuild a bookstore's inventory system using sql string functions for data selection.
Master built-in string functions in MySQL to transform text—with uppercase and lowercase, length, reverse, and replace—and practice using them in select queries, setting up a table for consistent results.
Load a books dataset into a MySQL database by creating a bookshop database, importing a books table from a SQL file, and using GUI or command-line options.
Master CONCAT and CONCAT_WS to join strings from columns into full names and dash-separated slugs. Alias results for clear column names and practice with real data in SQL queries.
Master MySQL substring usage to extract text segments by start position and length, including negative indexing, with practical examples from Hello world and book titles.
Combine substring and concat to create shortened titles with ellipses and generate author initials by nesting substring and concat in MySQL, exploring practical string manipulation.
Format sql code for readability using popular sql formatters in MySQL Workbench, DbGate, and VS Code. Apply consistent formatting to produce clean, readable queries before using the replace function.
Use the sql replace function to substitute the target substring with a replacement using three arguments, without changing data. Spaces become hyphens in book titles to illustrate case sensitivity.
Discover how the reverse function reverses any string in sql, preserving casing, and how null values return null. See examples with author names and their reverse concatenated to form palindromes.
Discover how char_length counts characters in a string while length returns bytes, with examples using select char_length on titles to reveal character length.
Master string casing with upper and lower, including UCASE and LCASE aliases, by transforming titles and building concatenated outputs like I love The Namesake!!!
Explore insert, left, right, repeat, and trim string functions in MySQL, showing how to insert substrings, extract ends, and repeat patterns. Trim can remove leading or trailing characters from data.
Practice advanced string functions in SQL through an open-book exercise using a books dataset, including reverse and uppercase, replace spaces with arrows, name formatting, blurbs, character counts, and stock outputs.
Master string functions in MySQL by reversing and uppercasing text, replacing spaces, and concatenating fields, with aliases, substrings, and character counts on books and authors.
Explore advanced MySQL features by limiting results and sorting books data, learning to fetch top five by sales, title, or genre, and completing practical exercises.
Explore refining queries by ordering and sorting results, retrieving distinct rows, and limiting the number of results, while adding new books to the books table to demonstrate changes.
Explain how the distinct clause eliminates duplicate results in SQL queries, with examples using distinct author last names, distinct years, and distinct full names via concat or multiple columns.
Learn how to sort query results using order by after select, control ascending and descending order, handle NULLs, and sort by author_lname, author_fname, pages, and released_year.
Learn how to use order by in MySQL, including sorting by the nth selected column, multi-column ordering (primary then secondary), and ordering by aliases created with concat.
Limit controls result counts, often with order by to fetch the first five or most recent rows, and you can start at a row and count how many.
Explore how the MySQL like operator enables fuzzy searching by using percent and underscore wildcards to match patterns, including zero or more characters.
Demonstrate escaping wildcards in SQL with a backslash to match literal percent signs and underscores, enabling precise like queries that find strings like 10% Happier.
Practice refining selections in a MySQL bootcamp using a books dataset: filter story titles, identify the longest book, and print a summary of the three most recent books by year.
Master practical MySQL queries: filter titles with like and wildcards, find longest books, format summaries with concat, rank by year or stock, handle nulls, and apply aggregate insights.
Analyze data with aggregate functions by grouping books by authors, years, and genres to compute averages, counts, and sums, then identify power users and top hashtags.
Explore aggregate functions and count basics in MySQL, counting rows, counting values in a column, and counting distinct values, with practical examples on books data and handling nulls.
Learn how group by groups rows by a column to form mini groups, then apply aggregates like count, min, max, and sum to summarize data.
Use min and max to find the earliest release year and the longest book in books, with and without group by, and learn why max pages doesn’t reveal the title.
Apply subqueries to fetch the full row or just the title of the book with the highest pages, comparing order by with limit to a nested select using max.
Learn how to group by multiple columns in MySQL, such as author_fname and author_lname, count grouped rows, and even group by a concatenated full name using CONCAT and aliases.
Learn how to use min and max with group by to compute earliest release year per author and latest release year; count, alias, and display longest page count.
Learn how to use the sum aggregate function to total values across a table and by groups, using group by to sum pages by author and explore non-numeric edge cases.
Master the aggregate functions avg, sum, min, max, and count, and use group by released year to compute averages and counts, such as average stock by year.
Explore the aggregate functions docs and learn the common ones such as average, count, max, min, and sum, and note the standard deviation option std plus a few less-used functions.
Practice aggregate queries on the books dataset using group by year, sum, average, and min-max functions to compute totals, yearly counts, stock, author averages, and longest book.
Explore aggregate functions in MySQL by counting books, grouping by released year, summing stock, and averaging release years per author, plus finding full author names for the longest book.
Explore the core data types in MySQL beyond varchar and integers, including decimals, currencies, dates, times, and timestamps, with practical exercises on create table and insert statements.
Explore core MySQL data types, focusing on numeric types, string types (char and varchar), and date, time, and timestamp types, while noting many other types exist but are less used.
Explore char versus varchar in MySQL, comparing fixed-length storage with spaces, variable-length efficiency, and use cases like state abbreviations, plus data-too-long errors.
Explore numeric data types in MySQL, from int to bigint, focusing on storage size, signed versus unsigned, and practical examples like a parent's number of children.
Learn how the decimal data type stores precise numbers with decimals, using decimal(5,2) in a products table, and observe truncation warnings when values exceed precision.
Compare float, double, and decimal in mysql, noting float uses 4 bytes and double 8, with precision limits around seven and fifteen digits, guiding when to choose decimal or bigint.
Explore MySQL date and time types, including date, time, datetime, and timestamps. Learn how to store values, perform basic calculations, and handle intervals and durations.
Learn to use date, time, and datetime types in MySQL by creating a simple people table, inserting birth date, birth time, and birth datetime, and performing date operations.
Use CURDATE, CURTIME, and NOW to insert a new row with the current date, time, and timestamp, recognizing these short forms map to the full current_date, current_time, and current_timestamp.
Learn to format dates and extract components with MySQL date and date-time functions, including day of month, day of week, day of year, month name, and year from birth dates.
Explore MySQL time functions to extract hour, minute, and second from date time values and to isolate the date or time portions, with birth time examples.
Format dates and times in MySQL with date_format using a format string. Use specifiers like %b, %M, %a, %e, %D, and %r to display month names, weekdays, day, year, time.
Learn MySQL date and time math with datediff, date add, date sub, timediff, addtime, and subtime to compute days, add intervals, and determine 18th and 21st birthdays.
Compare timestamp and datetime types, highlighting storage savings, date range differences (1970–2038 vs 1000–999999), and practical use cases for events, updates, and timestamp functions like timestampadd and timestampdiff.
Demonstrates a created_at timestamp with a default current timestamp so new rows record when created. Updated_at uses on update current timestamp to refresh on changes; explains timestamp versus date time.
practice MySQL data types with an end‑of‑section exercise on char versus varchar. cover datetime vs timestamp, current time and date formats, and simple table creation for inventory and tweets.
Explore MySQL data types including char, varchar, decimal and timestamp, compare datetime versus timestamp, and practice date formatting with now and date_format while building a tweets table.
This course was completely redone and rebuilt from the ground up, with over 325 brand new videos recorded. The course is compatible with the latest MySQL versions and covers new topics including: Window Functions, Views, and SQL modes.
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. 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
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
Work with MySQL 8.x Window Functions: RANK, LEAD, LAG, NTILE, etc.
Create MySQL database views and virtual tables
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!