Функция table
Функция table создает объект таблицы
Table из модуля sqlalchemy.
Первым параметром функция принимает имя таблицы
в виде строки. Далее передаются столбцы таблицы,
а также можно указать схему и дополнительные
аргументы. Функция возвращает объект
Table, который можно использовать
в запросах select, insert,
update и delete.
Синтаксис
table(name, *columns, [schema], [**kw])
Пример
Давайте создадим таблицу articles
с тремя столбцами и выведем ее структуру:
from sqlalchemy import table, column, Integer, String
articles = table(
'articles',
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)"
Пример
Давайте получим доступ к отдельным столбцам таблицы через атрибуты и выведем их имена:
from sqlalchemy import table, column, Integer, String
articles = table(
'articles',
column('id', Integer),
column('title', String),
column('text', String)
)
print(articles.c.id.name)
print(articles.c.title.name)
print(articles.c.text.name)
Результат выполнения кода:
"id"
"title"
"text"
Пример
Давайте построим SQL-запрос выборки из таблицы
articles с помощью функции select:
from sqlalchemy import table, column, Integer, String, select
articles = table(
'articles',
column('id', Integer),
column('title', String),
column('text', String)
)
query = select(articles.c.id, articles.c.title)
print(query)
Итоговый SQL запрос:
SELECT articles.id, articles.title
FROM articles
Пример
Давайте создадим таблицу с указанием схемы и выполним запрос на вставку данных:
from sqlalchemy import table, column, Integer, String, insert
articles = table(
'articles',
column('id', Integer),
column('title', String),
column('text', String),
schema='main'
)
stmt = insert(articles).values(id=1, title='article', text='sql')
print(stmt)
Итоговый SQL запрос:
INSERT INTO main.articles (id, title, text)
VALUES (:id, :title, :text)
Пример
Давайте выполним запрос к базе данных
SQLite в памяти с использованием
объекта таблицы:
from sqlalchemy import (
create_engine, table, column,
Integer, String, select, text
)
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text(
'CREATE TABLE articles (id INTEGER, title TEXT, text TEXT)'
))
conn.execute(text(
"INSERT INTO articles VALUES (1, 'article', 'sql')"
))
articles = table(
'articles',
column('id', Integer),
column('title', String),
column('text', String)
)
res = conn.execute(select(articles.c.title))
print(res.fetchall())
Результат выполнения кода:
[('article',)]
Смотрите также
-
функцию
column,
которая создает столбец таблицы -
функцию
text,
которая создает текстовый SQL-фрагмент -
функцию
literal_column,
которая создает литеральный столбец -
функцию
bindparam,
которая создает именованный параметр привязки