S01 Kick-off
  • 2018 update
  • S01-L01 Introduction & kick-off
  • S01-L02 How to get most out of this course?
  • S01-L03 Environment setup
  • Side note: How to install MySQL
  • Side note: Important resources
  • S01-L04 Sample database
  • S01-L05 What can I really do BEFORE the course?
  • S01-L06 Checklist before jumping on section S02
  • UPDATE [Dec 2017] - Slack
S02: Coding and style conventions
  • S02-L01 Intro: Coding style and conventions
  • S02-L02 How to write a beautiful query? (Video part 1/2)
  • S02-L02 How to write a beautiful query? (Video part 2/2)
  • S02-L03 My personal best practices (Video part 1/3)
  • S02-L03 My personal best practices (Video part 2/3)
  • S02-L03 My personal best practices (Video part 3/3)
  • S02-P01 Coding practice
  • S02-P02 Coding practice
  • S02-P03 Coding practice
S03 Indexes
  • S03-L01 Intro: Indexes & why to use them?
  • S03-L02 Unique index
  • S03-L03 Composite index
  • S03-L04 Partial index
  • S03-L05 Index hints (Use, Force, Ignore)
  • S03-L06 Functions on indexed columns
  • S03-L07 Using two indexes in one query for the same table
  • S03-P01 Coding practice
  • S03-P02 Coding practice
  • S03-R01 Additional reading: MySQL 5.7 Create Index
  • S03-R02 Additional reading: How MySQL Uses Indexes?
  • S03-R03 Additional reading: Multiple-Column indexes
  • S03-R04 Additional reading: Index hints
S04 Partitions
  • S04-L01 Intro: Partitions & why to use them?
  • S04-L02 How to work with partitions?
  • S04-P01 Coding practice
  • S04-R01 Additional reading: Partitioning overview
  • S04-R02 Additional reading: Partitioning types
  • S04-R03 Additional reading: Partition selection
  • S04-R04 Additional reading: Partitioning MySQL database with high load solutions
S05 Variables
  • S05-L01 Intro: Variables & why to use them?
  • S05-L02 Session variable
  • S05-P01 Coding practice
  • S05-R01 Additional reading: Show Variables
  • S05-R02 Additional reading: User-defined variables
  • S05-R03 Additional reading: Advanced MySQL user variable techniques
S06 Analytic functions
  • S06-L01 Intro: Analytic (window) functions
  • S06-L02 ROW_NUMBER()
  • S06-P01 Coding practice
  • S06-R01 Additional reading: Difference between ROW_NUMBER, RANK and DENSE_RANK
  • S06-R02 Additional reading: PostgreSQL Window Functions
  • S06-R03 Additional reading: How to select the first_least_max row per group
  • S06-R04 Additional reading: How to number rows in MySQL?
S07 User-defined functions
  • S07-L01 Intro: Functions & why to use them?
  • S07-L02 Relevant coding standards
  • S07-P01 Coding practice
  • S07-R01 Additional reading: Create procedure and function
  • S07-R02 Additional reading: CREATE FUNCTION Syntax for User-Defined Functions
  • S07-R03 Additional reading: Adding a New User-Defined Function
  • S07-R04 Additional reading: FAQ- Stored Procedures and Functions
S08 Stored procedures
  • S08-L01 Intro: Procedures & why to use them?
  • S08-L02 How to write procedures?
  • S08-L03 Events
  • S08-P02 Coding practice
  • S08-P01 Coding practice
  • S08-P03 Coding practice
  • S08-R01 Additional reading: SHOW PROCEDURE STATUS Syntax
  • S08-R02 Additional reading: Using Stored Routines (Procedures and Functions)
  • S08-R03 Additional reading: Procedures, Functions, Triggers, LAST_INSERT_ID
S09 Cursors
  • S09-L01 Intro: Cursors & why to use them?
  • S09-L02 Cursor in a procedure
  • S09-P01 Coding practice
  • S09-R01 Additional reading: Cursors
  • S09-R02 Additional reading: Cursor DECLARE syntax
  • S09-R03 Additional reading: Cursor FETCH syntax
  • S09-R04 Additional reading: Cursor CLOSE syntax
  • S09-R05 Additional reading: Cursors in MySQL stored procedures
Next steps
  • What can I really do AFTER the course?
  • Course review
  • Next steps & conclusion