Sql. занимательные задачки

SQL syntax used

User’s queries are executed by SQL server that brings some limitations to the syntax of SQL statements. Now we use Microsoft SQL Server 2019 (15.0) on the rating stages, and MariaDB-10.4 (compatible with MySQL 8), PostgreSQL 12.3, and Oracle Database 11g on the learn stage in addition. That is why You should follow the syntax of these realizations when building queries. It should be noted that SQL syntax, implemented in Microsoft SQL Server, is close to that of SQL-92 standard. But there are some distinctions, among them is absence of NATURAL JOIN of tables. Supplied help on SQL Data Manipulation Language is held in accordance with SQL-92 standard and contains information necessary for solving the exercises. In the same place it is possible to find features of used realization (SQL Server 2005).

Top 100 results shown on the exercise #7

No Surname Seconds dd hh:mm:ss Date
1 Akhmetzyanova A.I. (a.i.akhmetzyanova) 83 0 00:01:23 2020-05-11
2 Kovtunov K.A. (iiyama0x4C) 141 0 00:02:21 2016-07-21
3 Fokin A. (Vizitor ) 166 0 00:02:46 2011-09-24
4 Dubinskij A.V. (_velial) 167 0 00:02:47 2009-11-27
5 Tarasenkov A.V. (tarasenkov) 187 0 00:03:07 2012-08-21
6 Tarshin S.N. (tsn) 202 0 00:03:22 2011-10-10
7 Khaplanov A. (MatArs) 206 0 00:03:26 2011-07-09
8 Petuhov A. (APetuhov) 212 0 00:03:32 2012-08-08
9 Semenikhin A.V. (semenihin) 217 0 00:03:37 2013-06-04
10 Shemanov Yu.A. (shemanov) 218 0 00:03:38 2014-02-17
11 Lapaev M.A. (Si1entAssass1N) 218 0 00:03:38 2015-09-01
12 Timchenko S. (timka__s) 221 0 00:03:41 2011-11-22
13 Rustem (Chesnok) 223 0 00:03:43 2010-01-25
14 Milenkov (wqer) 224 0 00:03:44 2016-05-09
15 Vojnov P.E. (paparome) 224 0 00:03:44 2006-11-20
16 Ovsyankin V.S. (Kazaam) 238 0 00:03:58 2010-07-08
17 K A.Yu. (Dem) 248 0 00:04:08 2018-12-04
18 Fattakhov M.R. (Marsel Fattakhov) 249 0 00:04:09 2012-05-23
19 Kolos O. (the_bald) 253 0 00:04:13 2015-01-14
20 Suprun D. (TimonSP) 253 0 00:04:13 2008-09-21
21 Makarov S.S. (qwerty12345678zxcvb) 256 0 00:04:16 2017-03-29
22 Bradley (bcbradley) 256 0 00:04:16 2012-03-10
23 Shakh (Milfoil) 259 0 00:04:19 2014-02-13
24 Rebrin A. (Hydra86) 262 0 00:04:22 2018-07-15
25 Kushov N.E. (Kushiknik) 270 0 00:04:30 2020-06-01
26 Borzov V.V. (simulacrum) 275 0 00:04:35 2011-06-11
27 Simakin V.A. (Rybak) 277 0 00:04:37 2009-03-12
28 Shayakhmetov V. (DBN) 278 0 00:04:38 2013-01-21
29 Kolosov A.S. (KAS) 280 0 00:04:40 2016-02-26
30 Ryabukhin (Alexandr Ryabukhin) 281 0 00:04:41 2015-09-10
31 Umerov A.N. (Goerik) 289 0 00:04:49 2008-05-22
32 Titov S.S. (Serg84) 290 0 00:04:50 2013-07-03
33 Medvedev (RezZonans) 291 0 00:04:51 2012-04-19
34 Regetsij V.G. (Valeriy Regetsiy) 293 0 00:04:53 2013-12-16
35 Ladonkin (Divankin) 300 0 00:05:00 2013-03-25
36 Hughes (Kristen) 302 0 00:05:02 2011-05-10
37 Gorskij A.V. (kreolman) 303 0 00:05:03 2012-07-14
38 Escal Y. (NotASocialist) 313 0 00:05:13 2017-04-20
39 Kozyr’ D.V. (the_kodv) 320 0 00:05:20 2013-04-12
40 Mosyagin A. (mopnux) 324 0 00:05:24 2008-06-11
41 K (mr_kva) 326 0 00:05:26 2015-09-30
42 Epifanov D. (Owen_sql) 330 0 00:05:30 2010-06-24
43 Evseev D.V. (DerFroG) 334 0 00:05:34 2012-08-05
44 Dmitriev A. (Havr) 336 0 00:05:36 2018-10-30
45 Hotskyy B. (Bohdan Hotskyy) 337 0 00:05:37 2012-08-26
46 Kozharinov A. (bubala) 339 0 00:05:39 2010-12-01
47 Gafarov A.Kh. (toZkopan) 340 0 00:05:40 2014-01-04
48 Samorodov F.A. (Spetsialist) 341 0 00:05:41 2020-05-05
49 Zajtsev D.A. (_d_z_) 344 0 00:05:44 2011-08-19
50 Pavlov E.A. (Eugene Pavlov) 345 0 00:05:45 2013-10-06
51 Golubev D.S. (DmitryGolubev) 346 0 00:05:46 2011-01-19
52 Yunusov R.N. (Ruslan1707) 349 0 00:05:49 2010-08-29
53 Nikolaev (hardcorn1) 349 0 00:05:49 2016-05-25
54 Kopshin A. (son123) 354 0 00:05:54 2013-09-12
55 Goryacheva E.V. (elena_) 362 0 00:06:02 2013-01-27
56 Ershov A.V. (Ershov.A) 364 0 00:06:04 2014-02-25
57 Kuzovov K.D. (xynshine) 364 0 00:06:04 2011-04-14
58 Bek-Nazarov D.R. (bender84) 365 0 00:06:05 2012-09-10
59 Shishkanova E.V. (Vred) 365 0 00:06:05 2012-02-10
60 bobo T.D. (tibo) 368 0 00:06:08 2012-09-15
61 Anokhin N. (Gustav) 370 0 00:06:10 2012-04-14
62 Poltavtsev S.V. (Poltavtsev) 371 0 00:06:11 2011-09-06
63 Sidorov A.V. (OPM) 373 0 00:06:13 2009-12-17
64 Krayukhin D. (dkr2) 375 0 00:06:15 2019-04-03
65 Frolov (simple09) 376 0 00:06:16 2010-09-08
66 Kotov A. (Ckpa6) 378 0 00:06:18 2010-02-15
67 Iljy (iljy) 378 0 00:06:18 2009-07-02
68 alex (alex882) 381 0 00:06:21 2019-02-08
69 Sanko A. (count) 382 0 00:06:22 2010-04-13
70 tetraren (tetraren) 387 0 00:06:27 2011-01-10
71 Gladkikh D.S. (ZlobnYJ_DobR) 388 0 00:06:28 2009-01-13
72 Ryutin P.I. (PavelTX) 390 0 00:06:30 2013-12-24
73 Ostrovskij E.V. (EO) 393 0 00:06:33 2008-05-12
74 Glazyrin D.S. (glassman) 394 0 00:06:34 2008-08-05
75 Shaymardanov M.M. (xLiSPirit) 401 0 00:06:41 2011-10-03
76 Evans (Skylar) 402 0 00:06:42 2011-01-28
77 Mikheev D.S. (Sfinks) 402 0 00:06:42 2012-07-05
78 Kovshov V.I. (Vsevolod) 404 0 00:06:44 2009-11-18

