No, there isn't. But I don't see the need to start with these commands anyway. Or if the OP really feels like that's a necessary starting point, it would be great to have an option in the future to select what DBMS you're using. I wasn't intending to bash the work, but sticking to a single DBMS really limits the utility of what seems like it could be very general resource.
I like the idea of being able to select which dialect one wants to learn and maybe a table listing the most prominent differences (like LIMIT vs. TOP) at the end, would be nice too.
In theory `information_schema` is supposed to be universal, so you could do `select table_name from information_schema.tables`. However, getting useful information out of `information_schema` tends to require fairly complex queries and still has quirks and differences between databases.
Agreed, just add a few more steps to do joins as that's probably one of the most common requests that people need to do. Even providing a few basic inner or left joins could be enough.
It was created in a hackathon and uses sql.js, you can also create your own exercises through sql.js if you know a thing or two about web development ;)
Hi,
My name is Eugene and we made this little online SQL language trainer to help non-programmers to learn basic SQL queries. And more important, it shows the result of query entered.
Any suggestions and comments are welcome!
and many thanks for all the suggestion already made! And seems like we should better remove MySQL specific command from the very first question.
Hey Eugene! In the last question, it seems you can get the same result by doing top 3, or limit 3, but only limit 3 is accepted as valid. You might either want to, if there's a valid reason for the distinction (execution order?), want to highlight as the difference between top and limit, or if there isn't, accept both.
Something that all of these tools (?) are missing are tutorials around concurrency, allowing multiple sessions to be in progress, interfering with each others operation. TBH this is an under-taught area of databases in general.
I have vague ideas about building a browser-based tool that allowed the user to queue up operations to be performed in order in multiple concurrent database sessions, allowing exact locking & blocking behaviour to be experimented with, but have never had time to work on this.
This is great, lots of my classes are using textbooks similar to this. On (13) "Please type SQL query to get 3 largest orders from orders table", it doesn't really tell you what column to order the results by.
Just to toot my own horn - I wrote a book called SQL Practice Problems (available on Amazon), plus I also have an expanded problem set on my website SQLPracticeProblem.com.
The framework for the problems is that you get the problem statement, the expected results, and then you figure out how to write the SQL to get the results. I have lots of hints if you get stuck, but there's also a hint-free version, which some people prefer.
It really helps for people who like a "learn-by-doing" approach.
Looks cool. But in my experience, theoretical understanding and some simple proofs are quite important in mastering SQL. I would suggest the intro to DB online course offered by Stanford.
49 comments
[ 3.9 ms ] story [ 137 ms ] threadI mean using a specific sqlite/oracle/tsql/... command wouldn't be any better.
This 'Late Payment Email generator' by same person is pretty good : ) I hate figuring out how to write those
https://app.bytescout.com/generate-payment-reminder-email/ge...
It was created in a hackathon and uses sql.js, you can also create your own exercises through sql.js if you know a thing or two about web development ;)
(Creator of SQL Teaching)
Any suggestions and comments are welcome!
and many thanks for all the suggestion already made! And seems like we should better remove MySQL specific command from the very first question.
That would be very useful, aka user chooses Oracle, MySQL, MS-SQL, etc.
Interactive PostgreSQL SQL Tutorial - https://chartio.com/learn/sql/
Select STAR SQL - https://selectstarsql.com/
SQL Bolt - https://sqlbolt.com/ - Learn SQL with simple, interactive exercises
SQL Window functions - https://www.windowfunctions.com/
PostgreSQL Exercises - https://pgexercises.com/
SQL Zoo - http://sqlzoo.net/
SQL Teaching - https://www.sqlteaching.com/
I have vague ideas about building a browser-based tool that allowed the user to queue up operations to be performed in order in multiple concurrent database sessions, allowing exact locking & blocking behaviour to be experimented with, but have never had time to work on this.
The framework for the problems is that you get the problem statement, the expected results, and then you figure out how to write the SQL to get the results. I have lots of hints if you get stuck, but there's also a hint-free version, which some people prefer.
It really helps for people who like a "learn-by-doing" approach.
Is there any database other than MySQL that does that?