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 .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"githubPullRequests.ignoredPullRequestBranches": [
"main"
]
}
33 changes: 33 additions & 0 deletions Carolyne-Santos/para-casa/1.Criar_Banco_e_Tabela.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# 1. **Criando o Banco de Dados e a Tabela**
# - Crie um banco de dados SQLite chamado `livraria.db`.
# - Crie uma tabela chamada `livros` com as seguintes colunas:
# - `id` (INTEGER, chave primária, autoincremento)
# - `titulo` (TEXT)
# - `autor` (TEXT)
# - `ano` (INTEGER)
# - `preco` (REAL)

import sqlite3
print(sqlite3.sqlite_version)


#Com a criação da variável abaixo estamos criando um banco de dados chamado "livraria.db"
conn = sqlite3.connect('livraria.db')

#Com a variável abaixo, estamos criando um cursos, que vai ser o elemento que vai receber comandos
cursor = conn.cursor()


#Agora vamos inserir as informações nesse banco de dados usando os comandos conforme usamos no SQLite, contudo, aqui, temos que dar alguns comandos adicionais por estarmos fazendo isso em Python

#Começamos pedindo para que o cursor execute essa criação, que vai ser delineada por meio de uma string que vai passar os parâmetros de cada campo dessa tabela que será criada.

cursor.execute("""
CREATE TABLE IF NOT EXISTS livros (
id INTEGER PRIMARY KEY AUTOINCREMENT,
titulo TEXT NOT NULL,
autor TEXT NOT NULL,
ano INTEGER,
preco REAL
)
""")
27 changes: 27 additions & 0 deletions Carolyne-Santos/para-casa/2.Criar_arquivo_CSV.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 2. **Importando 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 do `livros.csv` e insira-os na tabela `livros`.

import csv

#Vamos realizar uma escrita em csv. Nesse caso, como não há um arquivo csv com o nome que iremos utilizar (livros), vamos escrever (write) o que queremos que esteja inserido nesse arquivo csv e o próprio comando de escrita, por não encontrar um arquivo com esse nome, entende que deve fazer a criação do arquivo.

#abaixo estamos criando a variável livros, que é uma lista de listas variadas (ou seja, com várias informações), porque contém vários dados dos livros
livros = [
[1, 'A Invenção do Racismo na Antiguidade', 'Mário Sérgio Conti', 2021, 39.90],
[2, 'Quarto de Despejo: Diário de uma Favelada', 'Carolina Maria de Jesus', 1960, 29.90],
[3, 'Pequeno Manual Antirracista', 'Djamila Ribeiro', 2019, 24.90],
[4, 'Olhares Negros: Raça e Representação', 'Bell Hooks', 1992, 34.90],
[5, 'Eu Sei Por Que o Pássaro Canta na Gaiola', 'Maya Angelou', 1969, 42.90],
[6, 'Racismo Estrutural', 'Silvio Almeida', 2019, 36.90],
[7, 'O Genocídio do Negro Brasileiro', 'Abdias do Nascimento', 1978, 49.90]
]

#aqui estamos de fato fazendo a criação desse csv com esses comandos abaixo
with open ('livros.csv', 'w', newline='', encoding='utf-8') as csvfile: #aqui falamos: com (with) a função open, abra (ou crie) todas essas coisas aqui (um arquivo chamado livros.csv, onde eu irei escrever (w) - isso porque por padrão o python cria um reader e não um writer. Entenda que a nova linha vem em branco (newline = '') e que os dados estarão no formato 'utf-8') como (as) um arquivo csv (csvfile)
escritor = csv.writer(csvfile) #aqui você cria uma variável escritor e cria um objeto writer que será usado para escrever dados nesse arquivo csv que foi criado acima
escritor.writerow (['id', 'titulo', 'autor', 'ano', 'preco']) #aqui nessa linha nós vamos pedir para que o escritor escreva uma linha com essas informações (writeROW)
escritor.writerows(livros) #nessa linha, pedimo que o escritor escreva várias linhas (writeROWS) com as informações que estão lá na lista livros que criamos acima


17 changes: 17 additions & 0 deletions Carolyne-Santos/para-casa/3.Consultando_e_Exibindo_Dados.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#3. **Consultando e Exibindo Dados**
# - Escreva um script Python que selecione e exiba todos os registros da tabela `livros`.#
#esse script Python permite a seleção e a exibição de todos os registros da tabela livros, contida no banco de dados livraria

import sqlite3

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
27 changes: 27 additions & 0 deletions Carolyne-Santos/para-casa/4.Atualizar_Livros.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 4. **Atualizando 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

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

select_id = input("Digite o id do livro que deseja alterar o preço: ")
indique_preco = input("Digite o novo preco: ")

cursor.execute('UPDATE livros SET preco = ? WHERE id = ?', (indique_preco, select_id))

conn.commit()

cursor.execute('SELECT * FROM livros WHERE id = ?', (select_id))
registro = cursor.fetchall()

print(f"Os dados do livro abaixo foram atualizado com o novo preço de {indique_preco}")
print(registro)


cursor.close
conn.close

atualizar()
35 changes: 35 additions & 0 deletions Carolyne-Santos/para-casa/5.Removendo_Dados.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# 5. **Removendo Dados**
# - Escreva um script Python que remova um livro específico da tabela (por exemplo, remova o livro com `id` 3).

import sqlite3


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

select_id = input("Digite o id que deseja deletar: ")

cursor.execute('SELECT * FROM livros WHERE id = ?', (select_id))
registro = cursor.fetchall()
print("Tem certeza que deseja deletar o registro abaixo?")
print(registro)