SQL Справочник

SQL Ключевые слова ADD ADD CONSTRAINT ALTER ALTER COLUMN ALTER TABLE ALL AND ANY AS ASC BACKUP DATABASE BETWEEN CASE CHECK COLUMN CONSTRAINT CREATE CREATE DATABASE CREATE INDEX CREATE OR REPLACE VIEW CREATE TABLE CREATE PROCEDURE CREATE UNIQUE INDEX CREATE VIEW DATABASE DEFAULT DELETE DESC DISTINCT DROP DROP COLUMN DROP CONSTRAINT DROP DATABASE DROP DEFAULT DROP INDEX DROP TABLE DROP VIEW EXEC EXISTS FOREIGN KEY FROM FULL OUTER JOIN GROUP BY HAVING IN INDEX INNER JOIN INSERT INTO INSERT INTO SELECT IS NULL IS NOT NULL JOIN LEFT JOIN LIKE LIMIT NOT NOT NULL OR ORDER BY OUTER JOIN PRIMARY KEY PROCEDURE RIGHT JOIN ROWNUM SELECT SELECT DISTINCT SELECT INTO SELECT TOP SET TABLE TOP TRUNCATE TABLE UNION UNION ALL UNIQUE UPDATE VALUES VIEW WHERE

MySQL Функции Функции строк ASCII CHAR_LENGTH CHARACTER_LENGTH CONCAT CONCAT_WS FIELD FIND_IN_SET FORMAT INSERT INSTR LCASE LEFT LENGTH LOCATE LOWER LPAD LTRIM MID POSITION REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPACE STRCMP SUBSTR SUBSTRING SUBSTRING_INDEX TRIM UCASE UPPER Функции чисел ABS ACOS ASIN ATAN ATAN2 AVG CEIL CEILING COS COT COUNT DEGREES DIV EXP FLOOR GREATEST LEAST LN LOG LOG10 LOG2 MAX MIN MOD PI POW POWER RADIANS RAND ROUND SIGN SIN SQRT SUM TAN TRUNCATE Функции дат ADDDATE ADDTIME CURDATE CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURTIME DATE DATEDIFF DATE_ADD DATE_FORMAT DATE_SUB DAY DAYNAME DAYOFMONTH DAYOFWEEK DAYOFYEAR EXTRACT FROM_DAYS HOUR LAST_DAY LOCALTIME LOCALTIMESTAMP MAKEDATE MAKETIME MICROSECOND MINUTE MONTH MONTHNAME NOW PERIOD_ADD PERIOD_DIFF QUARTER SECOND SEC_TO_TIME STR_TO_DATE SUBDATE SUBTIME SYSDATE TIME TIME_FORMAT TIME_TO_SEC TIMEDIFF TIMESTAMP TO_DAYS WEEK WEEKDAY WEEKOFYEAR YEAR YEARWEEK Функции расширений BIN BINARY CASE CAST COALESCE CONNECTION_ID CONV CONVERT CURRENT_USER DATABASE IF IFNULL ISNULL LAST_INSERT_ID NULLIF SESSION_USER SYSTEM_USER USER VERSION

