Manipulação de Dados em Python: SQLite, MySQL e PostgreSQL

SQLite-e-python

Python é uma linguagem versátil e amplamente utilizada para manipular bancos de dados. Este tutorial detalhado apresenta como conectar, criar e gerenciar bancos de dados usando SQLite, MySQL e PostgreSQL. Também inclui exercícios práticos e um projeto real para consolidar o aprendizado.

Introdução à Manipulação de Bancos de Dados

Bancos de dados são fundamentais para armazenar, organizar e acessar informações de maneira eficiente. Em Python, você pode trabalhar com diferentes tipos de bancos de dados utilizando bibliotecas específicas, como sqlite3, MySQL Connector e psycopg2.

SQLite: Configuração e Operações Básicas
O que é SQLite?

SQLite é um banco de dados embutido que não requer instalação de software adicional. Ideal para projetos pequenos e protótipos.

Conectando e Criando um Banco de Dados
				
					import sqlite3

# Conectando ao banco de dados
conn = sqlite3.connect('livraria.db')  # Cria o banco de dados se ele não existir
cursor = conn.cursor()

# Criando uma tabela
cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    titulo TEXT NOT NULL,
    autor TEXT NOT NULL,
    ano INTEGER
)
""")
conn.commit()

				
			
Operações CRUD em SQLite
				
					import sqlite3

# Conectando ao banco de dados
conn = sqlite3.connect('livraria.db')  # Cria o banco de dados se ele não existir
cursor = conn.cursor()

# Criando uma tabela
cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    titulo TEXT NOT NULL,
    autor TEXT NOT NULL,
    ano INTEGER
)
""")
conn.commit()

				
			

Inserindo Dados

				
					cursor.execute("""
INSERT INTO livros (titulo, autor, ano)
VALUES ('Python para Iniciantes', 'João Silva', 2022)
""")
conn.commit()

				
			

Lendo Dados

				
					cursor.execute("SELECT * FROM livros")
for livro in cursor.fetchall():
    print(livro)

				
			

Atualizando Dados

				
					cursor.execute("""
UPDATE livros
SET autor = 'Maria Souza'
WHERE titulo = 'Python para Iniciantes'
""")
conn.commit()

				
			

Excluindo Dados

				
					cursor.execute("DELETE FROM livros WHERE titulo = 'Python para Iniciantes'")
conn.commit()

				
			

Fechando a Conexão

				
					conn.close()

				
			
MySQL: Configuração e Operações Básicas
Configuração do MySQL
  1. Instale o MySQL em seu sistema.
  2. Instale o conector Python:
				
					pip install mysql-connector-python

				
			
Conectando e Criando um Banco de Dados
				
					import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="sua_senha"
)
cursor = conn.cursor()

# Criando o banco de dados
cursor.execute("CREATE DATABASE IF NOT EXISTS livraria")
cursor.execute("USE livraria")

# Criando uma tabela
cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(255) NOT NULL,
    autor VARCHAR(255) NOT NULL,
    ano INT
)
""")

				
			
Operações CRUD em MySQL

O processo é semelhante ao SQLite, mas usa sintaxe MySQL.

Inserindo Dados

				
					cursor.execute("""
INSERT INTO livros (titulo, autor, ano)
VALUES ('Aprendendo MySQL', 'Ana Clara', 2023)
""")
conn.commit()
    
				
			

Atualização de Dados:

				
					cursor.execute("""
UPDATE livros
SET autor = 'Maria Souza'
WHERE titulo = 'Python para Iniciantes'
""")
conn.commit()

				
			

Ler Dados

				
					cursor.execute("SELECT * FROM livros")
for livro in cursor.fetchall():
    print(livro)

				
			

Excluir Dados

				
					cursor.execute("DELETE FROM clientes WHERE id = 1")
conn.commit()
				
			

Fechando a Conexão

				
					conn.close()

				
			
PostgreSQL: Configuração e Operações Básicas
Configuração do PostgreSQL
  1. Instale o PostgreSQL e configure o usuário.
  2. Instale o conector Python
				
					pip install psycopg2

				
			
Conectando e Criando um Banco de Dados
				
					import psycopg2

conn = psycopg2.connect(
    host="localhost",
    database="postgres",
    user="postgres",
    password="sua_senha"
)
cursor = conn.cursor()

# Criando uma tabela
cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
    id SERIAL PRIMARY KEY,
    titulo VARCHAR(255) NOT NULL,
    autor VARCHAR(255) NOT NULL,
    ano INT
)
""")
conn.commit()

				
			
Operações CRUD em PostgreSQL

As operações CRUD seguem a mesma lógica dos outros bancos.

Inserindo Dados

				
					cursor.execute("""
INSERT INTO livros (titulo, autor, ano)
VALUES ('Dominando PostgreSQL', 'Carlos Lima', 2024)
""")
conn.commit()

				
			

Lendo Dados

				
					cursor.execute("SELECT * FROM livros")
