О Простом SQL

Это же весело — перемещаться по таблице и искать закономерности.

Этот модуль представляет симуляцию SQL. Для обезвреживания, сделайте SQL запрос, который выдаст целевой результат. Используйте этот документ для создания SQL запроса, который выдаст целевой результат из исходных данных, находящиеся в этом документе.

Кнопка "Goal"

Нажмите кнопку "Goal" чтобы увидеть результат, который ожидается после SQL запроса. Результат представен в виде таблицы, в которой 1-4 строки и 2-3 колонки. Несколько примеров ниже:

296
421
714
382
296
421
29
42
71
296

Кнопка "Check"

При нажатии кнопки "Check", модуль скомпилирует SQL запрос и выполнит его на исходных данных. Результат сравнивается с целевой таблицей. Если они совпадают, модуль обезвредится; иначе, зарегистрирует ошибку.

Обезвреживание модуля

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

Целевая таблица

296
421

Пример исходных данных

A B C D E F
9 0 1 6 7 3
6 8 2 4 5 9
2 7 5 3 6 1
1 3 4 9 5 2

Исходные данные

Исходные данные для обезвреживания модуля находятся ниже. Найдите значения из целевой таблицы в таблице ниже и создайте SQL запрос, который в результате выдаст её.

ABCDEFG
9302046
7861298
2054731
4715309
6279865
1937654
8543182

Заметка:

Результат SQL запроса не всегда идёт обязательно в порядке чтения. Строки будут идти сверху вниз, но колонки могут быть произвольно переставлены через команду "SELECT" в запросе.

Об SQL

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

Как SQL работает

SQL обрабатывается следующим образом:

  1. Каждая строка сравнивается с условием в команде "WHERE" (описанной ниже). Если строка соответствует условию, то она включается в результат.
  2. Каждая строка, которая проходит условие в "WHERE", далее обрабатывается командой "SELECT" (описанной ниже).
  3. Наконец, команда "LIMIT" (описанная ниже) может быть использована для выборки определённого количества строк, пропуская X строк с начала результата и взяв Y строк после.

SELECT X, Y, Z

Команда "SELECT" выбирает, какие колонки будут включены в результат (и в каком порядке). Модуль предлагает до 3-х колонок. Каждая колонка может быть от A до G, а также "-", который отключает данную колонку. Как пример:

ABCDEFG
9302046
7861298
2054731
4715309
6279865
1937654
8543182

SQL: SELECT D, A

Примечание: вместо 3-ей колонки был использован "-".

DA
29
17
42
54
96
71
38

WHERE X оператор Y

"WHERE" представляет собой фильтр. Строки проверяются по условию. Строка остаётся тогда, когда условие Истинно. В нашем эмуляторе SQL возможно только сравнивание колонок с фиксированным значением, такие как: A < 2, C = 3, F >= 5. Возможные операторы простые, схожи с математическими операциями:

  • "=": Равенство
  • "<>": Неравенство
  • "<": Меньше чем
  • "<=": Меньше или равно
  • ">": Больше чем
  • ">=": Больше или равно

Простой пример условия:

ABCDEFG
9302046
7861298
2054731
4715309
6279865
1937654
8543182

SQL: WHERE C >= 5

ABCDEFG
7861298
2054731
6279865

 

Заметка: Условия могут быть применены к любой колонке, не только к тем, которые присутствуют в команде "SELECT".

WHERE X AND/OR Y

Если необходимо 2 условия для получения результата, нажмите на кнопку под "WHERE" для добавления второго условия. Второе условие может быть соединено через "AND" (оба условия должны быть Истинны) или "OR" (как минимум одно условие должно быть Истинно). Примеры:

Примеры данных Условие Результат
ABC
930
786
205
471
WHERE A < 7 AND B >= 3
ABC
930
786
205
471
ABC
930
786
205
471
WHERE B <> 8 OR C <= 2
ABC
930
786
205
471

LIMIT X, Y

"LIMIT" принимает 2 значения:

  • Первое значение: максимальное количество строк, которое будет в результате после применения условия. При выборе "All", ни одна строка не отбрасывается.
  • Второе значение: количество строк, которое будет пропущено после применения условия. При выборе "None", ни одна строка не пропускается.

Если второе значение присутствует (пропуск), то оно применяется первым и показывает, сколько строк пропускать с начала результата. После, первое значение применяется для получения этого количества строк.

Примеры:

Примеры данныхУсловиеРезультат
930
786
205
471
LIMIT 2, 0
(Взять 2; ничего не пропускать)
930
786
930
786
205
471
LIMIT 999, 1
(Безлимит; пропустить 1)
786
205
471
930
786
205
471
LIMIT 1, 2
(Взять 1; пропустить 2)
205