SQL Server функции Функции строк ASCII CHAR CHARINDEX CONCAT Concat with + CONCAT_WS DATALENGTH DIFFERENCE FORMAT LEFT LEN LOWER LTRIM NCHAR PATINDEX QUOTENAME REPLACE REPLICATE REVERSE RIGHT RTRIM SOUNDEX SPACE STR STUFF SUBSTRING TRANSLATE TRIM UNICODE UPPER Функции чисел ABS ACOS ASIN ATAN ATN2 AVG CEILING COUNT COS COT DEGREES EXP FLOOR LOG LOG10 MAX MIN PI POWER RADIANS RAND ROUND SIGN SIN SQRT SQUARE SUM TAN Функции дат CURRENT_TIMESTAMP DATEADD DATEDIFF DATEFROMPARTS DATENAME DATEPART DAY GETDATE GETUTCDATE ISDATE MONTH SYSDATETIME YEAR Функции расширений CAST COALESCE CONVERT CURRENT_USER IIF ISNULL ISNUMERIC NULLIF SESSION_USER SESSIONPROPERTY SYSTEM_USER USER_NAME

MS Access функции Функции строк Asc Chr Concat with & CurDir Format InStr InstrRev LCase Left Len LTrim Mid Replace Right RTrim Space Split Str StrComp StrConv StrReverse Trim UCase Функции чисел Abs Atn Avg Cos Count Exp Fix Format Int Max Min Randomize Rnd Round Sgn Sqr Sum Val Функции дат Date DateAdd DateDiff DatePart DateSerial DateValue Day Format Hour Minute Month MonthName Now Second Time TimeSerial TimeValue Weekday WeekdayName Year Другие функции CurrentUser Environ IsDate IsNull IsNumeric

