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

Atividade Semana 08 - Maria Eduarda Bastos de Mello #3

Open
wants to merge 3 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
10 changes: 10 additions & 0 deletions exercicios/para-casa/atualizar_livro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import sqlite3

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

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

conn.commit()
cursor.close()
conn.close()
13 changes: 13 additions & 0 deletions exercicios/para-casa/consultar_livros.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
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()
18 changes: 18 additions & 0 deletions exercicios/para-casa/criar_banco.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sqlite3

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()
cursor.close()
conn.close()
16 changes: 16 additions & 0 deletions exercicios/para-casa/exportar_csv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
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()
18 changes: 18 additions & 0 deletions exercicios/para-casa/importar_csv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sqlite3
import csv

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

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

conn.commit()
cursor.close()
conn.close()
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
Orgulho e Preconceito,Jane Austen,1813,44.99
Amor & Azeitonas,Jenna Evans Welch,2021,39.99
Querido Evan Hansen,Val Emmich,2019,29.99
Vidas Secas,Graciliano Ramos,1938,27.99
Crisálida,Vinicius Velo,2021,49.99
10 changes: 10 additions & 0 deletions exercicios/para-casa/remover_livro.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import sqlite3

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

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

conn.commit()
cursor.close()
conn.close()
Binary file added exercicios/para-sala/csv/empresa.db
Binary file not shown.
6 changes: 6 additions & 0 deletions exercicios/para-sala/csv/exportados_clientes.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
id,nome,email
1,João,[email protected]
2,Maria,[email protected]
3,Pedro,[email protected]
4,Luiza,[email protected]
5,Fernando,[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,3 @@ id,nome,departamento
1,Ana,Financeiro
2,Carlos,TI
3,Beatriz,RH
4,Daniel,Marketing
5,Elisa,Vendas
19 changes: 19 additions & 0 deletions exercicios/para-sala/csv/script10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#Faça um script que exporte os dados da tabela clientes de empresa.db para um arquivo chamado exportados_clientes.csv.

import sqlite3
import csv

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)

conn.commit()
cursor.close()
conn.close()
8 changes: 8 additions & 0 deletions exercicios/para-sala/csv/script7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#Crie um script que leia o arquivo CSV 'produtos.csv' 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)
14 changes: 14 additions & 0 deletions exercicios/para-sala/csv/script8.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#Escreva um script que crie um arquivo CSV chamado funcionarios.csv com as colunas id, nome, departamento.

import csv

funcionarios = [
[1, 'Ana', 'Financeiro'],
[2, 'Carlos', 'TI'],
[3, 'Beatriz', 'RH']
]

with open('funcionarios.csv', 'w', newline='', encoding='utf-8') as csvfile:
escritor = csv.writer(csvfile)
escritor.writerow(['id', 'nome', 'departamento'])
escritor.writerows(funcionarios)
25 changes: 25 additions & 0 deletions exercicios/para-sala/csv/script9.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#Crie um script que leia o arquivo 'clientes.csv' e insira os dados numa tabela 'clientes' no database empresa.db.

import csv
import sqlite3

conn = sqlite3.connect('empresa.db') #como ainda não existe, iremos criar esse database
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS clientes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
email TEXT NOT NULL
)
""")

with open('clientes.csv', newline='', encoding='utf-8') as csvfile:
leitor = csv.reader(csvfile)
next(leitor) #pulando o cabeçalho para não atribuir os nomes das coluna como dados
for linha in leitor:
cursor.execute("INSERT INTO clientes (nome, email) VALUES (?, ?)", (linha[1], linha[2]))

conn.commit()
cursor.close()
conn.close()
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") #como o database ainda não existia, ao rodarmos o programa, ele será criado
cursor = conn.cursor() #criando um cursor para interagir com o SQL

cursor.execute("""
CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
idade INTEGER NOT NULL
)""")
#criou-se a tabela usuarios (caso já não existisse) com colunas id, nome e idade (que não aceitam valores vazios)

#cursor.execute("INSERT INTO usuarios (nome, idade) VALUES ('João', 18)")
#cursor.execute("INSERT INTO usuarios (nome, idade) VALUES ('Maria', 19)")

cursor.execute("SELECT * FROM usuarios")

registros = cursor.fetchall() #guardando aquilo selecionado com o SELECT na variável "registros"

for registro in registros:
print(registro)

conn.commit() #executará de fato aquilo apontado nos executes

conn.close() #fechando a conexão
Binary file added exercicios/para-sala/exercicio/escola.db
Binary file not shown.
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 @@
#Exercício 1: crie um script Python que crie um banco de dados SQLite chamado escola.db. Em seguida, crie uma
#tabela chamada estudantes com as colunas id, nome e idade.

import sqlite3

conn = sqlite3.connect("escola.db") #conexão com o database (que como não existia será criado)
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()
18 changes: 18 additions & 0 deletions exercicios/para-sala/exercicio/script2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#Escreva um script que insira três registros na tabela estudantes.

import sqlite3

conn = sqlite3.connect("escola.db") #conexão com o database (que como não existia será criado)
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()
28 changes: 28 additions & 0 deletions exercicios/para-sala/exercicio/script3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#Crie um script que selecione e exiba todos os registros da tabela estudantes.

import sqlite3

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

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

for registro in registros:
print(registro)

#EXTRA: crie um script que pergunte um nome ao usuário, selecione e exiba todos os registros com esse nome.

nome = input("Insira o nome que deseja consultar: ")

cursor.execute("SELECT * FROM estudantes WHERE nome = ?", (nome,))
#a vírgula após a variável/argumento é necessária por motivos de sintaxe

registros = cursor.fetchall()

for registro in registros:
print(registro)

#no uso exclusivo do SELECT, não é necessário commitar, pois é apenas uma consulta de dados, não uma atualização
cursor.close()
conn.close()
20 changes: 20 additions & 0 deletions exercicios/para-sala/exercicio/script4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#Escreva um script que atualize a idade de um estudante específico (por exemplo, mude a idade de "Bob" para 23).

import sqlite3

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

cursor.execute("UPDATE estudantes SET idade = ? WHERE nome = ?", (23, 'Bob'))

#Escreva um script que atualize os dados de um registro com base em seu id, com dados recebidos pelo usuário.

id = int(input("Insira o ID do registro que deseja atualizar: "))
nome = input("Insira o nome: ")
idade = (input("Insira a idade: "))

cursor.execute("UPDATE estudantes SET nome = ?, idade = ? WHERE id = ?", (nome, idade, id))

conn.commit()
cursor.close()
conn.close()
12 changes: 12 additions & 0 deletions exercicios/para-sala/exercicio/script5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#Crie um script que remova o registro de um estudante específico (por exemplo, remova "Charlie").

import sqlite3

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

cursor.execute("DELETE FROM estudantes WHERE nome = ?", ('Charlie',))

conn.commit()
cursor.close()
conn.close()
15 changes: 15 additions & 0 deletions exercicios/para-sala/exercicio/script6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#Escreva um script que selecione e exiba todos os estudantes cuja idade seja maior que 21.

import sqlite3

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

cursor.execute("SELECT * FROM estudantes WHERE idade > 21")
registros = cursor.fetchall()

for registro in registros:
print(registro)

cursor.close()
conn.close()
Loading