Banco de dados são uma parte essencial do desenvolvimento de software, permitindo armazenar e manipular dados de forma eficiente. Neste artigo, vamos explorar como usar Python para interagir com um banco de dados SQL, especificamente SQLite, que é um banco de dados leve e fácil de usar.
1. Introdução ao SQLite
SQLite é uma biblioteca de software que implementa um banco de dados SQL embutido. Ele não requer um servidor separado e é uma excelente escolha para pequenos projetos e testes.
Bibliotecas Necessárias
Certifique-se de ter as bibliotecas necessárias instaladas:
pip install sqlite3
2. Estrutura do Projeto
Organize seu projeto com a seguinte estrutura:
project/ │ ├── database.py └── requirements.txt
3. Criando o Banco de Dados e Tabelas
Código para criar o banco de dados
No arquivo database.py, adicione o seguinte código para criar um banco de dados e uma tabela de usuários:
import sqlite3 # Conectando ao banco de dados (ou criando, se não existir) conn = sqlite3.connect('users.db') c = conn.cursor() # Criando a tabela de usuários c.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL UNIQUE ) ''') # Salvando (commit) as mudanças e fechando a conexão conn.commit() conn.close()
4. Inserindo Dados no Banco de Dados
Código para inserir dados
No mesmo arquivo database.py, adicione a função para inserir dados na tabela:
def insert_user(name, email): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('INSERT INTO users (name, email) VALUES (?, ?)', (name, email)) conn.commit() conn.close() # Inserindo alguns usuários insert_user('Alice', '[email protected]') insert_user('Bob', '[email protected]')
5. Consultando Dados no Banco de Dados
Código para consultar dados
Adicione a função para consultar dados da tabela:
def get_all_users(): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('SELECT * FROM users') users = c.fetchall() conn.close() return users # Obtendo e imprimindo todos os usuários users = get_all_users() for user in users: print(user)
6. Atualizando Dados no Banco de Dados
Código para atualizar dados
Adicione a função para atualizar dados na tabela:
def update_user_email(user_id, new_email): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('UPDATE users SET email = ? WHERE id = ?', (new_email, user_id)) conn.commit() conn.close() # Atualizando o email do usuário com id 1 update_user_email(1, '[email protected]')
7. Deletando Dados no Banco de Dados
Código para deletar dados
Adicione a função para deletar dados da tabela:
def delete_user(user_id): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('DELETE FROM users WHERE id = ?', (user_id,)) conn.commit() conn.close() # Deletando o usuário com id 2 delete_user(2)
8. Testando o Código
Você pode testar cada função chamando-as diretamente no arquivo database.py ou criando um script separado para testar todas as funcionalidades.
Código completo de database.py
import sqlite3 # Conectando ao banco de dados (ou criando, se não existir) conn = sqlite3.connect('users.db') c = conn.cursor() # Criando a tabela de usuários c.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL UNIQUE ) ''') # Salvando (commit) as mudanças e fechando a conexão conn.commit() conn.close() def insert_user(name, email): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('INSERT INTO users (name, email) VALUES (?, ?)', (name, email)) conn.commit() conn.close() def get_all_users(): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('SELECT * FROM users') users = c.fetchall() conn.close() return users def update_user_email(user_id, new_email): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('UPDATE users SET email = ? WHERE id = ?', (new_email, user_id)) conn.commit() conn.close() def delete_user(user_id): conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('DELETE FROM users WHERE id = ?', (user_id,)) conn.commit() conn.close() # Testando as funções insert_user('Alice', '[email protected]') insert_user('Bob', '[email protected]') print("Usuários após inserção:") users = get_all_users() for user in users: print(user) update_user_email(1, '[email protected]') print("Usuários após atualização:") users = get_all_users() for user in users: print(user) delete_user(2) print("Usuários após deleção:") users = get_all_users() for user in users: print(user)
9. Conclusão
Neste artigo, aprendemos como criar um banco de dados SQL com SQLite e interagir com ele usando Python. Passamos pela criação da estrutura do banco de dados, inserção, consulta, atualização e deleção de dados.
Este guia fornece uma base sólida para começar a trabalhar com bancos de dados SQL em Python. Continue explorando e adicionando funcionalidades mais complexas ao seu banco de dados conforme avança no aprendizado de desenvolvimento de software.