SQL ОператорыSQL Типы данныхSQL Краткий справочник


SQL и реляционная теория. К. Дж. Дейт

Язык программирования наполнен ловушками для начинающих. Вы сможете избежать их в том случае, если поймёте реляционную теорию и узнаете, как она применяется на практике. В этой книге Крис Дейт подробно объясняет принципы реляционной теории и раскрывает их на многочисленных примерах и упражнениях. Особенность данной книги для изучения заключена в следующих вопросах:

Почему важно правильно наименовать столбцы? Почему значение NULL в базе данных приводит к неправильным ответам? Что мы можем с этим сделать? Как отношения изображений могут помочь сформулировать сложный запрос? Почему лучше избегать количественных сравнений, если язык их поддерживает?

Top 100 of the second stage at the time of solving the exercise #65

No Person SolvedEx LastEx Minutes Bad time
1 Samarin A. (not.yet.sql.master) 59 65 1559 658
2 Timofeeva E.V. (Umrikhina) 59 65 1604 184
3 Fokin A. (Vizitor ) 59 65 2598 600
4 Filippkin D.V. (_dimon_) 59 65 2729 262
5 Kreslavskij O.M. (Arcan) 59 65 4087 680
6 Litvinov V.V. (NewsMan) 59 65 4394 437
7 Dmitriev A. (Havr) 59 65 4420 3191
8 Dubinskij A.V. (_velial) 59 65 5063 1899
9 Rodionov S. (oldos) 59 65 5100 1012
10 Fedevych V.I. (labuch_fedev) 59 65 5741 702
11 Gireiko E. (Zubryonok) 59 65 5827 610
12 Milenkov (wqer) 59 65 5851 2856
13 Petrov Y. (YuriPetrov) 59 65 5993 1771
14 Kurochkin P.A. (qwrqwr) 59 65 6112 2679
15 Komarov A.N. (Shveda Saulya) 59 65 7164 1447
16 Krasovskij E.A. (pegoopik) 59 65 7845 1912
17 Latyntsev N.G. (aks_nsk) 59 65 8487 1234
18 Yakovlev M.V. (MikhailYakovlev535) 59 65 8754 2149
19 Buldenkov D.A. (eXeQuThor) 59 65 9568 8735
20 Pyatiletov A. (MontaG) 59 65 10375 2969
21 Sigankov V.I. (vasilyvanc) 59 65 10787 4109
22 Kostomarov A.V. (al29) 59 65 11547 4405
23 Zhulanov S.G. (borey.mdb) 59 65 12028 1486
24 Karasyova N.V. (vlksm) 59 65 12982 3437
25 Koptel’tsev V. (selber) 59 65 16618 277972
26 Chernov D.V. (Kursist) 59 65 17501 2886
27 Vasilevskaya E.A. (kattiks) 59 65 23352 3488
28 Smolyar P.M. (smolyar) 59 65 30524 10062
29 Shkarednyj I.N. (Gosha) 59 65 39139 8803
30 Tsch S. (SergeyTsch) 59 65 40274 84676
31 Tarshin S.N. (tsn) 59 65 47846 153901
32 Varenikov D.M. (Dmitriy Varenikov) 59 65 49143 21970
33 Kovelman V. (jjokker) 59 65 54158 8699
34 Bajnazarov R.A. (Bajnazarov) 59 65 61301 21504
35 Novikov (PNA921) 59 65 75473 10168
36 Doschenko V.N. (mcrain) 59 65 79375 205973
37 Williams B. (BW) 59 65 104872 169603
38 Yartsev Yu. (Yury66) 59 65 106214 28716
39 Nechaeva O.A. (Nechaeva Olga) 59 65 120356 29224
40 Boiko D. (Angellore) 59 65 131029 268884
41 Aronov O. (aronov.oleg) 59 65 173040 1382250
42 Komov K.N. (zigmund1) 59 65 328682 40986
43 Lazareva E. (lea_22) 59 65 354017 201402
44 Lukov D.R. (Gendalf) 59 65 917526 751472
45 Efimova V. (captainX) 58 65 2267 187
46 Khamidov D. (damirr) 58 65 2759 930
47 Demin D. (demind74) 58 65 3865 968
48 Zajtsev R.A. (PrideGoldFish) 58 65 3874 1171
49 Panfilov A. (alexey.p4nfilov) 58 65 3947 4375
50 Familiya (WereWolf777) 58 65 4324 787620
51 Pusev D.V. (Pusev_Denis) 58 65 4766 824
52 Baskakov A. (solertia) 58 65 6088 351
53 Kopylov A.V. (alegzey) 58 65 6540 386
54 Burmistrov V.V. (Razorkell) 58 65 6580 4008
55 Podmarev E.A. (Podmarev) 58 65 6699 3377
56 Balbekov A.G. (NtFire) 58 65 6776 3524
57 Igumnov (HermanI) 58 65 7405 883
58 Gribkov (Lenarino) 58 65 7465 3454
59 Safonov A.A. (funnym33) 58 65 7618 1070
60 Ovsyankin V.S. (Kazaam) 58 65 9406 6989
61 Petrov D.B. (GiBis) 58 65 12547 4102
62 Bogdanov K.A. (KAB956) 58 65 12555 1884
63 alex (alex882) 58 65 13600 34643
64 Degtyar’ S.B. (degt) 58 65 13727 3669
65 Shmigirev A.E. (Shmigirev) 58 65 14403 4019
66 Selezen’ A.N. (Artny) 58 65 16457 5412
67 Grishunin M.F. (MikhailFG) 58 65 19464 10302
68 Solov’yov E.I. (ty7ic) 58 65 20922 138512
69 Mityurin V. (mitvol) 58 65 24037 6985
70 Chebykin D.N. (GriGrim) 58 65 24369 75321
71 ol O. (svinokiller) 58 65 24929 7225
72 Krasavina O.V. (Chatte) 58 65 24958 24603
73 Gapanovich P.A. (drestar1) 58 65 26125 4066
74 Shalavin D.E. (Juster81) 58 65 26174 588456
75 Kirilov A.V. (Arbaiter) 58 65 28607 15734
76 Kotovskij V.N. (Viktor Nikolaevich) 58 65 37193 10496
77 Tyannikov V.P. (TVP) 58 65 39918 12273
78 Rakhmatullin R. (Ranil) 58 65 41507 349979
79 Nikolaj (Bulocka_c_izumom) 58 65 42984 1083829
80 Ushakov A.K. (andrew_ushakov) 58 65 43074 34098
81 Morgunova L. (amfisbena) 58 65 45816 8557
82 Chernikova D.D. (darya_chernikova) 58 65 48573 10668
83 Poroshkova (vvvvvloi) 58 65 51366 15807
84 Russkikh A. (mandarinchik) 58 65 57694 36058
85 Gnusov L.Yu. (Delan) 58 65 60239 112538
86 Sorokin D.Yu. (cth) 58 65 63746 31669
87 bitsadze K.R. (furie) 58 65 64071 10318
88 Sajgakova A.V. (Ametist) 58 65 64387 407492
89 Fomin P. (Plinc) 58 65 77269 396507
90 Golubeva (Sutie) 58 65 109590 233372
91 Tsarapkin D.I. (Tsarapkin) 58 65 119197 166771
92 Pavlyuk (Pashka_T) 58 65 174898 26933
93 Pavlov A.V. (Anton) 58 65 222749 2504625
94 Abdulmanapov A. (Dvarik) 58 65 230331 259283
95 Alborov K.R. (albor) 58 65 231327 102488
96 Kostyushko Yu.V. (kostushko) 58 65 237083 112410
97 Zhdamorev (zda) 58 65 260673 329438
98 Savin A.Yu. (mirovingin) 58 65 269953 112382
99 Gajchuk A.S. (asgaychuk) 58 65 288857 875434
100 Trofimov (learn_jack) 58 65 327677 1007991

