О Простом 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