Projeto para treinamento em banco de dados PostgreSQL.
Dada uma planilha em Excel, inserir os dados da planilha num banco de dados PostgreSQL.
Dica: você pode usar Python junto com psycopg2 para se conectar no PostgreSQL.
Passos:
- Criar uma virtualenv
- Instalar psycopg2
- Ler os dados da planilha Excel
- Tratar os dados, se necessário
- Inserir os dados no banco PostgreSQL
- Coloque seu projeto no Gitlab, ou Github pessoal e me manda o link do repositório
Dada uma planilha com dados de Produtos e outra de Categorias, inserir os dados num banco de dados PostgreSQL, relacionando cada produto com sua categoria.
Os passos são idênticos aos anteriores.
Coloque tudo no mesmo repositório.
Rodando o script...
python gen_data.py
... teremos 5 tabelas, conforme a ilustração a seguir:
Note que o preço de venda está desatualizado, pois ele precisa ser calculado em dólar, e o dólar está R$ 5,60.
- Insira todos os dados de todas as tabelas.
- Atualize o preço de venda de cada produto, considerando o dólar a R$ 5,60.
Nota: os registros não podem duplicar.
Dica: considere o nome dos campos igual os campos das planilhas.
https://gist.github.com/rg3915/1d9e49e14d610dbd4cfc03422012e000
Dica: monte uma lista com o script a seguir:
https://gist.github.com/rg3915/7210a14deae621822b0e3c302ba8c120
git clone https://github.com/grazimelo/banco-psql.git
cd banco-psql
python -m venv .venv
Para ativar a virtualenv digite:
source .venv/bin/activate
Para instalar as dependências:
pip install -r requirements.txt
sudo su - postgres
psql
CREATE ROLE my_usuario ENCRYPTED PASSWORD 'suasenha' login;
CREATE DATABASE my_db OWNER my_usuario;
sudo su - postgres
createdb my_db
createuser -P my_usuario
psql my_db
GRANT ALL PRIVILEGES ON DATABASE my_db TO my_usuario;
Crie um arquivo .env
com sua senha:
PASSWORD=<sua_senha>
Caso você queira deletar o usuário e o banco antes, digite
psql -U postgres -c "DROP USER my_usuario;"
psql -U postgres -c "DROP DATABASE my_db;"
Criando banco e tabelas
python create_database.py
python create_tables.py
python import_data.py
jupyter-notebook
http://pythonclub.com.br/tutorial-postgresql.html
https://github.com/juliano777/pgsql_fs2w/blob/master/postgresql_sql_basico.pdf
https://github.com/rg3915/fast-database
https://gist.github.com/rg3915/4ffb0bfdccf1a205ee1761185730411d
https://gist.github.com/rg3915/0f63ee9bde818c4a56abb110c94b855b
https://gist.github.com/rg3915/1d9e49e14d610dbd4cfc03422012e000
https://gist.github.com/rg3915/5fb3a2e7338115bc92e82b7a9a2b372b