A Dev Gym Class

Databases for Developers: Next Level

A free SQL course

A FREE 10-part tutorial to help you improve your Oracle SQL skills.

This course continues where Databases for Developers: Foundations left off, taking you further on your SQL journey.

The class consists of a series of videos introducing concepts, interactive coding sections, and quizzes to test your understanding.

The first module is now open. Join us for SQL-awesomeness! :)

Join 20,660 students    (907 ratings)


Oracle Account Text

You need an Oracle Account to take a class. Click here to sign up.
Already a member of the Oracle Dev Gym? Click here to get back to work.

Course Modules


Null is a placeholder for missing or not applicable information. But it introduces a third state to true/false logic: unknown. This module shows you the correct way to query null values.


A subquery is a query buried in another SQL statement. These come in several varieties. This module explains their differences and how to use them.

Order By and Top-N

To guarantee your results are sorted in a particular way, you must use an order by clause. This module shows you how this works. It goes on to explain how to filter results to show the first N rows of a sorted data set.

Analytic Functions

Aggregate functions summarize data, so you get one row per group. But sometimes you need to see the individual rows in the group alongside the totals. To do this you need analytic functions. But that’s not all. Analytic functions enable you to define sliding windows over your rows. So you can compute running totals with ease. This module gives an overview of how to do this.

Pivot and Unpivot

Sometimes you need to summarize data by week or month. But with the dates as columns instead of rows! So you need to convert the row values into column headings. Or the reverse. This module shows you how to do this with the pivot and unpivot clauses.

Union, Minus and Intersect

You can combine rows from two tables to get all the rows, only those in common or those in one table not in the other. This module shows you how to do this with the set operators union, intersect and minus.

Hierarchical Queries

Often a table stores rows with a parent-child relationship. For example, managers to their employees, folders on your computer, and family trees. This module shows you how to display parents and children next to each other using SQL.


Sometimes when saving a record, you want to add it to the database if it doesn't exist. But if it does, update the existing values instead. So you need an update-or-insert operation. Luckily there’s one statement that does it all: merge. This module shows you how.

Read Consistency

If someone saves changes to a table you’re querying, what happens? At what point do you see their updates? How do you ensure you get a consistent view of the data? This module explains how Oracle Database's read consistency model works and discusses the implications for your code.

Course Review

A recap of the course material and a live Q&A for you to put your questions to the experts! There are no videos or tutorials in this module. Just a series of quizzes to check you've understood all the course material.

Course Reviews

"Chris had explained the topics very brilliantly."

"The most useful aspect was the possibility to practice the exercises on Oracle Live SQL. That alleviate me to install an Oracle Database on my notebook and jump right away to what matter."

"The combination of videos which were both entertaining & informative, Live SQL examples to work through the topics, and the Quizzes is a winning formula! Being able to try out the topics in an online version of the database and then use the Quizzes to reinforce your understanding of those concepts is really useful."

"Great content presented casually but thouroghly"

Frequently Asked Questions

How much does this cost?

Nothing. Nada. Nil. Zilch. That's right, it's 100% FREE!

I missed the start. Can I still join?

Yes! You can join Databases for Developers at any time

When does the course end?

The modules have no fixed end date. Once you're registered you can take open classes whenever you want

What will I learn on this course?

This course will take you beyond basic select statements. For a complete description, see the course outline

How much time will it take?

We estimate that each module will take up to 30 minutes to complete

What if I fall behind?

This is a self-paced course. Once registered, you have lifetime access to these materials to review at any time. So you can complete it at your leisure. But to get the best value from this course we recommend that you complete each module in the week it opens.

What is the format of this course?

The course is a combination of:
  • Videos designed to teach you database concepts.
  • Coding tutorials for you to practice your skills.
  • Quizzes to deepen your knowledge.

Do I need access to an Oracle Database?

No! This is a 100% online course. We've designed the materials so you can complete the course without a database.

Are there free resources where can I practice what I've learned?

Yes! Oracle has the following free offerings:

Will I get a certificate for completing this course?

Yes! If you complete all the exercises then we'll send you a certificate of your achievement.

Which language is this course in?

All the videos and quizzes are in English. The videos include English subtitles

I don't know anything about SQL. Is this course right for me?

This assumes a working knowledge of SQL. If you're starting from scratch, take Databases for Developers: Foundations first.

I already have a good working knowledge of SQL and Oracle Database. Is this course right for me?

We've designed this course to level up your SQL skills. If you're stuck at basic joins, this class is perfect. If you're an advanced user there may be little new for you. But it never hurts to brush up your skills, right? ;)

Have you got any courses on SQL performance tuning?

Yes! Databases for Developers: Performance teaches you the basics of SQL tuning, including how to read execution plans, create indexes, and find slow SQL.

Do you have SQL questions to help me practice?

Yes! Oracle Dev Gym has hundreds of SQL quizzes in its library. All free and available for you to take anytime.

Every Saturday we release a new Oracle Database quiz. This weekly database quiz is a ranked tournament, where you compete against other developers to see who can give the fastest, most accurate answers. Enter each week to see if you can take the top spot!

I still have unanswered questions. Where can I ask them?



About Chris Saxon

Chris Saxon is an Oracle Developer Advocate and quizmaster on Dev Gym. His job is to help you get the best out of the Oracle Database and have fun with SQL! He's also part of the answer team on Ask TOM and creates YouTube videos at The Magic of SQL channel.

More from Chris Saxon