Para criar um CRUD (sigla para Create, Read, Update e Delete, que são as operações básicas de um sistema de gerenciamento de banco de dados):
Primeiramente vamos fazer as importações do sqlite pra criar a base de dados que vamos adicionar os dados.
import sqlite3
Em seguida, você precisa criar uma conexão com o banco de dados e definir um objeto que represente suas tabelas. Isso pode ser feito da seguinte maneira:
def criar_tabela():
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY,
nome TEXT NOT NULL,
idade INTEGER)''')
conexao.commit()
conexao.close()
Agora você pode criar as funções que vão adicionar o usuario na base de dados:
def adicionar_usuario(nome, idade):
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''INSERT INTO usuarios (nome, idade) VALUES (?, ?)''', (nome, idade))
conexao.commit()
conexao.close()
Para ler os dados da tabela, você pode utilizar a seguinte função:
def listar_usuarios():
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''SELECT * FROM usuarios''')
usuarios = cursor.fetchall()
for usuario in usuarios:
print(usuario)
conexao.close()
Para atualizar os dados da tabela, você pode utilizar a seguinte função:
def atualizar_usuario(id, nome, idade):
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''UPDATE usuarios SET nome = ?, idade = ? WHERE id = ?''', (nome, idade, id))
conexao.commit()
conexao.close()
Em seguida vamos fazer a função para deletar os usuarios na base de dados:
def deletar_usuario(id):
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''DELETE FROM usuarios WHERE id = ?''', (id,))
conexao.commit()
conexao.close()
Vamos criar um menu para gerar uma interface grafica para interagir com o usuario no terminal:
def menu():
print("\n1. Adicionar usuário")
print("2. Listar usuários")
print("3. Atualizar usuário")
print("4. Deletar usuário")
print("5. Sair")
No final do código foi criado uma logica para interação com o usuario:
criar_tabela()
while True:
menu()
escolha = input("Escolha uma opção: ")
if escolha == '1':
nome = input("Digite o nome do usuário: ")
idade = int(input("Digite a idade do usuário: "))
adicionar_usuario(nome, idade)
print("Usuário adicionado com sucesso!")
elif escolha == '2':
print("\nTodos os usuários:")
listar_usuarios()
elif escolha == '3':
id = int(input("Digite o ID do usuário a ser atualizado: "))
nome = input("Digite o novo nome do usuário: ")
idade = int(input("Digite a nova idade do usuário: "))
atualizar_usuario(id, nome, idade)
print("Usuário atualizado com sucesso!")
elif escolha == '4':
id = int(input("Digite o ID do usuário a ser deletado: "))
deletar_usuario(id)
print("Usuário deletado com sucesso!")
elif escolha == '5':
print("Saindo do programa...")
break
else:
print("Opção inválida. Por favor, escolha uma opção válida.")
E por fim vou deixar o código completo do CRUD simples em python:
import sqlite3
# Função para criar a tabela
def criar_tabela():
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY,
nome TEXT NOT NULL,
idade INTEGER)''')
conexao.commit()
conexao.close()
# Função para adicionar um novo usuário
def adicionar_usuario(nome, idade):
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''INSERT INTO usuarios (nome, idade) VALUES (?, ?)''', (nome, idade))
conexao.commit()
conexao.close()
# Função para listar todos os usuários
def listar_usuarios():
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''SELECT * FROM usuarios''')
usuarios = cursor.fetchall()
for usuario in usuarios:
print(usuario)
conexao.close()
# Função para atualizar os dados de um usuário
def atualizar_usuario(id, nome, idade):
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''UPDATE usuarios SET nome = ?, idade = ? WHERE id = ?''', (nome, idade, id))
conexao.commit()
conexao.close()
# Função para deletar um usuário
def deletar_usuario(id):
conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()
cursor.execute('''DELETE FROM usuarios WHERE id = ?''', (id,))
conexao.commit()
conexao.close()
# Função do menu de escolhas
def menu():
print("\n1. Adicionar usuário")
print("2. Listar usuários")
print("3. Atualizar usuário")
print("4. Deletar usuário")
print("5. Sair")
# Criar a tabela (se ainda não existir)
criar_tabela()
while True:
menu()
escolha = input("Escolha uma opção: ")
if escolha == '1':
nome = input("Digite o nome do usuário: ")
idade = int(input("Digite a idade do usuário: "))
adicionar_usuario(nome, idade)
print("Usuário adicionado com sucesso!")
elif escolha == '2':
print("\nTodos os usuários:")
listar_usuarios()
elif escolha == '3':
id = int(input("Digite o ID do usuário a ser atualizado: "))
nome = input("Digite o novo nome do usuário: ")
idade = int(input("Digite a nova idade do usuário: "))
atualizar_usuario(id, nome, idade)
print("Usuário atualizado com sucesso!")
elif escolha == '4':
id = int(input("Digite o ID do usuário a ser deletado: "))
deletar_usuario(id)
print("Usuário deletado com sucesso!")
elif escolha == '5':
print("Saindo do programa...")
break
else:
print("Opção inválida. Por favor, escolha uma opção válida.")
Top comments (4)
Muito bom! Ainda não conhecia esse SQLAlchemy.
é uma biblioteca bem completa e muito boa, muito obrigado :)
como eu crio a conexão com o mysql, seria outro arquivo?
você pode utilizar o mysql.connector, muda algumas coisas só, no caso vc teria que passa o host, usuario e senha.