Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pamela F - Semana 08 #17

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
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
6 changes: 6 additions & 0 deletions exercicios/exportados_livros.csv
Original file line number Diff line number Diff line change
@@ -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
Binary file added exercicios/livraria.db
Binary file not shown.
7 changes: 7 additions & 0 deletions exercicios/livros.csv
Original file line number Diff line number Diff line change
@@ -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
Binary file added exercicios/para-casa/livraria.db
Binary file not shown.
7 changes: 7 additions & 0 deletions exercicios/para-casa/livros.csv
Original file line number Diff line number Diff line change
@@ -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
85 changes: 85 additions & 0 deletions exercicios/para-casa/script1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import sqlite3
import csv

# 1. **Criação do Banco de Dados e Tabela**
def criar_db():
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()

criar_db()

#2. **Importação de Dados de um CSV**
def criar_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

# Chamar a função para criar o arquivo CSV
criar_csv()

def importar_dadoscsv():
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 clientes.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
id, titulo, autor, ano, preco = 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 (?, ?, ?, ?, ?)", (id, titulo, autor, ano, preco))

conn.commit() # comenta as alterações
cursor.close() # desliga o cursor
conn.close() # desliga a conexãoconn = sqlite3.connect('empresa.db') # cria a conexão com o banco de dados
cursor = conn.cursor() # cria o cursor para andar dentro do db
importar_dadoscsv()


# 3. **Consulta e Exibição de Dados**
def exibir_db(livros):
return livros

# 4. **Atualização de Dados**
def atualizar_dados():
return atualizar_dados

# 5. **Remoção de Dados**
def remover_dados():
return remover_dados

# 6. **Exportação de Dados para CSV**
def exportar_dados(livros_exportados):
return livros_exportados




27 changes: 27 additions & 0 deletions exercicios/para-casa2/script1.py
Original file line number Diff line number Diff line change
@@ -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()
23 changes: 23 additions & 0 deletions exercicios/para-casa2/script2.py
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions exercicios/para-casa2/script3.py
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions exercicios/para-casa2/script4.py
Original file line number Diff line number Diff line change
@@ -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()
21 changes: 21 additions & 0 deletions exercicios/para-casa2/script5.py
Original file line number Diff line number Diff line change
@@ -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()
24 changes: 24 additions & 0 deletions exercicios/para-casa2/script6.py
Original file line number Diff line number Diff line change
@@ -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()
24 changes: 24 additions & 0 deletions exercicios/para-casa2/script7.py
Original file line number Diff line number Diff line change
@@ -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()
10 changes: 10 additions & 0 deletions exercicios/para-sala/CSV/script1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""7. **Leitura de CSV**:
- Crie um script que leia um arquivo CSV chamado `produtos.csv` contendo as colunas `id`, `nome` e `preco`, e exiba seu conteúdo no terminal.
"""

import csv

with open('produtos.csv', newline='', encoding='utf-8') as csvfile:
leitor = csv.reader(csvfile)
for linha in leitor:
print(linha)
30 changes: 30 additions & 0 deletions exercicios/para-sala/CSV/script2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""9. **Importação de CSV para SQLite**:
- Crie um script que leia um arquivo CSV chamado `clientes.csv` e insira os dados em uma tabela `clientes` no banco de dados SQLite `empresa.db`. A tabela deve ter as colunas `id`, `nome`, `email`.
"""

import sqlite3
import csv

conn = sqlite3.connect('empresa.db') # cria a conexão com o banco de dados
cursor = conn.cursor() # cria o cursor para andar dentro do db

# criação da tabela
cursor.execute("""
CREATE TABLE IF NOT EXISTS clientes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
email TEXT NOT NULL
)
""")
# 1. verifica se existe clientes.csv, 2. cria a ultima linha vazia e encoding formata como um arquivo csv (csvfile)
with open('clientes.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 clientes (nome, email) VALUES (?, ?)", (linha[1], linha[2]))

conn.commit() # comenta as alterações
cursor.close() # desliga o cursor
conn.close() # desliga a conexão
Binary file added exercicios/para-sala/exemplo/exemplo.db
Binary file not shown.
26 changes: 26 additions & 0 deletions exercicios/para-sala/exemplo/script.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import sqlite3
conn = sqlite3.connect("exemplo.db")
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS usuarios(
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
idade INTEGER NOT NULL
)
""")


"""#inserir dois usuário na tabela exemplo db
cursor.execute("INSERT INTO usuarios (nome, idade) VALUES ('Pam', 29) ")
cursor.execute("INSERT INTO usuarios (nome, idade) VALUES ('kiko', 89) ")"""

#pegar todos os dados? da tabela exemplo db
cursor.execute("Select * FROM usuarios")
registros= cursor.fetchall()

for registro in registros:
print(registro)

# essas duas linhas seguintes são importantes de estarem presentes no final do codigo pq:
conn.commit() # Commit informa as alterações feitas na tabela
conn.close() # para fechar a conexão iniciada (boa prática)
Binary file added exercicios/para-sala/exercicio/escola.db
Binary file not shown.
16 changes: 16 additions & 0 deletions exercicios/para-sala/exercicio/script.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import sqlite3

conn = sqlite3.connect('escola.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 estudantes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
idade INTEGER NOT NULL
)
""")
conn.commit()
cursor.close()
conn.close()
18 changes: 18 additions & 0 deletions exercicios/para-sala/exercicio/script1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sqlite3

conn = sqlite3.connect('escola.db') # conexão
cursor = conn.cursor() # criar o cursor para usar dentro do sqlite

estudantes = [
('Pam', 29),
('Edu', 22),
('Tai', 29),
('Betania', 29),
('Atiladê', 29)
]

cursor.executemany("INSERT INTO estudantes (nome, idade) VALUES (?, ?)", estudantes)

conn.commit()
cursor.close() # fechar o cursos trabalhando dentro do sqlite
conn.close() # encerrar conexão com o sqlite
Loading