Учебники

SQLAlchemy Core — Создание таблицы

Давайте теперь обсудим, как использовать функцию создания таблицы.

Язык выражений SQL строит свои выражения для столбцов таблицы. Объект столбца SQLAlchemy представляет столбец в таблице базы данных, который, в свою очередь, представлен объектом таблицы . Метаданные содержат определения таблиц и связанных объектов, таких как индекс, представление, триггеры и т. Д.

Следовательно, объект класса MetaData из метаданных SQLAlchemy представляет собой коллекцию объектов Table и связанных с ними конструкций схемы. Он содержит коллекцию объектов Table, а также необязательную привязку к Engine или Connection.

from sqlalchemy import MetaData
meta = MetaData()

Конструктор класса MetaData может иметь параметры связывания и схемы, которые по умолчанию отсутствуют .

Далее мы определяем все наши таблицы в каталоге метаданных, используя конструкцию Table , которая напоминает обычный оператор SQL CREATE TABLE.

Объект класса Table представляет соответствующую таблицу в базе данных. Конструктор принимает следующие параметры —

название Название стола
Метаданные Объект MetaData, который будет содержать эту таблицу
Колонка (ы) Один или несколько объектов класса столбца

Объект столбца представляет столбец в таблице базы данных . Конструктор принимает имя, тип и другие параметры, такие как primary_key, автоинкремент и другие ограничения.

SQLAlchemy сопоставляет данные Python с наилучшими возможными типами данных столбца, определенными в нем. Некоторые из общих типов данных —

  • BigInteger
  • логический
  • Дата
  • DateTime
  • терка
  • целое число
  • числовой
  • SmallInteger
  • строка
  • Текст
  • Время

Чтобы создать таблицу студентов в базе данных колледжа, используйте следующий фрагмент —

from sqlalchemy import Table, Column, Integer, String, MetaData
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String), 
)

Функция create_all () использует объект engine для создания всех определенных объектов таблицы и сохраняет информацию в метаданных.

meta.create_all(engine)

Ниже приведен полный код, который создаст базу данных SQLite college.db с таблицей студентов.

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String),
)
meta.create_all(engine)

Поскольку для атрибута echo функции create_engine () установлено значение True , консоль будет отображать фактический запрос SQL для создания таблицы следующим образом:

CREATE TABLE students (
   id INTEGER NOT NULL,
   name VARCHAR,
   lastname VARCHAR,
   PRIMARY KEY (id)
)

College.db будет создан в текущем рабочем каталоге. Чтобы проверить, создана ли таблица студентов, вы можете открыть базу данных с помощью любого инструмента SQLite GUI, такого как SQLiteStudio .

На рисунке ниже показана таблица учеников, созданная в базе данных.