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.
На рисунке ниже показана таблица студентов, созданная в базе данных -