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

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

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

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

from sqlalchemy import MetaData
meta = MetaData()

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

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

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

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

Объект столбца представляет собой column в database table. Конструктор принимает имя, тип и другие параметры, такие как primary_key, autoincrement и другие ограничения.

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

  • BigInteger
  • Boolean
  • Date
  • DateTime
  • Float
  • Integer
  • Numeric
  • SmallInteger
  • String
  • Text
  • Time

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

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 () использует объект движка для создания всех определенных объектов таблицы и сохраняет информацию в метаданных.

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, такого какSQLiteStudio.

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