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
5 changes: 5 additions & 0 deletions exercicios/para-casa/exportados_livros.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id,titulo,autor,ano,preco
1,Livro A,Autor A,2020,25.99
2,Livro B,Autor B,2019,19.99
3,Livro C,Autor C,2018,29.99
5,Livro E,Autor E,2022,22.99
Empty file.
Binary file not shown.
Binary file not shown.
94 changes: 94 additions & 0 deletions exercicios/para-casa/funcoes/funcoes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import sqlite3
import csv

def criar_banco_dados_tabela():
conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
id INTEGER PRIMARY KEY AUTOINCREMENT,
titulo TEXT,
autor TEXT,
ano INTEGER,
preco REAL NOT NULL
)
""")

conn.commit()
cursor.close()
conn.close()
return print("Banco criado")


def importar_csv():
conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
id INTEGER PRIMARY KEY AUTOINCREMENT,
titulo TEXT,
autor TEXT,
ano INTEGER,
preco REAL NOT NULL
)
""")

with open('livros.csv', newline='', encoding='utf-8') as csvfile:
leitor = csv.reader(csvfile)
next(leitor) # Pular o cabeçalho
for linha in leitor:
cursor.execute("INSERT INTO livros (titulo, autor, ano, preco) VALUES (?, ?, ?, ?)", (linha[0], linha[1], linha[2], linha[3]))

conn.commit()
cursor.close()
conn.close()

def exibir_dados():
conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

cursor.execute("SELECT * FROM livros")
registros = cursor.fetchall()

for registro in registros:
print(registro)

cursor.close()
conn.close()

def atualizar_dados(id, valor):
conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

cursor.execute("UPDATE livros SET preco = ? WHERE id = ?", (valor, id))

conn.commit()
cursor.close()
conn.close()

def remover_dados(id):
conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

cursor.execute("DELETE FROM livros WHERE id = ?", (id,))

conn.commit()
cursor.close()
conn.close()

def exportar_csv():
conn = sqlite3.connect('livraria.db')
cursor = conn.cursor()

cursor.execute("SELECT * FROM livros")
dados = cursor.fetchall()

with open('exportados_livros.csv', 'w', newline='', encoding='utf-8') as csvfile:
escritor = csv.writer(csvfile)
escritor.writerow(['id', 'titulo', 'autor', 'ano', 'preco'])
escritor.writerows(dados)

cursor.close()
conn.close()
Binary file added exercicios/para-casa/livraria.db
Binary file not shown.
6 changes: 6 additions & 0 deletions exercicios/para-casa/livros.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
titulo,autor,ano,preco
Livro A,Autor A,2020,25.99
Livro B,Autor B,2019,19.99
Livro C,Autor C,2018,29.99
Livro D,Autor D,2021,15.99
Livro E,Autor E,2022,22.99
39 changes: 39 additions & 0 deletions exercicios/para-casa/script.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from funcoes import funcoes

print("Escolha qual função de banco de dados deseja utilizar")
print("1. Criação do Banco de Dados e Tabela")
print("2. Importação de Dados de um CSV")
print("3. Consulta e Exibição de Dados")
print("4. Atualização de Dados")
print("5. Remoção de Dados")
print("6. Exportação de Dados para CSV")
print("0. Encerrar")
acao = int(input("Digite a opção escolhida: "))

while True:
if acao == 1:
funcoes.criar_banco_dados_tabela()
break
elif acao == 2:
funcoes.importar_csv()
break
elif acao == 3:
funcoes.exibir_dados()
break
elif acao == 4:
id = int(input("O valor de qual ID deseja alterar? "))
valor = float(input("Qual o novo valor? "))
funcoes.atualizar_dados(id, valor)
break
elif acao == 5:
id = int(input("Qual ID deseja remover? "))
funcoes.remover_dados(id)
break
elif acao == 6:
funcoes.exportar_csv()
break
elif acao == 0:
break
else:
print("Opção invalida!")
continue