https://sql100.pythonanywhere.com
Thus far have I come in my learning. This is the second project in the 100daysofsql challenge I started a few months ago. During the challenge, one of the major issues I faced was finding a site with a lot of practice questions. Most sites either require paying a stipend while others require a relatively high amount before users can run queries. The primary objective of this project is to provide an alternative to anyone who wishes to practice structured query language for free. I am not an SQL expert nor a database analyst but the little I can offer have I offered.
This project was deployed to PythonAnywhere using a free tier account, any support to help scale it up is very much welcomed. You can reach me using any of the media outlined in the contact section.
While working on this project locally, I used MySQL Server 8.0.28 which allowed the flexibility of using Window Functions, Stored Procedures, Functions and some other cool concepts. However, the problem started during deployment to PythonAnywhere's free tier account which uses a MySQL server version of 5.7.34. A lot of problems were encountered due to a change in server versions. The first problem came with Window Functions which was not supported until version 8.0 (April 19, 2018). To my surprise, the queries below are not equivalent i.e. one can't be used in place of the other
SELECT * FROM Students LIMIT 5;
SELECT * FROM students LIMIT 5;
To further this conundrum 😞, queries that involve ordering on a column containing duplicates yield different results when execute multiple times. To this end, most questions had to be adjusted and a few queries had to be rewritten to allow for compatibility. If you, therefore, notice an unusual output, consider the server version while writing queries. If you encountered a bug or observed something else such as an incorrect answer or query result, kindly use the discussion section or reach me using any of the media outlined in the contact section. This project wasn't meant to be deployed to a specific website from the start, if server versions had been considered, issues involving compatibility and the ones mentioned earlier would be completely avoided.
For the sake of practice with different RDMS and server versions, all datasets used in this project have been made available and can be found here.
NB: These datasets were generated programmatically with a few python scripts; they are not and should not be assumed to be a reflecting of a real world data!
- MySQL Documentation(5.7)
- MySQL Documentation(8.0)
- javaTpoint
- MySQL Beginner to Expert - Colt Steele
This project's source code has been pushed to a private repository. If you wish to contribute by adding more features or questions, kindly reach out to me.
You can contact me using any of the media below
- Gmail - [email protected]
- LinkedIn - https://www.linkedin.com/in/oyebamiji-micheal
- Twitter - @MichealOjuri
- WhatsApp - +234 7019113012