Skip to content

Конструктор SQL запросов #40

Description

@otymko

Хотелось бы видеть функционал создания sql запросов в виде конструктора в fluent стиле.
Примеры:
Дано:

  • Сущность Автор с полями: Код, Имя, Почта, Роль. Таблица бд называется Авторы.
  • Сущность Роль с полями: Код, Имя. Таблица бд называется Роли.
Конструктор = МенеджерСущностей.КонструкторЗапросов();

Выборка = Конструктор.Из("Автор") .Где("Код", 1).Выполнить();
Для Каждого ЭлементВыборки Из Выборка Цикл
    Сообщить(ЭлементВыборки.Имя);
КонецЦикла;

Возможности:

  • Из(ИмяСущности) - метод FROM
  • Где(ИмяПоля, Значение), Где(Соответствие), Где(Массив) - метод WHERE
  • Выбрать(), Выбрать("ИмяСущности.Поле1, ИмяСущности.Поле2, ИмяСущности.Поле3"), Выбрать(Массив) - указание выбора определенных полей из запроса
  • Ограничить(НомерЗаписи, КоличествоЗаписей) - метод LIMIT
  • ЛевоеСоединение(Условие), ПравоеСоединение(Условие), ВнутренееСоединение(Условие), ВнешнееСоединение(Условие) - методы LEFT JOIN, RIGHT JOIN, INNER JOIN, OUTER JOIN
  • Упорядочить(Поле, ПорядокСортировки), Упорядочик(Массив) - метод ORDER BY
  • Выполнить() - выполнить запрос

Еще пример (дано такое же):

Выборка = Конструктор
    .Из("Автор")
    .Выбрать("Автор.Имя, Автор.Почта")
    .ЛевоеСоединение("Роль", "Автор.Роль=Роль.Код")
    .Выбрать("Роль.Имя")
    .Упорядочить("Автор.Имя", ПорядокСортировки.Убывание);
    .Выполнить();

Как пример всего этого в других языках: fluentPDO

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions