Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 29 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,36 @@
<h1 align="center">
<img src="assets/reprograma-fundos-claros.png" alt="logo reprograma" width="500">
<img style="background: white;width: 30%" src="assets/reprograma-fundos-claros.png" alt="logo reprograma" width="500">
</h1>

# Tema da Aula
# Reprograma | Bootcamp de Análise de Dados
## 🚀 Exercícios para Casa
Turma Online on29 | Semana 08 | 2024 | Professora Daviny Letícia

Este repositório contém os exercícios desenvolvidos durante a **Semana 08** do curso de Análise de Dados da turma Online On29 da Reprograma. Os desafios foram realizados para consolidar os conhecimentos adquiridos em aula.

## 📌 Descrição
Nesta semana, exploramos a continuidade do trabalho com bancos de dados relacionais, avançando para o uso de operações mais complexas, como joins, subconsultas e views. O objetivo foi aprofundar o uso de SQL e Python para realizar consultas mais robustas e eficazes.

## 🎯 Objetivos do projeto
- Implementar joins entre múltiplas tabelas para combinar dados de diferentes fontes.
- Utilizar subconsultas para realizar consultas complexas.
- Criar views para facilitar a reutilização de consultas SQL.
- Integrar essas operações com Python utilizando a biblioteca sqlite3.

## 📝 Conteúdo do Repositório
O repositório está organizado da seguinte maneira:
- banco_de_dados.db: Arquivo do banco de dados gerado e manipulado pelo código Python.
- main.py: Código principal onde as operações do banco de dados são realizadas.
- requirements.txt: Dependências do projeto (caso existam).

## 🖥️ Tecnologias utilizadas
- Python: Linguagem de programação utilizada para interagir com o banco de dados.
- SQLite: Sistema de banco de dados relacional leve e fácil de usar.
- SQL: Linguagem para manipulação dos dados no banco de dados.


---

Turma Online 0n29 | Python | Semana 8 | 2024 | Professora Daviny Letícia

### Instruções
Antes de começar, vamos organizar nosso setup.
Expand Down
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
16 changes: 16 additions & 0 deletions exercicios/para-casa/pacote/script1_criar_banco.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import sqlite3

def criar_banco():
conn = sqlite3.connect("livraria.db")
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 NOT NULL,
preco REAL NOT NULL
)
""")

conn.commit()
17 changes: 17 additions & 0 deletions exercicios/para-casa/pacote/script2_criar_csv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import csv
import sqlite3

def criar_csv():
dados = [
['titulo', 'autor', 'ano', 'preco'],
['Dom Casmurro', 'Machado de Assis', 1899, 32.43],
['Orgulho e preconceito', 'Jane Austen', 1813, 35.20],
['O Diário de Anne Frank', 'Anne Frank', 1947, 23.90],
['Percy Jackson', 'Rick Riordan', 2005, 29.90],
['Fahrenheit 451', 'Ray Bradbury', 1953, 42.50]
]

with open('livros.csv', 'w', newline='') as livros_csv:
escritor = csv.writer(livros_csv)
escritor.writerows(dados)

17 changes: 17 additions & 0 deletions exercicios/para-casa/pacote/script2_importar_csv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import csv
import sqlite3

conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

def importar_csv():
with open('livros.csv', 'r') as livros_csv:
leitor = csv.reader(livros_csv)
next(leitor)
for linha in livros_csv:
cursor.execute("INSERT INTO livros (titulo, autor, ano, preco) VALUES (?, ?, ?, ?)", linha.split(','))

conn.commit()



11 changes: 11 additions & 0 deletions exercicios/para-casa/pacote/script3_consultar_livros.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import sqlite3

conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

def consultar_livros():
cursor.execute("SELECT * FROM livros")
resultados = cursor.fetchall()
for linha in resultados:
print(linha)
conn.commit()
8 changes: 8 additions & 0 deletions exercicios/para-casa/pacote/script4_atualizar_livro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import sqlite3

conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

def atualizar_livro():
cursor.execute("UPDATE livros SET preco = ? WHERE titulo = ?", (32.50, 'Dom Casmurro'))
conn.commit()
8 changes: 8 additions & 0 deletions exercicios/para-casa/pacote/script5_remover_livro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import sqlite3

conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

def remover_livro():
cursor.execute("DELETE FROM livros WHERE id = ?", (2,))
conn.commit()
14 changes: 14 additions & 0 deletions exercicios/para-casa/pacote/script6_exportar_csv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import csv
import sqlite3

conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

def exportar_csv():
cursor.execute("SELECT titulo, autor, ano, preco FROM livros")
dados = cursor.fetchall()
with open('exportados.csv', 'w', newline='') as exportados_livros:
escritor = csv.writer(exportados_livros)
escritor.writerow(['titulo', 'autor', 'ano', 'preco'])
escritor.writerows(dados)
conn.commit()
14 changes: 14 additions & 0 deletions exercicios/para-casa/pacote/script_pacote.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import csv
import sqlite3

from pacote import script1_criar_banco, script2_criar_csv, script2_importar_csv, script3_consultar_livros, script4_atualizar_livro, script5_remover_livro, script6_exportar_csv

funcao1 = script1_criar_banco.criar_banco()
funcao2 = script2_criar_csv.criar_csv()
funcao2_2 = script2_importar_csv.importar_csv()
funcao3 = script3_consultar_livros.consultar_livros()
funcao4 = script4_atualizar_livro.atualizar_livro()
funcao5 = script5_remover_livro.remover_livro()
funcao6 = script6_exportar_csv.exportar_csv()

print("Programa concluído com sucesso")