opcao = input("Digite sua opção - S: continuar / N: cancelar - : ")

if opcao.capitalize() == "S":
cursor.execute('DELETE FROM livros WHERE id = ?', (select_id))
print("Registro deletado")

elif opcao.capitalize() == "N":
print("Fim do programa")

else:
print("Você não digitou uma opção válida. Reinicie")
excluir()

conn.commit()
cursor.close
conn.close

excluir()
21 changes: 21 additions & 0 deletions Carolyne-Santos/para-casa/6.Exportar_Dados.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 6. **Exportando 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()

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

print("Dados foram exportados para o arquivo exportados_livros.csv")
149 changes: 149 additions & 0 deletions Carolyne-Santos/para-casa/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# 🏦🎲 Banco de Dados - Integração Completa de CSV com SQLite usando Python

## 📚 Descrição da Atividade

A ideia aqui é praticar como integrar arquivos CSV com um banco de dados SQLite usando Python. Vamos criar um banco de dados, importar dados de um arquivo CSV para uma tabela, fazer operações de CRUD (Create, Read, Update, Delete) e, no final, exportar os dados da tabela para um novo arquivo CSV.

## 📋 Passo a Passo

## 1. **Criando o Banco de Dados e a Tabela**

import sqlite3
print(sqlite3.sqlite_version)

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,
preco REAL
)
""")


## 2. **Importando Dados de um CSV**

import csv

livros = [
[1, 'A Invenção do Racismo na Antiguidade', 'Mário Sérgio Conti', 2021, 39.90],
[2, 'Quarto de Despejo: Diário de uma Favelada', 'Carolina Maria de Jesus', 1960, 29.90],
[3, 'Pequeno Manual Antirracista', 'Djamila Ribeiro', 2019, 24.90],
[4, 'Olhares Negros: Raça e Representação', 'Bell Hooks', 1992, 34.90],
[5, 'Eu Sei Por Que o Pássaro Canta na Gaiola', 'Maya Angelou', 1969, 42.90],
[6, 'Racismo Estrutural', 'Silvio Almeida', 2019, 36.90],
[7, 'O Genocídio do Negro Brasileiro', 'Abdias do Nascimento', 1978, 49.90]
]

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

## 3. **Consultando e Exibindo Dados**

import sqlite3

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

## 4. **Atualizando Dados**

import sqlite3

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

select_id = input("Digite o id do livro que deseja alterar o preço: ")
indique_preco = input("Digite o novo preco: ")

cursor.execute('UPDATE livros SET preco = ? WHERE id = ?', (indique_preco, select_id))

conn.commit()

cursor.execute('SELECT * FROM livros WHERE id = ?', (select_id))
registro = cursor.fetchall()

print(f"Os dados do livro abaixo foram atualizado com o novo preço de {indique_preco}")
print(registro)


cursor.close
conn.close

atualizar()

## 5. **Removendo Dados**

import sqlite3

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

select_id = input("Digite o id que deseja deletar: ")

cursor.execute('SELECT * FROM livros WHERE id = ?', (select_id))
registro = cursor.fetchall()
print("Tem certeza que deseja deletar o registro abaixo?")
print(registro)

opcao = input("Digite sua opção - S: continuar / N: cancelar - : ")

if opcao.capitalize() == "S":
cursor.execute('DELETE FROM livros WHERE id = ?', (select_id))
print("Registro deletado")

elif opcao.capitalize() == "N":
print("Fim do programa")

else:
print("Você não digitou uma opção válida. Reinicie")
excluir()

conn.commit()
cursor.close
conn.close

excluir()

## 6. **Exportando Dados para CSV**

import sqlite3
import 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

print("Dados foram exportados para o arquivo exportados_livros.csv")


## 👩🏻‍🏫 Profa. Leticia!
Professora [Leticia](https://davinyleticia.bio/)

## 🔚
1 change: 1 addition & 0 deletions Carolyne-Santos/para-casa/exportados_livros.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
id,titulo,autor,ano,preco
Binary file added Carolyne-Santos/para-casa/livraria.db
Binary file not shown.
8 changes: 8 additions & 0 deletions Carolyne-Santos/para-casa/livros.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
id,titulo,autor,ano,preco
1,A Invenção do Racismo na Antiguidade,Mário Sérgio Conti,2021,39.9
2,Quarto de Despejo: Diário de uma Favelada,Carolina Maria de Jesus,1960,29.9
3,Pequeno Manual Antirracista,Djamila Ribeiro,2019,24.9
4,Olhares Negros: Raça e Representação,Bell Hooks,1992,34.9
5,Eu Sei Por Que o Pássaro Canta na Gaiola,Maya Angelou,1969,42.9
6,Racismo Estrutural,Silvio Almeida,2019,36.9
7,O Genocídio do Negro Brasileiro,Abdias do Nascimento,1978,49.9
17 changes: 17 additions & 0 deletions Carolyne-Santos/para-sala/Ex1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import sqlite3
print(sqlite3.sqlite_version)

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

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()
15 changes: 15 additions & 0 deletions Carolyne-Santos/para-sala/Ex10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import sqlite3

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

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

with open('exportados_clientes.csv', 'w', newline='', encoding='utf-8') as csvfile:
escritor = csv.writer(csvfile)
escritor.writerow(['id', 'nome', 'email'])
escritor.writerows(dados)

cursor.close()
conn.close()
17 changes: 17 additions & 0 deletions Carolyne-Santos/para-sala/Ex2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import sqlite3
print(sqlite3.sqlite_version)

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

estudantes = [
('Alice', 21),
('Bob', 22),
('Charlie', 23)
]

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

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