SQL для чайников. Аллен Тейлор

Руководство поможет начинающим ознакомиться с системой управления базой данных, с помощью которой вы научитесь создавать более мощные базы данных и получать лёгкий доступ к необходимой информации. Книга включает в себя:

  • функции временных данных, которые позволяют устанавливать допустимое время для выполнения транзакций и предотвращают повреждение базы данных;
  • создание, доступ, манипулирование, ведение и хранение информации в системах управления реляционными базами данных.
  • советы по защите данных от кражи, случайного или вредоносного повреждения, а также потери из-за сбоев оборудования и рекомендации по устранению ошибок в работе.

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

Practical skills of SQL language

This site will help everyone to gain or improve skills in building SQL Data Manipulation Language statements. To train You will have to build yourself the SQL statements for retrieval or modification of specific data required in the exercises. When Your query is incorrect, You will be able to see rows returned by the correct query along with that returned by Your query. Furthermore, you may execute arbitrary DML statements on available databases by setting the «Without checking» option. There are five levels of difficulty (from 1 to 5), You may see it in second column of exercises list. We propose the exercises on retrieving data (SELECT statement) and the exercises on modifying data (INSERT, UPDATE, DELETE, and MERGE statements). Your success in the solving the exercises are shown by a rating of participants. As this takes place, there are three stages: the first one (first 6 exercises) is performed without time control for an individual exercise, the second one (begins with the exercise #7) controls time for completion of each task. At the third stage which refers to optimizing and begins with exercise #139, it is required not only to solve an exercise correctly, but also time of execution of inquiry should be commensurable with time of execution of the author’s solution. Exercises of the first stage are available without registration and may be solved in any order You like. The solution of the rest of exercises requires registration. REGISTRATION IS FREE as this for all other services of the site. In the third column of exercises list You will be able to see («OK») notes with the numbers of done exercises, but that is available only to the registered users. In fact, that is the main reason for registration. If You would like to visit our web site again, You won’t have to recollect which exercises You have done already and which You haven’t. If You don’t want to register, You may enter as a guest, but in that case Your results won’t be traced by the system. Registered users also may discuss the solutions to exercises in our forum.

NOTE: The query stated incorrectly may return the «correct» data on a current state of database. For this reason You should not be surprised if the results of incorrect query are coincide with the results of right one with Your query is estimated as incorrect by the Verifying system.


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.

8 место

«Эффективная работа с унаследованным кодом», Майкл Физерс

Учитесь извлекать максимум пользы из унаследованных систем, повышая их производительность, функциональность, надежность и сопровождаемость!

Можете ли вы без особого труда изменить код и тут же получить ответную реакцию на внесённые изменения? Насколько понятен этот код? Если вы ответите на эти вопросы отрицательно, значит, вы имеете дело с унаследованным кодом и понапрасну тратите время и средства на разработку.


В своей книге Майкл Физерс предлагает полноценные стратегические приемы эффективной работы с крупными базами унаследованного нетестированного кода. В основу этой книги положен материал, подготовленный автором к известным семинарам, организуемым компанией Object Mentor, включая приёмы, которым автор обучил сотни разработчиков, технических руководителей и тестирующих программное обеспечение подчинять себе непослушные унаследованные системы.

В этой книге освещаются следующие вопросы:

  • Представление о механизмах внесения изменений в программное обеспечение, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода, оптимизацию производительности.
  • Перенос унаследованного кода в средства тестирования.
  • Написание тестов, препятствующих внесению новых ошибок в код.
  • Применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#.
  • Точное выявление мест в коде, где требуется внести изменения.
  • Работа с унаследованным кодом, который не является объектно-ориентированным.
  • Обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры.

Кроме того, в этой книге представлены 24 способа разрыва зависимостей, помогающих работать с элементами программного обеспечения обособленно, чтобы сделать внесение изменений в код более безопасным.

Practical skills of SQL language

This site will help everyone to gain or improve skills in building SQL Data Manipulation Language statements. To train You will have to build yourself the SQL statements for retrieval or modification of specific data required in the exercises. When Your query is incorrect, You will be able to see rows returned by the correct query along with that returned by Your query. Furthermore, you may execute arbitrary DML statements on available databases by setting the «Without checking» option. There are five levels of difficulty (from 1 to 5), You may see it in second column of exercises list. We propose the exercises on retrieving data (SELECT statement) and the exercises on modifying data (INSERT, UPDATE, DELETE, and MERGE statements). Your success in the solving the exercises are shown by a rating of participants. As this takes place, there are three stages: the first one (first 6 exercises) is performed without time control for an individual exercise, the second one (begins with the exercise #7) controls time for completion of each task. At the third stage which refers to optimizing and begins with exercise #139, it is required not only to solve an exercise correctly, but also time of execution of inquiry should be commensurable with time of execution of the author’s solution. Exercises of the first stage are available without registration and may be solved in any order You like. The solution of the rest of exercises requires registration. REGISTRATION IS FREE as this for all other services of the site. In the third column of exercises list You will be able to see («OK») notes with the numbers of done exercises, but that is available only to the registered users. In fact, that is the main reason for registration. If You would like to visit our web site again, You won’t have to recollect which exercises You have done already and which You haven’t. If You don’t want to register, You may enter as a guest, but in that case Your results won’t be traced by the system. Registered users also may discuss the solutions to exercises in our forum.

NOTE: The query stated incorrectly may return the «correct» data on a current state of database. For this reason You should not be surprised if the results of incorrect query are coincide with the results of right one with Your query is estimated as incorrect by the Verifying system.


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.

SQL syntax used

User’s queries are executed by SQL server that brings some limitations to the syntax of SQL statements. Now we use Microsoft SQL Server 2019 (15.0) on the rating stages, and MariaDB-10.4 (compatible with MySQL 8), PostgreSQL 12.3, and Oracle Database 11g on the learn stage in addition. That is why You should follow the syntax of these realizations when building queries. It should be noted that SQL syntax, implemented in Microsoft SQL Server, is close to that of SQL-92 standard. But there are some distinctions, among them is absence of NATURAL JOIN of tables. Supplied help on SQL Data Manipulation Language is held in accordance with SQL-92 standard and contains information necessary for solving the exercises. In the same place it is possible to find features of used realization (SQL Server 2005).

Остались вопросы?

  • Попробуйте. Первые уроки и задания после регистрации. Этого хватит, чтобы оценить подачу и сложность материалов.

  • Все уроки у нас в записи, поэтому обучение можно начинать в любой момент. Ограничений по времени прохождения также нет, можете спокойно ехать в отпуск, а затем без проблем продолжать занятия.

  • Некоторые ученики проходят курс за месяц, другим нужен год. Продолжительность обучения зависит от ваших целей, начальной подготовки и времени, которое вы готовы тратить на учебу. Ограничений по времени у нас нет, каждый учится в комфортном для себя темпе.

  • Под каждым уроком и заданием есть мини-форум, где ученики могут общаться с преподавателем и друг с другом. Если у вас возникли вопросы, то смело задавайте их через форум и вам обязательно помогут.

  • 5. Сколько стоит обучение?

    Наши курсы стоят от 700 до 4900 рублей в зависимости от объема и сложности. Все цены, включая пакетные предложения и скидки, доступны после регистрации.

Работа с запросами

Вебинар посвящен написанию запросов в SQL с помощью Server Management Studio, специального клиентского приложения, которое устанавливается на локальном сервере и предназначено для администраторов БД. Профессиональный ИТ-тренер, эксперт по автоматизации и информатизации Михаил Алексеевич Гурьянов рассматривает следующее:

  • работу с графическим построением запросов,
  • использование проектов и создание шаблонов, сниппетов,
  • применение горячих клавиш,
  • настройку пользовательского интерфейса. 

Перед разработчиками, обладающими языком программирования, открываются большие возможности участия в разнообразных проектах. Специалисты с более высокой квалификацией всегда пользуются повышенным спросом на рынке IT.

18 ноября 2019


С этим читают