Criação de tabelas para estudo de Oracle SQL com Python e SQL Developer

Nas aulas de SQL que tenho ministrado, um dos pontos mais trabalhosos sempre foi a criação de dados teste, para que os alunos pudessem colocar a mão na massa, aplicando os conceitos aprendidos durante as aulas.

O cenário melhorou bastante com a utilização do ChatGPT, que consegue auxiliar na elaboração de cenários que contextualizam os conceitos abordados em situações reais. Ainda assim, a criação dos dados a partir do ChatGPT é complicada, devido ao limite de linhas geradas por prompt, e à velocidade de geração do mesmo.

Felizmente, encontrei um artigo do Lorran Borges na minha timeline do LinkedIn, que me apresentou à package Faker do Python (vou deixar o link para o artigo dele ao fim deste artigo).

Conhecendo a Faker

A package Faker serve para geração de dados “fake”, ou seja, dados fictícios para teste. O que chama atenção dessa package é que ela permite a geração de dados localizados. Podemos gerar dados com nomes brasileiros, caso seja repassada a localidade “pt_BR” para a package. Inclusive o nome de estados, cidade, pessoas, entre outros, são gerados pela package.

Além disso a package consegue gerar dados de data e hora, moedas, CPF, RG, email, telefone, IP, profissões, e muito mais.

Código para geração de dados

O código Python utilizado aqui é uma adaptação do código original postado pelo Lorran, portanto acessem o artigo dele!

import csv
from faker import Faker
from unidecode import unidecode

# Instância do Faker com código pt_BR que é o idioma Português

fake = Faker('pt_BR')

# Geração dos dados

dados = []
for i in range(500):
    registro = {
        'id': i + 1,
        'nome': unidecode(fake.name()),
        'endereco': unidecode(fake.address().replace('\n', ' ')),
        'data': fake.date_time().strftime('%d/%m/%y %H:%M:%S'),
        'email': fake.email(),
        'telefone': fake.phone_number(),
    }
    dados.append(registro)

# Escrevendo os registros no arquivo CSV

dados_csv = 'dados.csv'

with open(dados_csv, mode='w', newline='') as arquivo_csv:
    header = ['id', 'nome', 'data', 'endereco', 'email', 'telefone']
    escritor_csv = csv.DictWriter(arquivo_csv, fieldnames=header)

    escritor_csv.writeheader()
    for registro in dados:
        escritor_csv.writerow(registro)

O código acima gera 500 registros para uma tabela, com as colunas “id”, “nome”, “endereco”, “data”, “email” e “telefone”, cujos valores são gerados pelo Faker.

Nesse código estou utilizando a package unidecode para retirar as acentuações dos nomes e endereços gerados.

Após a geração os dados são escritos para um arquivo CSV, o qual será utilizado para a importação no SQL Developer.

Criando uma tabela a partir de um arquivo CSV no SQL Developer

Com a sessão iniciada no SQL Developer, clicamos com o botão direito e selecionamos “Importar Dados”:

Na tela seguinte selecionamos o nosso arquivo CSV gerado pelo código Python e ajustamos as opções de formato do arquivo:

Em seguida selecionamos o método de importação e damos um nome à tabela que irá comportar os dados contidos no CSV:

No próximo passo, podemos selecionar quais colunas devem ser importadas:

Por fim, podemos editar o tipo de dado que cada coluna terá, bem como sua precisão e escala, no caso de tipos numéricos, ou o tamanho, no caso de texto:

Após a conclusão da importação a tabela já está disponível para utilização e aplicação dos conceitos SQL:

Conclusão

A linguagem Python, juntamente com a package Faker, proporciona uma forma bastante ágil para a criação de dados de teste, o que ajuda muito na criação de exemplos para o aprendizado de SQL.

Abaixo segue o artigo do Lorran que usei como base para a geração do código Python disponibilizado:

Gerando Dados Fictícios com Python – Lorran Borges

Um grande abraço a todos!

Publicar comentário