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