SQLite com o módulo sqlite3 do Python
Criação de bancos de dados e tabelas, INSERT/SELECT/UPDATE, consultas parametrizadas e gerenciamento de conexões.
SQLite com o módulo sqlite3 do Python é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Por que usar bancos de dados para IA?
Os arquivos simples funcionam até que seus dados cresçam ou várias partes de um projeto precisem dos mesmos registros. Um banco de dados oferece consultas rápidas, esquemas estruturados e acesso simultâneo seguro.
O SQLite é um banco de dados baseado em arquivo, sem configuração, integrado ao Python por meio do módulo sqlite3 — perfeito para experimentos de IA e projetos pequenos.
Conectando com sqlite3.connect
sqlite3.connect abre ou cria um arquivo de banco de dados e retorna uma conexão. Use :memory: para um banco de dados temporário armazenado na RAM.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Cursores e cursor.execute
Você executa SQL por meio de um cursor obtido da conexão. cursor.execute(sql) envia uma instrução ao banco de dados.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Defina uma tabela com um esquema. IF NOT EXISTS torna a instrução segura para ser executada repetidamente — ela não gerará um erro se a tabela já existir.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT com espaços reservados
Nunca crie SQL usando formatação de cadeias de caracteres — isso facilita a injeção de SQL e causa problemas com aspas. Use espaços reservados ? e passe os valores como uma tupla.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Inserindo muitas linhas com executemany
executemany insere uma lista de tuplas em uma única chamada eficiente — é muito mais rápido do que percorrer um laço com execute.
rows = [
("rf", 0.88, "2026-05-29"),
("xgb", 0.91, "2026-05-29"),
]
cur.executemany(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
rows,
)conn.commit() salva as alterações
As gravações ocorrem dentro de uma transação e não são persistidas até que você chame conn.commit(). Esquecer isso é o erro mais comum de iniciantes — seus dados desaparecem silenciosamente ao fechar a conexão.
conn.commit() # persist all pending INSERT/UPDATE/DELETEConsultando com fetchall e fetchone
Depois de um SELECT, recupere os resultados:
fetchone()— a próxima linha individualfetchall()— todas as linhas restantes como uma lista de tuplas- percorra o cursor diretamente para obter resultados grandes
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtrando e ordenando
O SQL faz o trabalho pesado: filtre com WHERE, ordene com ORDER BY e limite com LIMIT. Use espaços reservados também para os valores da consulta.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Fábrica de linhas para acesso por nome
Por padrão, as linhas são tuplas. Defina conn.row_factory = sqlite3.Row para acessar as colunas pelo nome, o que é muito mais legível.
import sqlite3
conn = sqlite3.connect("ml.db")
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM experiments")
row = cur.fetchone()
print(row["name"], row["accuracy"])Gerenciadores de contexto para segurança
Usar with na conexão confirma automaticamente a transação em caso de sucesso e desfaz as alterações em caso de erro. Combinado com closing, isso garante a limpeza dos recursos.
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("ml.db")) as conn:
with conn: # auto commit/rollback
conn.execute(
"INSERT INTO experiments (name, accuracy) VALUES (?, ?)",
("svm", 0.79),
)Verificação rápida: persistindo gravações
Você executou várias instruções INSERT e, depois, fechou a conexão — mas os dados desapareceram na vez seguinte.
Recapitulação: SQLite com sqlite3
Agora, você consegue usar um banco de dados real a partir do Python:
sqlite3.connecte umcursorCREATE TABLE IF NOT EXISTSpara esquemas segurosINSERTcom espaços reservados?eexecutemanyconn.commit()para persistir as gravaçõesfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowe gerenciadores de contexto para um código limpo e seguro
A seguir: conectando pandas e SQL.
Perguntas Frequentes
A aula “SQLite com o módulo sqlite3 do Python” é grátis?
Sim — o texto completo de “SQLite com o módulo sqlite3 do Python” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “SQLite com o módulo sqlite3 do Python”?
Criação de bancos de dados e tabelas, INSERT/SELECT/UPDATE, consultas parametrizadas e gerenciamento de conexões. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “SQLite com o módulo sqlite3 do Python”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- SQLite com o módulo sqlite3 do Python
- Integração entre Pandas e SQL
- Armazenamento e consulta de resultados de aprendizado de máquina
- Introdução aos bancos de dados vetoriais