Функция column
Функция column создает объект
колонки SQL-выражения. Первым параметром
функция принимает имя колонки. Вторым
необязательным параметром можно передать
тип данных. Колонка может использоваться
в запросах, выражениях и при построении
таблиц.
Синтаксис
column(name, [type_])
Пример
Давайте создадим простую колонку с именем
id и выведем ее на экран:
from sqlalchemy import column
col = column('id')
print(col)
Результат выполнения кода:
"id"
Пример
Давайте создадим колонку с указанием типа
данных Integer:
from sqlalchemy import column, Integer
col = column('num', Integer)
print(col)
Результат выполнения кода:
"num INTEGER"
Пример
Давайте используем колонку в составе
SQL-выражения с функцией func.lower:
from sqlalchemy import column, func
col = column('title')
expr = func.lower(col)
print(expr)
Итоговый SQL запрос:
lower(title)
Пример
Давайте построим таблицу с несколькими
колонками, используя функцию column
и класс Table:
from sqlalchemy import Table, MetaData, column, Integer, String
metadata = MetaData()
articles = Table(
'articles',
metadata,
column('id', Integer),
column('title', String),
column('text', String),
)
print(articles)
Результат выполнения кода:
"Table('articles', MetaData(), Column('id', Integer(), table=<articles>), Column('title', String(), table=<articles>), Column('text', String(), table=<articles>), schema=None)"
Пример
Давайте выполним SQL-запрос с использованием
колонки через text и передадим
параметр через bindparam:
from sqlalchemy import create_engine, text, bindparam
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT, text TEXT, status TEXT, num INTEGER)'))
conn.execute(text('INSERT INTO articles (id, title, text, status, num) VALUES (1, :title, :text, :status, :num)'),
{'title': 'article', 'text': 'some text', 'status': 'published', 'num': 10})
res = conn.execute(text('SELECT title FROM articles WHERE num > :n').bindparams(bindparam('n', 5))).fetchall()
print(res)
Результат выполнения кода:
[('article',)]
Смотрите также
-
функцию
literal_column,
которая создает колонку из строкового литерала -
функцию
table,
которая создает объект таблицы -
функцию
label,
которая задает псевдоним для колонки -
функцию
bindparam,
которая создает параметр привязки для запроса