SQL Exercises is intended for acquiring good practical experience,
which is focused on data operation, namely on SQL DML. Certain exercises for beginners are provided on the site,
they are supplied with the necessary reference source on SQL syntax with a great number of examples.
Apart from them, 3 rating stages are suggested, they are aimed at testing of specialists and their certification.
The source is absolutely free of charge, and the certificate purchase has a voluntary basis.
NOTE: Your browser should support Cookies and Javascript to provide correct usage of this site. If you use content filter,
it should allow opening child windows to explore help pages.

Feedback

Today I finished the last task (#137).
I enjoyed it all a lot.
The extraordinary idea of creating this site is supported by perfect realization and qualified administrating.
There hadn't been a case when developers and moderators wouldn't answer my questions within a few hours. This resource is especially useful for those who don't have SQL Server. But those who do, hardly get serious problems which require a thought's flight often, but here is a bunch of cases like that.
SQL help and FAQ delivers from web surfing for information.
As to the imperfections, they are: inaccurate wording of some tasks, and the main base which is too small and returns an empty table as a correct result on some queries.
And, of course, the rating is great. The competitive spirit is a very strong motivation.
In general, if you complete at least a hundred tasks, you can be sure to cope with any real problem.

On last Friday I have solved the last task #137 at the moment.
I have received a lot of positive emotions and practical knowledge.
Working problems are being solved much more easyly now.
I began to use more actively subqueries, "hand-made" tables, and learned a lot news on optimization.
My thank to the developers of the project for magnificent realization of fine idea.
I thankful to Moiseenko S.I., the project manager, for his responsiveness, attention to the participants, and help.
I thank the participants of the project, who shared magnificent ideas of solutions
and who have gone alongside in a distance, helping to move forward.
The aspiration to reach top is perfectly stimulated by an atmosphere of competition.
Alternation of heavy and easy tasks is a very good incentive to move forward.
It is a pity that exercises have been over yet.
But I hope that I still will observe reloading of a page with such magic word "Right".

To everyone who's close to the end.
Oh yes! From the 105th exercise you start to realize that this fascinating novel, written in the best traditions of Dumas the father, is soon to be over, and the remainder of the plot is clear. But it's a pity to say goodbye. It would be great to oblige all professionals really working with SQL to submit a problem once a quarter. Then we'd be provided with leisure for time no less than during Babylon-5 showing, fair memory to it.
To the audience, the playwright and the producer:
I rise from the armchair and applause for a long time. And call for an encore. In general, the www.sql-ex.ru project should be appreciated as successful fiction with harmony between structure and content. For the last week I tried to imagine something similar in a different area - for instance, C or C++ programming, or the solution of physics and math problem. It's impossible to copy the concept exactly, I suppose, but, for example, card problems are good for algorithms.
It's a pity that Rostov is far from Moscow. It would be wonderful to chat and have a beer with the people who created this.

This is not bad at all!
Though many tasks are completed easily by copying previous ones and modifying some conditions, and some others need more precise wording. I especially enjoyed questions 89 and 90; it would be good to have more exercises like them.
While I was finding solutions to the exercises, I learned a lot. Now I can set the order in a table without using IDENTITY fields and variables, or, for example, create a table with consistent data (I already use this in my work).
But I still don't like and don't use JOIN (I completed all tasks without using it) - maybe if I have free time I'll do them over.
Keep up the good job!

Many thanks to all the developers of this wonderful resource. Your team has done a difficult job that will benefit many people. But it seems to me that adding 6 exercises after the 130th is a step in the wrong direction. Such an excellent resource must be available to everyone, not only the club members who completed task 98.
So, I think it would be better for people if new tasks didn't require you to pass so many of the previous ones. My opinion is that the rules of the second level should be "humanized".
I understand that telling others how to do their work is much more simple and pleasant than doing it yourself, so I would like to present my apologies in advance.
Thank you once again.
P.S. The day when the answers to www.sql-ex.ru will be available on the internet for all who want to get a certificate is not far off. That's good because the authors of the site will get enough means for its development, and that's what I honestly wish them :-).

I'd like to express my gratitude for the selection of interesting tasks. For me as an enthusiast of solving C++ Olympic tasks and Oracle professional it was fascinating to take part.
Most difficulties in finding solutions were bound with understanding the task conditions. Sometimes it was caused by the task formulation that wasn't precise enough, like, for instance, in one case I couldn't write the query basing on what is "asked" or with "adding" a rational part. Or, for example, in the problem with neighboring places, which places should be considered as neighboring? Of course, it's possible to guess, but while writing almost any solution, up to some phase in the condition, you have to write queries one by one, and they don't influence the result in the test base at all.
That's why I have a question - "incomplete" task condition or "not enough detailed tests" - are they a part of the task (for difficulty increase)?

