РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
240 of 711 menu

Метод prefix_with

Метод prefix_with класса Select добавляет произвольный текст в начало итогового SQL-запроса. Первым параметром метод принимает строку с префиксом. Вторым необязательным параметром передается диалект, для которого применяется префикс. Третий необязательный параметр указывает, что префикс должен быть добавлен после ключевого слова SELECT.

Метод возвращает новый объект Select, поэтому его можно вызывать цепочкой с другими методами построения запроса.

Синтаксис

select(...).prefix_with(prefix, [dialect], [after])

Пример

Давайте создадим простой запрос и добавим к нему префикс SQL_NO_CACHE:

from sqlalchemy import select, table, column articles = table( 'articles', column('id'), column('title') ) stmt = select(articles.c.id, articles.c.title).prefix_with('SQL_NO_CACHE') print(stmt)

Результат выполнения кода:

"SELECT SQL_NO_CACHE articles.id, articles.title \nFROM articles"

Итоговый SQL запрос:

SELECT SQL_NO_CACHE articles.id, articles.title FROM articles

Пример

Давайте добавим префикс только для диалекта sqlite:

from sqlalchemy import select, table, column articles = table( 'articles', column('id'), column('title') ) stmt = select(articles.c.id).prefix_with('EXPLAIN', dialect='sqlite') print(stmt)

Результат выполнения кода:

"SELECT EXPLAIN articles.id \nFROM articles"

Итоговый SQL запрос:

SELECT EXPLAIN articles.id FROM articles

Пример

Давайте используем параметр after, чтобы вставить префикс после ключевого слова SELECT:

from sqlalchemy import select, table, column articles = table( 'articles', column('id'), column('title') ) stmt = select(articles.c.id).prefix_with('DISTINCT', after=True) print(stmt)

Результат выполнения кода:

"SELECT DISTINCT articles.id \nFROM articles"

Итоговый SQL запрос:

SELECT DISTINCT articles.id FROM articles

Пример

Давайте добавим сразу несколько префиксов, вызвав метод prefix_with несколько раз:

from sqlalchemy import select, table, column articles = table( 'articles', column('id'), column('title') ) stmt = ( select(articles.c.id, articles.c.title) .prefix_with('SQL_NO_CACHE') .prefix_with('HIGH_PRIORITY') ) print(stmt)

Результат выполнения кода:

"SELECT SQL_NO_CACHE HIGH_PRIORITY articles.id, articles.title \nFROM articles"

Итоговый SQL запрос:

SELECT SQL_NO_CACHE HIGH_PRIORITY articles.id, articles.title FROM articles

Смотрите также

  • класс Select,
    который представляет конструктор SELECT-запроса
  • метод suffix_with,
    который добавляет суффикс в конец SQL-запроса
  • метод with_hint,
    который добавляет подсказку оптимизатору СУБД
  • метод distinct,
    который добавляет ключевое слово DISTINCT
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить