SQLAlchemy Core - Criando Tabela
Vamos agora discutir como usar a função criar tabela.
O SQL Expression Language constrói suas expressões nas colunas da tabela. O objeto SQLAlchemy Column representa umcolumn em uma tabela de banco de dados que por sua vez é representada por um Tableobject. Metadados contêm definições de tabelas e objetos associados, como índice, visão, gatilhos, etc.
Portanto, um objeto da classe MetaData de SQLAlchemy Metadata é uma coleção de objetos Table e suas construções de esquema associadas. Ele contém uma coleção de objetos Table, bem como uma ligação opcional a um Engine ou Connection.
from sqlalchemy import MetaData
meta = MetaData()
O construtor da classe MetaData pode ter parâmetros de ligação e esquema, que são None.
Em seguida, definimos nossas tabelas dentro do catálogo de metadados acima, usando the Table construct, que se assemelha à instrução SQL CREATE TABLE regular.
Um objeto da classe Table representa a tabela correspondente em um banco de dados. O construtor usa os seguintes parâmetros -
Nome | Nome da mesa |
---|---|
Metadados | Objeto MetaData que manterá esta tabela |
Coluna (s) | Um ou mais objetos de classe de coluna |
Objeto de coluna representa um column em um database table. O construtor leva o nome, o tipo e outros parâmetros, como primary_key, autoincrement e outras restrições.
SQLAlchemy combina os dados Python com os melhores tipos de dados de coluna genéricos possíveis definidos nele. Alguns dos tipos de dados genéricos são -
- BigInteger
- Boolean
- Date
- DateTime
- Float
- Integer
- Numeric
- SmallInteger
- String
- Text
- Time
Para criar um students table no banco de dados da faculdade, use o seguinte trecho -
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),
)
A função create_all () usa o objeto de mecanismo para criar todos os objetos de tabela definidos e armazena as informações em metadados.
meta.create_all(engine)
O código completo é fornecido abaixo, o qual criará um banco de dados SQLite college.db com uma tabela de alunos nele.
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)
Porque o atributo echo da função create_engine () é definido como True, o console exibirá a consulta SQL real para a criação da tabela da seguinte forma -
CREATE TABLE students (
id INTEGER NOT NULL,
name VARCHAR,
lastname VARCHAR,
PRIMARY KEY (id)
)
O college.db será criado no diretório de trabalho atual. Para verificar se a tabela de alunos foi criada, você pode abrir o banco de dados usando qualquer ferramenta SQLite GUI, comoSQLiteStudio.
A imagem abaixo mostra a tabela de alunos que é criada no banco de dados -