for livro in cursor.fetchall():
    print(livro)

				
			

Atualização de Dados:

				
					cursor.execute("""
UPDATE livros
SET autor = 'Maria Souza'
WHERE titulo = 'Python para Iniciantes'
""")
conn.commit()

				
			

Fechando a Conexão

				
					conn.close()

				
			
Projeto Prático: Sistema de Gerenciamento de Livros

Crie um sistema simples de gerenciamento de livros. Ele deve:

  • Conectar ao banco de dados.
  • Permitir adicionar, visualizar, editar e excluir livros.
  • Salvar e exibir os dados de maneira organizada.

Código

Veja o exemplo para SQLite:

				
					conn.close()import sqlite3

def conectar():
    return sqlite3.connect('livraria.db')

def criar_tabela():
    conn = conectar()
    cursor = conn.cursor()
    cursor.execute("""
    CREATE TABLE IF NOT EXISTS livros (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        titulo TEXT NOT NULL,
        autor TEXT NOT NULL,
        ano INTEGER
    )
    """)
    conn.commit()
    conn.close()

def adicionar_livro(titulo, autor, ano):
    conn = conectar()
    cursor = conn.cursor()
    cursor.execute("""
    INSERT INTO livros (titulo, autor, ano)
    VALUES (?, ?, ?)
    """, (titulo, autor, ano))
    conn.commit()
    conn.close()

def listar_livros():
    conn = conectar()
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM livros")
    for livro in cursor.fetchall():
        print(livro)
    conn.close()

# Chamadas de Função
criar_tabela()
adicionar_livro("Python Avançado", "João", 2023)
listar_livros()

				
			
Exercícios para Prática
  • Crie uma aplicação que permita gerenciar uma lista de filmes.
  • Implemente uma função que exporte dados do banco de dados para um arquivo CSV.
  • Adapte o projeto de gerenciamento de livros para usar MySQL ou PostgreSQL.
O que são APIs e por que usá-las?

APIs (Application Programming Interfaces) permitem que diferentes aplicações se comuniquem. Com APIs, você pode acessar dados e funcionalidades de outros serviços, como APIs de redes sociais, serviços financeiros e meteorológicos.

Como Integrar APIs em Python com a Biblioteca Requests

A biblioteca requests é a ferramenta mais utilizada para consumir APIs em Python. Instale-a com:

				
					pip install requests

				
			

Fazendo Requisições

Abaixo, um exemplo de requisição GET:

				
					import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts')
if response.status_code == 200:
    dados = response.json()
    for post in dados[:5]:
        print(f"Título: {post['title']}")

				
			

Enviando Dados com POST

				
					novo_post = {
    "title": "Novo Post",
    "body": "Este é o conteúdo do post.",
    "userId": 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=novo_post)
print(response.json())

				
			
Trabalhando com APIs RESTful: Um Exemplo Prático

Vamos combinar manipulação de banco de dados com integração de APIs.

Exemplo: Armazenar Dados de uma API no Banco de Dados

Aqui, buscamos dados de uma API e os armazenamos no SQLite.

				
					import sqlite3
import requests

# Conectar ao banco de dados
conn = sqlite3.connect('meubanco.db')
cursor = conn.cursor()

# Criar tabela de posts
cursor.execute("""
CREATE TABLE IF NOT EXISTS posts (
    id INTEGER PRIMARY KEY,
    titulo TEXT,
    conteudo TEXT,
    userId INTEGER
)
""")
conn.commit()

# Requisição à API
response = requests.get('https://jsonplaceholder.typicode.com/posts')
if response.status_code == 200:
    posts = response.json()
    for post in posts:
        cursor.execute("""
        INSERT INTO posts (id, titulo, conteudo, userId)
        VALUES (?, ?, ?, ?)
        """, (post['id'], post['title'], post['body'], post['userId']))
conn.commit()
conn.close()

				
			
Dicas de Boas Práticas ao Trabalhar com Bancos de Dados e APIs
  • Use variáveis de ambiente: Nunca armazene credenciais de APIs no código.
  • Trate erros: Utilize blocos try-except para lidar com falhas em conexões.
  • Evite sobrecarga de requisições: Limite a frequência de chamadas à API.
  • Sanitize entradas no banco de dados: Evite SQL Injection usando placeholders.
Conclusão

Neste tutorial, abordamos os fundamentos da manipulação de bancos de dados e integração com APIs em Python, com exemplos práticos e detalhados. Dominar esses conceitos permite que você crie aplicações robustas e dinâmicas, combinando armazenamento de dados e consumo de serviços externos.

Nos próximos tutoriais, exploraremos desenvolvimento web com Python, utilizando frameworks como Flask e Django para criar aplicações web completas. Fique atento!

Lembrando que você pode ler a documentação Oficial do Python para aprender e tirar dúvidas

Notícias Relacionadas

Categorias

Redes Sociais