Good comment. IMO, SQL is basically useless on its own. It is a highly marketable and useful skill, but it is hard to learn in a vacuum. It is always being used as a tool in the context of accomplishing some broader goal, and those goals will strongly influence they way SQL is employed. Relational databases are a very important component of applications which need to store vast amounts of categorized data, but you will have no fun sitting in front of a Postgres/MySQL command prompt manually typing in fake entries for a fake schema for a fake inventory / billing application.
To make the most out of relational databases, you need to fiddle around with an application which USES data. This means learning some other programming language like Python, Ruby, Java, C#, Rust, etc. No need to master it, just learn enough get a gist of what it's doing. Write a script in one of these languages to fill up a database with some interesting information, or play around with an already-existing application which makes use of a database.
For instance, there are a bunch of open source media players that read tags from your media library and store them in a sqlite database for faster start-up. Try cracking that thing open and playing around with it (either from the software side or the database side). See how changes to the database are reflected in the software. See how changes in the software are reflected in the database. See how a somewhat advanced (but not enterprise scale) database is organized.
You can also try playing with a vast array of software designed for the web. Content Management Systems like WordPress and Drupal, message boards like SMF, social media software like Lemmy or Mastodon, Wiki software like MediaWiki. These all use relational databases via SQL queries under the hood, and the schemas / queries they employ are heavily optimized.
Iunno if this helps, but I always learned by cracking things open and having fun with it.
Good comment. IMO, SQL is basically useless on its own. It is a highly marketable and useful skill, but it is hard to learn in a vacuum. It is always being used as a tool in the context of accomplishing some broader goal, and those goals will strongly influence they way SQL is employed. Relational databases are a very important component of applications which need to store vast amounts of categorized data, but you will have no fun sitting in front of a Postgres/MySQL command prompt manually typing in fake entries for a fake schema for a fake inventory / billing application.
To make the most out of relational databases, you need to fiddle around with an application which USES data. This means learning some other programming language like Python, Ruby, Java, C#, Rust, etc. No need to master it, just learn enough get a gist of what it's doing. Write a script in one of these languages to fill up a database with some interesting information, or play around with an already-existing application which makes use of a database.
For instance, there are a bunch of open source media players that read tags from your media library and store them in a sqlite database for faster start-up. Try cracking that thing open and playing around with it (either from the software side or the database side). See how changes to the database are reflected in the software. See how changes in the software are reflected in the database. See how a somewhat advanced (but not enterprise scale) database is organized.
You can also try playing with a vast array of software designed for the web. Content Management Systems like WordPress and Drupal, message boards like SMF, social media software like Lemmy or Mastodon, Wiki software like MediaWiki. These all use relational databases via SQL queries under the hood, and the schemas / queries they employ are heavily optimized.
Iunno if this helps, but I always learned by cracking things open and having fun with it.