LINUX.ORG.RU

Существует конструктор запросов(на выходе SQL запрос)?

 ,


0

1

Чтобы были возможности

  1. Выбор полей
  2. Выбор фильтров
  3. Задать какие поля с какими совместимы (например COUNT(*) нельзя выбрать с users.login)
  4. Возможность использования подзапросов в качестве полей.

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


Под определение, КМК, подходит любой ORM, а их написано на Python десятки.

Если именно конструктор запросов, то SQLAlchemy, и кроме него есть несколько, навскидку не скажу, надо гуглить.

Но это всё же в первых результатах будет, если вбить в любой поисковик.

emorozov
()
Ответ на: комментарий от beastie

У ORM есть преимущества перед голым SQL. Например, можно писать переносимые приложения, проще переиспользовать код, можно писать универсальные библиотеки. С голым SQL такое сделать сложнее.

emorozov
()
Ответ на: комментарий от emorozov

Что? С голым sql у тебя одна строка кода. С orm 100500строчные библиотеки нечитаемого хлама, чтобы сгенерить 1 строку sql запроса. Что может быть переносимее 1 строки? О_о

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

С ORM тоже одна строка кода. Как устроен внутри ORM мне не особенно интересно как пользователю ORM.

Переносимость в том смысле, что я, например, могу написать, скажем, универсальный код для фильтрации результатов запроса по любому из полей. И реалзиовать какой-нибудь универсальный отображатель таблиц с возможностью фильтрации и сортировки по любому полю. И этот отображатель таблиц можно будет подключить к любому приложению, ещё и независимо от того, какой диалект SQL в нём используется.

С голым SQL придётся вручную хардкодить все поля и варианты фильтров и сортировки, либо переизобретать тот же ORM или query builder, только на каждый запрос и через костыли.

emorozov
()

Задать какие поля с какими совместимы (например COUNT(*) нельзя выбрать с users.login)

Не мучайся, пиши сразу на SQL. От конструкторов скорее будет вред, чем польза.

dicos ★★
()
Ответ на: комментарий от beastie

Мусьё ищет ORM

Возможно, он ищет DSL, который позволяет описывать запросы в виде структур данных, чтобы их дико и необузданно модифицировать, не упарываясь вознёй со строками, и генерировать из них SQL для скармливания DBMS. Типа такого (под петон не знаю) https://github.com/seancorfield/honeysql.

Но подозреваю, что он думает, что ему нужен визуальный конструктор запросов, как в MS Access или 1C.

Nervous ★★★★★
()

Все эти эксперименты с алхимией делаются путем доставки ipykernel в виртуальное окружение и тогда можно джупитер лаб использовать для экспериментов

uwuwuu
()