I have ideas concerning your project and I decided to share them with you.
1. You've noticed sometime that on an employment interview task #24 was suggested. So the employers know what sql-ex.ru is. Then, how about adding an option "Searching for a job" in personal data? And a special rating could be created for such participants. And keep a statistics on people who got a job owing to the project.
2. The statistics on people who registered during the last 24 hours and the number of completed tasks (maybe separately for the 1st and the 2nd levels) could be displayed on the main page.

Evgueni G.Lukin,St.Petersburg, Russia 09-19-2004

Yes, as I noticed, nothing specific was used , no unknown constructions, no procedure extensions.
But I work only with mysql, and, moreover, I need to create queries that are compatible even with the eldest versions. And in mysql, as you know, as well as the subqueries, some other standard abilities are absent (like UNION, for instance). Though it's not a problem of the latest versions.
Thanks again for the tests. If I need a certificate on SQL knowledge, I would definitely purchase it from you; the fact that I've passed 62 tests from the first part assures me in the certificate's quality. I'll go & smoke the DML tests :-)

Mihal Mehura, 04-06-2004

This website is excellent! A great idea, very useful for anyone learning SQL. Congratulations to everyone involved!

Eviluser, 01-07-2004

Well, at last #98 is complete, though not very beautifully.
Now I have a question concerning the time of solution-finding. In fact, two tasks (98 and ~78) took more than 60% of general time, and that's because I had to take a long break from the tests. So, it doesn't matter how long you spent on other tasks, as you can loose your good result because of only one. And the resulting time won't reflect the real professionalism of a participant. I think you understand what I mean and would agree it's not quite fair, especially if a person has to take a break because of outer circumstances. I suppose my letter's not the first one concerning this topic (judging by the discussion at sql.ru).
So, I have a suggestion - define the maximum time that a person spends on a task WITHOUT A BREAK, averagely among the participants. For example, 5 hours. And if this level is exceeded, the time is no longer counted, supposing the person is gone/asleep/moved away/dead and etc. In that way the delay in one test won't have a fatal influence on the result. And the delay in 3-4 tasks already will. That's what is needed for justice.
To my opinion, an approach like this will allow to present more unprejudiced results.

Aleksey Trostyansky, 06-27-2003

I've been programming in sql on vfp for several years but I didn't know even a tiny bit of what I learned on your site, thanks to the tasks.
I'm very thankful to you for the chance to improve my skills.

Smile, 06-07-2003

I have another idea or entreaty; maybe it would be interesting to you? Is it possible to allow viewing the solutions of other users?
That's the way I see it:
1. In personal data a checkbox "allow other users to view my answers" is added.
2. For example, I've completed task #44 and now I have the ability to take a look at its variants done by users who allow viewing. That is, I can see the answers to a specific test only if I've passed it, and if I haven't then it's impossible. For short, those who want to show, they do, others don't.
What is this for?
As to me, I complete the tasks but I don't like some of my solutions - most of them are huge, even up to 10 strings in the text field of the task, while I'd like to learn writing elegantly :-) and see how others do it, the solutions they create. In fact, we learn something new all the time. The forum is probably not the best place to discuss the answers to < SQL.RU > because the meaning of the rating could be lost as a lot of people would begin taking the published results. I think the users would like this idea, but you should know better.

Serguei Laritchev, 04-25-2003

An idea came to me - I think it would be good if a script for creating the data structure (tables and relations) for all tasks could be published. At least, I would definitely use that.

Igor E.Fiodorov, 04-19-2003

Cool! In one day I learned more than in all the time I spent in front of the SQL books. Books are good, but it's impossible to move on without practice.
Thanks.

It was interesting, and that's what I wrote on the forum < SQL.RU >.
Mostly, I don't have any claims on the tests. The only thing I'd wish is to work on the wording. The tasks are translated, and such things should be done very carefully as we have quite different mentality with the foreigners.
The questions are chosen well and the difficulty is rather high. But before publishing the system online it should've been tested better, as there is a lot of censure to the checking system.
The structure of the base is terrible, it's dangerous to train people on such examples as they can decide that it's the top level of programming and may start to copy all the mistakes. So I probably won't give into imagining questions, as I'm used to synthetic keys, reference integrity, consistent data and other civilization delights.