TGViewer
Data Engineer Data Engineer @dataengineernews · 477 subscribers
Post #119 638

Forwarded from DataJourney

Немного поиграли в теорию и возвращаемся к более практическим задачкам. На досуге мы с супругой частенько играем в игру 5букф от Тиньков (ссылка, не реклама, https://5bukv.tinkoff.ru/). На самом деле, игра не нова и является клоном игры wordle, которую ребята из Тинькофф встроили в приложение и посыпали немного подарками. Видимо, это что-то про маркетинг и попытка заставить клиентов почаще гулять в приложение, но это не точно.

Так вот, как-то я обмолвился, что решение этой игры можно написать на SQL и вот момент настал. Попробуем написать решение на SQL + немного добавить анализа того, а есть ли воля случая в игре или за шесть попыток в можно раскрыть любое слово? А если не в русском, а в английском? Получается, интересная задачка про данные.

Приступим. Попробуем спланировать наш заход в этот "продукт" по шагам:
1) Создать структуру хранения для всех возможных слов из пяти букв. Говорим на русском и потому слова тоже будем использовать русские.
2) Найти где-то базу слов (причем по правилам игры там только существительные) и скопировать к себе. Дальше я буду использовать словарь отсюда.
3) Продумать алгоритм по которому мы будем подбирать слово за словом в игре. Возможно, найдется вариант, по которому за один проход мы будем доходить до некоей точки, в которой будет оставаться только одно доступное слово. Это уже похоже на анализ данных.
4) Проверить алгоритмы из третьего пункта и проверить на решаемость или опровергнуть возможность решения.
.....
N) Написать ИИ, который будет решать задачу с первой попытки.

Итак, понедельник - день тяжелый и мы подумаем про структуру. Первой мыслью может быть, что нам хватит просто таблички с перечнем слов. Но, вряд ли кто-то за нас уже собрал все слова из пяти букв и потому данные нужно будет немного подготовить. Следовательно, наша структура претерпевает изменения и нам нужны теперь две таблички:
1) Все слова русского языка
2) Все слова русского языка из пяти букв

-- Все существительные русского языка
CREATE TABLE nouns (word VARCHAR(255));

-- Все существительные русского языка из пяти букв
CREATE TABLE nouns5 (word CHAR(5));


В скрипте выше создается две таблицы, каждая из которых содержит по одной колонке. В первом случае колонка со всеми словами и потому там длина поля (сколько букв можно положить) используется максимальная, а во втором мы знаем что слова будут только из пяти букв и потому явно говорим СУБД, что там будут только строки на пять символов.

Важно! В скрипте выше впервые использованы комментарии. Комментарии - это часть кода, которая не исполняется, но которая помогает понять что же хотел сказать автор без учительницы русского языка и литературы и даже без гугла и искусственных интеллектов. Рекомендую использовать комментарии везде, где возможно неоднозначное трактование кода. В SQL комментарии к коду бывают однострочные и многострочные. Первые начинаются с "--", а вторые начинаются с "/*" и заканчиваются "*/". Например:

-- Это комментарий и он не будет выполнен
SELECT 1; -- Комментарий может быть даже тут, после куска кода, который выполняется
/* А это многострочный комментарий,
когда мысль настолько широкая, что ее не получается
уместить в одну строку */


... продолжение следует
#sql #sqlbasics #firstproject
  • 👍 2
More from @dataengineernews
  1. Sep 27, 20262️⃣3️⃣✖️0️⃣✖️2️⃣6️⃣ 🦀 Big Data дайджест · 22–23 сентября 2026 🍄 CLICKHOUSE • На этой нед…
  2. Sep 23, 2026Кабанчик приехал
  3. Sep 12, 2026LLMSQLQueryOperator В Airflow появился новый декоратор task.llm_sql, который генерирует SQ…
  4. Sep 2, 2026Кабанчик уже не тот https://t.me/alexgladkovblog/7608
  5. Aug 25, 2026Apache Airflow 3.3.0: Stateful Tasks and Multi-Language Support В Airflow 3.3 появился AIP…
  6. Aug 25, 2026Продолжая закрывать свой букдолг, дошел до книги Питхейна Стренгхольта «Архитектура медаль…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →