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 -