Databases have been and will be an important topic in computer science and more importantly the real world. They aren't going anywhere, they're fundamental to the survival of most businesses, and they're crucial to understanding how any system works.
Every university is a bit different, but most university's fall into two categories either having their undergrads take an optional database course, or a course that's an overview of SQL and database concepts. Universities that require undergrads to build databases are definitely in the minority. In general this means that self learners with solid fundamentals rival people with degrees!
This weeks edition of Learning Computations drops some of the best resources about databases!
History & Content - Like almost everything in engineering databases where not built in a vacuum, and usually built to solve or improve upon a specific set of issues. Knowing the history and context around anything your learning really helps frame your understanding of it. This wiki link is supplementary.
Stanford database course - This is what I believe to be the quintessential undergrad database course. This course is all about how to use databases. There are details about how things work, but it is more breadth than depth. One thing that kinda sucks is that the resources for the course don't exist anymore. When I took the course it was available on Stanford lagunita, but it doesn't seem to be there any longer. The videos are still there which are the main source of information.
CMU database course - In this course you actually build a database. There is no better way to understand a system than to build it. The professor is great and cares deeply about databases. A quote from his Fall 2018 class - "I really only care about 2 things in my life. The first one is my wife. The second one is databases"
How does a relational database work - To quote the article "the aim of this article is NOT to understand how to use a database". As the name suggests it's about the internals and structure of how a database works.
Use the index luke - to quote the site "A site explaining SQL indexing to developers—no crap about administration." This obviously doesn't cover databases as a whole, but provides a good look at the power of indexes.
Designing Data Intensive applications - This book looks at a lot more than just databases, but it does spend a fair amount of time explaining and helping you understand them. Also, it does a great job for framing why databases are integral to data intensive applications. You’ll see this book mentioned around hacker news, programming subreddits, and everywhere programmers hangout. One negative is that it’s not a great beginner resource, but it’s great if you already have a foothold in databases.
There is a lot (and I mean a lot) of technical content in the resources I just listed. So I’ll provide some guidance on what you should do based on your goals.
If you’re serious about getting an overview, and understanding how to use a database then checkout the Stanford course.
If you already know how to use a database, and are trying to get to the next level of understanding then checkout one of the below resources.