From 834200b6316beeaea301356e0d70234acf2e163d Mon Sep 17 00:00:00 2001 From: Maze Date: Wed, 22 May 2024 22:34:52 -0300 Subject: [PATCH 1/2] resolucao1atividade --- exercicios/para-casa2/script1.py | 27 +++++++++++++++++++++++++++ exercicios/para-casa2/script2.py | 23 +++++++++++++++++++++++ exercicios/para-casa2/script3.py | 21 +++++++++++++++++++++ exercicios/para-casa2/script4.py | 17 +++++++++++++++++ exercicios/para-casa2/script5.py | 21 +++++++++++++++++++++ exercicios/para-casa2/script6.py | 24 ++++++++++++++++++++++++ exercicios/para-casa2/script7.py | 24 ++++++++++++++++++++++++ 7 files changed, 157 insertions(+) create mode 100644 exercicios/para-casa2/script1.py create mode 100644 exercicios/para-casa2/script2.py create mode 100644 exercicios/para-casa2/script3.py create mode 100644 exercicios/para-casa2/script4.py create mode 100644 exercicios/para-casa2/script5.py create mode 100644 exercicios/para-casa2/script6.py create mode 100644 exercicios/para-casa2/script7.py diff --git a/exercicios/para-casa2/script1.py b/exercicios/para-casa2/script1.py new file mode 100644 index 0000000..16f90da --- /dev/null +++ b/exercicios/para-casa2/script1.py @@ -0,0 +1,27 @@ +"""1. **Criação do Banco de Dados e Tabela** + - Crie um banco de dados SQLite chamado `livraria.db`. + - Crie uma tabela chamada `livros` com as colunas: + - `id` (INTEGER, chave primária, autoincremento) + - `titulo` (TEXT) + - `autor` (TEXT) + - `ano` (INTEGER) + - `preco` (REAL)""" + +import sqlite3 + +conn = sqlite3.connect('livraria.db') # conexão +cursor = conn.cursor() # criar o cursor para usar dentro do sqlite + +# comandos SQL para criação da tabela +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 +) +""") +conn.commit() +cursor.close() +conn.close() \ No newline at end of file diff --git a/exercicios/para-casa2/script2.py b/exercicios/para-casa2/script2.py new file mode 100644 index 0000000..74018b0 --- /dev/null +++ b/exercicios/para-casa2/script2.py @@ -0,0 +1,23 @@ +"""2. **Importação de Dados de um CSV** + - Crie um arquivo CSV chamado `livros.csv` com as colunas `titulo`, `autor`, `ano`, e `preco`. + - Adicione pelo menos 5 registros no arquivo `livros.csv`. + - Escreva um script Python que leia os dados de `livros.csv` e insira-os na tabela `livros`.""" + + +import csv + +livros = [ + (1, '1984', 'George Orwell', 1949, 28.90), + (2, 'Ninguém é de ninguém', 'Zibia Gasparetto', 2003, 43.00), + (3, 'Um gato entre os pombos', 'Agatha Christie', 1959, 24.70), + (4, 'Manual prático de como se perder a alma', 'Diedra Roiz', 2009, 0.00), + (5, '[10] coisas que eu odeio em você', 'Diedra Roiz', 2006, 24.99), + (6, 'Duas mulheres sozinhas e outros contos', 'Diedra Roiz', 2006, 2.99) + ] + +colunas = ['id', 'titulo', 'autor', 'ano', 'preco'] # Nome das colunas + +with open('./livros.csv', mode='w', newline='', encoding='utf-8') as csvfile: + escritor = csv.writer(csvfile, delimiter= ',') + escritor.writerow(colunas) # Escrever o cabeçalho + escritor.writerows(livros) # Escrever os dados \ No newline at end of file diff --git a/exercicios/para-casa2/script3.py b/exercicios/para-casa2/script3.py new file mode 100644 index 0000000..7dbed38 --- /dev/null +++ b/exercicios/para-casa2/script3.py @@ -0,0 +1,21 @@ +""" - Escreva um script Python que leia os dados de `livros.csv` e insira-os na tabela `livros`.""" + +import sqlite3 +import csv + +conn = sqlite3.connect('livraria.db') # cria a conexão com o banco de dados +cursor = conn.cursor() # cria o cursor para andar dentro do db + + +# 1. verifica se existe livros.csv, 2. cria a ultima linha vazia e encoding formata como um arquivo csv (csvfile) +with open('./livros.csv', newline='', encoding='utf-8') as csvfile: + leitor = csv.reader(csvfile) # armazena tudo lido na variavel leitor + next(leitor) # Pular o cabeçalho para ler somente o conteúdo útil + for linha in leitor: # a partir disso, começa a percorrer cada linha + + # aqui ele vai inserir tudo que estiver nas linhas 1 e 2 (menos o cabeçalho) no banco de dados + cursor.execute("INSERT INTO livros (id, titulo, autor, ano, preco) VALUES (?, ?, ?, ?, ?)", (linha [0], linha[1], linha[2], linha[3], linha [4])) + +conn.commit() # comenta as alterações +cursor.close() # desliga o cursor +conn.close() # desliga a conexão \ No newline at end of file diff --git a/exercicios/para-casa2/script4.py b/exercicios/para-casa2/script4.py new file mode 100644 index 0000000..d809cad --- /dev/null +++ b/exercicios/para-casa2/script4.py @@ -0,0 +1,17 @@ +"""3. **Consulta e Exibição de Dados** + - Escreva um script Python que selecione e exiba todos os registros da tabela `livros`.""" + +import sqlite3 + +conn = sqlite3.connect('livraria.db') +cursor = conn.cursor() # criar o cursor para usar dentro do sqlite + +cursor.execute("SELECT * FROM livros") +livros = cursor.fetchall() + +for livro in livros: + print(livro) + +conn.commit() +cursor.close() +conn.close() \ No newline at end of file diff --git a/exercicios/para-casa2/script5.py b/exercicios/para-casa2/script5.py new file mode 100644 index 0000000..720cfb0 --- /dev/null +++ b/exercicios/para-casa2/script5.py @@ -0,0 +1,21 @@ +""""4. **Atualização de Dados** + - Escreva um script Python que atualize o preço de um livro específico (por exemplo, + mude o preço do livro com `id` 1 para 29.99).""" + +import sqlite3 + +conn = sqlite3.connect('livraria.db') # conexão +cursor = conn.cursor() # criar o cursor para usar dentro do sqlite + +cursor.execute("UPDATE livros SET preco = 65.90 WHERE id = 4") # direciona o cursor para execução do comando SQL +cursor.execute("SELECT * FROM livros") + +livros_atualizados = cursor.fetchall() +print("Lista atualizada de livros:") + +for livro in livros_atualizados: + print(livro) + +conn.commit() +cursor.close() +conn.close() \ No newline at end of file diff --git a/exercicios/para-casa2/script6.py b/exercicios/para-casa2/script6.py new file mode 100644 index 0000000..6ea1b33 --- /dev/null +++ b/exercicios/para-casa2/script6.py @@ -0,0 +1,24 @@ +"""5. **Remoção de Dados** + - Escreva um script Python que remova um livro específico da tabela + (por exemplo, remova o livro com `id` 3).""" + +import sqlite3 + +conn = sqlite3.connect('livraria.db') # conexão +cursor = conn.cursor() # criar o cursor para usar dentro do sqlite + +cursor.execute("DELETE FROM livros WHERE id = 6") # direciona o cursor para execução do comando SQL + + +cursor.execute("SELECT * FROM livros") +livros_atualizados = cursor.fetchall() + +# Imprimir a lista atualizada de livros +print("Lista atualizada de livros:") +for livro in livros_atualizados: + print(livro) + + +conn.commit() +cursor.close() +conn.close() \ No newline at end of file diff --git a/exercicios/para-casa2/script7.py b/exercicios/para-casa2/script7.py new file mode 100644 index 0000000..f5e5792 --- /dev/null +++ b/exercicios/para-casa2/script7.py @@ -0,0 +1,24 @@ +"""6. **Exportação de Dados para CSV** + - Escreva um script Python que exporte os dados da tabela `livros` +para um novo arquivo CSV chamado `exportados_livros.csv`.""" + + +import sqlite3 +import csv + +conn = sqlite3.connect('livraria.db') +cursor = conn.cursor() + +cursor.execute("SELECT * FROM livros") +dados = cursor.fetchall() + +colunas = ['id', 'titulo', 'autor', 'ano', 'preco'] # Nome das colunas + +with open('./exportados_livros.csv', mode='w', newline='', encoding='utf-8') as csvfile: + escritor = csv.writer(csvfile, delimiter= ',') + escritor.writerow(colunas) # Escrever o cabeçalho + escritor.writerows(dados) # Escrever os dados + +conn.commit() +cursor.close() +conn.close() \ No newline at end of file From 71055112f95213a41d8bccbd10848c14592a9c16 Mon Sep 17 00:00:00 2001 From: Maze Date: Wed, 22 May 2024 22:36:33 -0300 Subject: [PATCH 2/2] resolucao1_atvcasa_sala --- exercicios/exportados_livros.csv | 6 ++ exercicios/livraria.db | Bin 0 -> 12288 bytes exercicios/livros.csv | 7 ++ exercicios/para-casa/livraria.db | Bin 0 -> 12288 bytes exercicios/para-casa/livros.csv | 7 ++ exercicios/para-casa/script1.py | 85 ++++++++++++++++++ exercicios/para-sala/{ => CSV}/clientes.csv | 0 .../para-sala/{ => CSV}/funcionarios.csv | 0 exercicios/para-sala/{ => CSV}/produtos.csv | 0 exercicios/para-sala/CSV/script1.py | 10 +++ exercicios/para-sala/CSV/script2.py | 30 +++++++ exercicios/para-sala/exemplo/exemplo.db | Bin 0 -> 12288 bytes exercicios/para-sala/exemplo/script.py | 26 ++++++ exercicios/para-sala/exercicio/escola.db | Bin 0 -> 12288 bytes exercicios/para-sala/exercicio/script.py | 16 ++++ exercicios/para-sala/exercicio/script1.py | 18 ++++ exercicios/para-sala/exercicio/script2.py | 18 ++++ exercicios/para-sala/exercicio/script3.py | 13 +++ exercicios/para-sala/exercicio/script4.py | 19 ++++ exercicios/para-sala/exercicio/script5.py | 16 ++++ 20 files changed, 271 insertions(+) create mode 100644 exercicios/exportados_livros.csv create mode 100644 exercicios/livraria.db create mode 100644 exercicios/livros.csv create mode 100644 exercicios/para-casa/livraria.db create mode 100644 exercicios/para-casa/livros.csv create mode 100644 exercicios/para-casa/script1.py rename exercicios/para-sala/{ => CSV}/clientes.csv (100%) rename exercicios/para-sala/{ => CSV}/funcionarios.csv (100%) rename exercicios/para-sala/{ => CSV}/produtos.csv (100%) create mode 100644 exercicios/para-sala/CSV/script1.py create mode 100644 exercicios/para-sala/CSV/script2.py create mode 100644 exercicios/para-sala/exemplo/exemplo.db create mode 100644 exercicios/para-sala/exemplo/script.py create mode 100644 exercicios/para-sala/exercicio/escola.db create mode 100644 exercicios/para-sala/exercicio/script.py create mode 100644 exercicios/para-sala/exercicio/script1.py create mode 100644 exercicios/para-sala/exercicio/script2.py create mode 100644 exercicios/para-sala/exercicio/script3.py create mode 100644 exercicios/para-sala/exercicio/script4.py create mode 100644 exercicios/para-sala/exercicio/script5.py diff --git a/exercicios/exportados_livros.csv b/exercicios/exportados_livros.csv new file mode 100644 index 0000000..8dd2652 --- /dev/null +++ b/exercicios/exportados_livros.csv @@ -0,0 +1,6 @@ +id,titulo,autor,ano,preco +1,1984,George Orwell,1949,28.9 +2,Ninguém é de ninguém,Zibia Gasparetto,2003,43.0 +3,Um gato entre os pombos,Agatha Christie,1959,24.7 +4,Manual prático de como se perder a alma,Diedra Roiz,2009,65.9 +5,[10] coisas que eu odeio em você,Diedra Roiz,2006,24.99 diff --git a/exercicios/livraria.db b/exercicios/livraria.db new file mode 100644 index 0000000000000000000000000000000000000000..be8f421a890d16381a7919d35275269842a4de5b GIT binary patch literal 12288 zcmeI&L2DC16ae7aO`DZK6E9MFktZH(NtKpLsn|kdx`bkyv~deYDKbr_&A{%?c4oF> zZwmeh1rOpusz(vL=O+k?2d`fAsNhBLrLkg*AXxAq?~z$DZ|A*azT0eaZM7z?fK8<% zZefO}m7D*<3RS#NkN^pg011!)36KB@ zkN^pg011%5zY%rvyN-J#|DhT}R0n{5f)@rrE9iCdHe|sZVKf50;NwjDyz$pxDtiuNYAW~2rAr*)Sc2v9f z>~Qtmx8%v&+yWvj;4V)5)h=c;S$4VTdTSAEaf_c6Ta91YK%$}zWy+ZBa;S8*G*$}l zX=(1oOh2YvtUK>Ibs2A^y}bx}dwsU}$MlBWkQ}PqBwPz?mG`=M#>ui%=Ui|4(%i+W zPyb$T^uY JXYfaa?02K_?0WzJ literal 0 HcmV?d00001 diff --git a/exercicios/livros.csv b/exercicios/livros.csv new file mode 100644 index 0000000..27f323b --- /dev/null +++ b/exercicios/livros.csv @@ -0,0 +1,7 @@ +id,titulo,autor,ano,preco +1,1984,George Orwell,1949,28.9 +2,Ninguém é de ninguém,Zibia Gasparetto,2003,43.0 +3,Um gato entre os pombos,Agatha Christie,1959,24.7 +4,Manual prático de como se perder a alma,Diedra Roiz,2009,0.0 +5,[10] coisas que eu odeio em você,Diedra Roiz,2006,24.99 +6,Duas mulheres sozinhas e outros contos,Diedra Roiz,2006,2.99 diff --git a/exercicios/para-casa/livraria.db b/exercicios/para-casa/livraria.db new file mode 100644 index 0000000000000000000000000000000000000000..10b2c0f2ca693adcdc30f52897decddaa098fefb GIT binary patch literal 12288 zcmeI&&1(}u6aetqP2H7%jTb4o$devyN!6B0skB03yOdx)+PDRy6qzK`W?*+GotbT+ zHwFI;58^?pM-jZ|PY@Ijy?W832QPvz{nA#%iwBYS$ZRsR^WG%C+goyHr6R3>b){o& zVVa$1j>C!oj4>BS2FFo2_+jX1g71U*pTcEV+s--M#VkN^pg011!)36KB@ zkN^pg011%5-xgSQy^%t}X1k%65tPCJ!qTlu0H^kjB|H`r zm^uEi=J+G|yz^*#zh)%2v@!=*_e6z*H5kjnVaN`YYhkbyG+?<=u9g~2xE(a1v>MjS zHB7ArwQ%Bix0N=H6okRu5NdTCtCh-+yF9f@|Mq60j!*hEwWmc}0shv?{#oOL-rO60 z&2oFWmpPN08UBhB3KAdz5+DH*AOR8}0TLhq5+DH*_!k69p2wP_uD_Ua192L4g%$>k z+L1{YR|KfkVqXqzl~`pKrRZo54JCK{cSZlx5m+l$U2WQrRsP$;CC6hIF1!BJjoIrcp5A`kB)l@|THl;b)ApVu0mI2SH&xwX3OcKC(paJ%g_YYjcME*jq9Y-Bj-EAEMFk2jjS zwH@cPKk%imz89Il%axP8d4^31duOlgg*~$=o3P1B{0Mvm1Rwwb2tWV=5P$##AOHaf zK;Rz>?Cnx#6htSQVErr2XAELdI}Uo%e|oew41*lds)}V8NXtwcWQTe(u*_7F34c^D vX_B>M-%9rXl)VvsAs_$&2tWV=5P$##AOHafKmY;|_#* 25") +registros = cursor.fetchall() + +for registro in registros: + print(registro) + +cursor.close() +conn.close \ No newline at end of file