
Course kick-off:
Feedback:
Attached resources:
Learn how to get most out of your investment (time & money). As I prepared lots of SQL queries, practices and additional reading materials, I strongly recommend you go through the attached materials and practice, practice, practice!
Attached resources:
We'll take a look at the tools you should have installed at your localhost.
For Mac I use & recommend:
For Windows & Linux you can use any other tools, there's plenty of them. The tool itself is not important for this course as long as you can write & execute queries in it.
Attached resources:
GitHub repositories you need
I prepared for this course 2 test databases:
In this lecture we'll take a deeper look at where to get the database and the tables in both databases.
There is a detailed guide in a README.md file.
MySQL Workbench: As you can see in the Readme file, can also import the .sql files to MySQL Workbench. Just select in menu File - Run SQL Script. No need to "Open" it, just Run it.
Important info: Quite a lot of people ask why the user_stat table is empty. It's intentional - you will fill it in the next lessons.
Attached resources:
Take the same quiz before and after this course and compare how you've progressed and what you've learned.
Attached resources:
Before you proceed to next sessions & lessons, please make sure you tick all the prerequisites. In this quick lecture we'll take a look at all the prerequisites and hopefully will tick all the boxes :-)
Attached resources:
An easy kick-off of the "real" lectures :-) In this one we'll take a look at the difference between coding style and naming convention. We'll take a look at some really ugly and also beautiful SQL code.
Attached resources:
I'll walk you through several best practices which will make you a master in writing beautiful queries.
This lecture is divided into 2 parts, because Udemy has a limit 20 minutes per one video.
Attached resources:
I'll walk you through several best practices which will make you a master in writing beautiful queries.
This lecture is divided into 2 parts, because Udemy has a limit 20 minutes per one video.
Feedback:
Attached resources:
We'll go through my personal best practices in writing SQL code which I adopted in the last years. The video with ~20 best practices is divided into 3 parts because of Udemy's limit of 20 mins / video.
Additional resources:
We'll go through my personal best practices in writing SQL code which I adopted in the last years. The video with ~20 best practices is divided into 3 parts because of Udemy's limit of 20 mins / video.
Additional resources:
We'll go through my personal best practices in writing SQL code which I adopted in the last years. The video with ~20 best practices is divided into 3 parts because of Udemy's limit of 20 mins / video.
Additional resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Introduction to indexes and a demonstration why it's good to use them - how they can impact query performance with 2-3 mil. rows in a sample table.
Attached resources:
We'll create a unique index in one of the tables in sample database. Then we'll play with INSERT ... ON DUPLICATE KEY UPDATE syntax - there's a nice example waiting for you!
Attached resources:
We'll be looking at a table with a composite multi-column index consisting of 4 columns and we'll analyze the execution plan based on the different where conditions in the query.
Attached resources:
We'll go through a few examples to demonstrate the difference in performance between 2 different partial indexes vs. a regular (non-partial) index.
Attached resources:
We'll take a look at 3 index hints, examples how to use them and how they affect query performance:
Attached resources:
Attached resources:
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Introduction to partitions, why it's good to use them and overview of the main partition types:
Attached resources:
We'll go through a few examples about how to work with partitions. We'll partition the sample_staff.invoice table by different partitions (first by RANGE, then by LIST).
Feedback:
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading (PDF attached).
Introduction to variables & their types:
Attached resources:
We'll focus on the session variables and will write a few queries to demonstrate what are they good for.
Feedback:
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading (PDF attached).
Introduction to the analytic (also called window) functions. I'll show you the regular usage on Postgres and we'll dive into details in the following lectures.
Attached resources:
Let's look at how can we simulate a window function ROW_NUMBER() which doesn't exist in MySQL.
Feedback:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Additional reading (PDF attached).
Additional reading (PDF attached).
Additional reading (PDF attached).
Additional reading (PDF attached).
Introduction to the user-defined stored functions. A simple example will demonstrate what are functions good for.
Attached resources:
We'll take a look at several best practices related to functions (& procedures).
Feedback:
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Introduction to the stored procedures. We'll look at the difference between:
Additional resources:
We'll create two different procedures: one to insert data, the other to select data which we inserted.
Feedback:
Attached resources:
We'll create new events in the Event scheduler, a new table event_logger and a procedure to save data at defined interval.
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Introduction to cursors. What are they good for and how to write them?
Attached resources:
We'll dive deeper into procedures and will define a new cursor in a stored procedure.
Feedback:
Attached resources:
This is your chance to shine! I prepared an assignment for you to train new skills, so let's roll up the sleeves and get to work.
Attached resources:
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Additional reading from MySQL 5.7 reference manual (PDF attached).
Take the same quiz before and after this course and compare how you've progressed and what you've learned.
Please take the time to write a review - I appreciate constructive feedback. It helps me to adjust the course content.
Let's take a look at what should you do next. There's a few resources included in the next steps for you to follow.
Please review the course here on Udemy - it will help others decide if they should enroll to this course or not.
I appreciate all comments. Share the love with other students :)
I designed this course especially for those who already know the basics and wonder how to get to the next level. Maybe you’re a BI analyst, IT specialist, QA analyst, automation tester, DB admin, aspiring data scientist or just passionate to learn SQL. You’ll learn how to use analytic functions, how to take advantage of table partitioning, how to write user-defined functions, procedures with cursors and even how to write beautiful code. All of that with the focus on the most popular open-source database: MySQL.
In this course, we’ll write the code & MySQL queries together. I prepared 2 test databases, 70+ lectures, 4+ hours of video and lots of examples and practices so that you can learn advanced SQL techniques by writing the code. You’ll not learn just by watching me and eating pop-corn. You need to write the queries, and I’ll help you! I believe that’s the only way for you to adopt this new knowledge.
At the end of this course you will not just know these advanced techniques, but also know how to use them in practice.
Anyways, you have nothing to lose. Try this course and if you can honestly say that you learned nothing, just email Udemy, and they will give you a 100% refund within 30 days.
Recent reviews
Video
Course Highlights
We'll go through my personal best practices in writing advanced SQL code which I adopted in the last years. Thus some of the videos are long and content-heavy. I had to divide some of them into three parts because of Udemy's limit of 20 mins/video.
If you are a BI developer, automation tester, data analyst, or a DB admin, I'm sure you'll appreciate the hands-on examples and practices. They will help you understand the concepts and learn them by writing the advanced SQL code for MySQL.
If you have a tech background, you'll like the attached .md files with all the SQL code used in the course.
Please note
Did you know?
Featured Testimonials (see them all on the bottom of this page)
Enjoy & have fun with SQL & MySQL! :-)