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

Класс String

Класс String представляет строковый тип данных и используется при описании колонок таблиц. Первым параметром передается длина строки в символах, вторым - флаг collation для указания правил сравнения строк. Если длина не указана, СУБД использует собственное значение по умолчанию.

Синтаксис

String(length, [collation])

Пример

Давайте создадим колонку с типом String и длиной в 100 символов:

from sqlalchemy import String title_type = String(100) print(title_type)

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

"VARCHAR(100)"

Пример

Давайте опишем модель с колонкой типа String и создадим таблицу:

from sqlalchemy import create_engine, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) text: Mapped[str] = mapped_column(String(255)) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) print(Article.__table__.columns['title'].type)

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

"VARCHAR(100)"

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

CREATE TABLE articles ( id INTEGER NOT NULL, title VARCHAR(100) NOT NULL, text VARCHAR(255) NOT NULL, PRIMARY KEY (id) )

Пример

Давайте вставим строковые данные в таблицу и прочитаем их обратно:

from sqlalchemy import create_engine, String, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add(Article(title='article 1')) session.add(Article(title='article 2')) session.commit() res = session.scalars(select(Article.title)).all() print(res)

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

['article 1', 'article 2']

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

  • класс Text,
    который представляет неограниченный строковый тип
  • класс VARCHAR,
    который представляет строковый тип с длиной
  • класс CHAR,
    который представляет строку фиксированной длины
  • класс Unicode,
    который представляет Unicode-строку переменной длины
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить