Projeto SQLite com a linguagem R.
Se você está começando com R e RStudio e quer aprender a trabalhar com bancos de dados locais, o projeto SQLite com R é uma ótima forma de praticar. Neste projeto, você vai criar, inserir, atualizar, remover e consultar dados.
O que é SQLite?
O SQLite é um banco de dados relacional leve, que não precisa de servidor. Ele salva os dados em arquivos simples (.db) e é perfeito para projetos pequenos ou médios, análises de dados e protótipos de sistemas.
Estrutura do projeto:
project-sqlite-r/
├── main.R # Arquivo principal (executa todo o fluxo)
├── source-sqlite/
├ ├── db_connection.R # Funções de conexão e desconexão
├ ├── db_schema.R # Criação do esquema (tabelas)
├ ├── db_operations.R # Inserção, atualização e exclusão
├ └── db_queries.R # Consultas ao banco
├── exemplo.db # Banco de dados SQLite (gerado automaticamente)
├── .Rprofile
├── .gitignore
├── README.md
├── project-sqlite-r.Rproj
└── renv.lock # Arquivo de dependências
Funcionalidades:
- Criar banco de dados SQLite.
- Criar tabelas automaticamente.
- Inserir usuários com nome, email e idade.
- Atualizar dados de usuários por id.
- Excluir registros por id
- Consultar todos os usuários ou buscar por id.
Pré-requisitos:
- Linguagem R instalada
- Acesse o site oficial do CRAN para baixar o instalador da linguagem R: cran.r-project.org
- Instalação da linguagem R https://informaticus77-r.blogspot.com/2025/09/blog-post.html
- RStudio instalado
- Baixe o RStudio em: posit.co/download/rstudio-desktop
- Microtutorial sobre RStudio: https://informaticus77-r.blogspot.com/2025/09/blog-post_8.html
Como criar o projeto:
1. Criar novo projeto no RStudio - ver microtutorial.
2. Ativar o ambiente virtual renv:
renv::activate() # No console do RStudio
3. Instalar dependências:
# No console do RStudio
install.packages("DBI")
install.packages("RSQLite")
4. Criar um diretório na raiz do projeto chamado, por exemplo, source-sqlite.
5. Nesse diretório colocaremos quatro arquivos:
- 1. 'db_connection.R' - arquivo responsável pela conexão com o SQLite.
# Instalar pacodes DBI e RSQLite.
# install.packages("DBI")
# install.packages("RSQLite")
# Carregar pacotes necessários.
library(DBI)
library(RSQLite)
# Função para abrir conexão com banco SQLite.
conectar_db <- function(db_file = "exemplo.db") {
con <- dbConnect(RSQLite::SQLite(), dbname = db_file)
return(con)
}
# Função para encerrar conexão.
desconectar_db <- function(con) {
dbDisconnect(con)
}
# Criar tabela de exemplo (Usuários).
criar_tabela <- function(con) {
query <- "
CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
idade INTEGER
);"
dbExecute(con, query)
}
# Arquivo responsável por inserir dados, atualizar dados e
# remover dados da tabela.
# Inserir novo usuário.
inserir_usuario <- function(con, nome, email, idade) {
query <- "INSERT INTO usuarios (nome, email, idade) VALUES (?, ?, ?)"
dbExecute(con, query, params = list(nome, email, idade))
}
# Atualizar nome do usuário.
atualiza_usuario_nome <- function(con, id, novo_nome) {
query <- "UPDATE usuarios SET nome = ? WHERE id = ?"
dbExecute(con, query, params = list(novo_nome, id))
}
# Atualizar email do usuário.
atualiza_usuario_email <- function(con, id, novo_email) {
query <- "UPDATE usuarios SET email = ? WHERE id = ?"
dbExecute(con, query, params = list(novo_email, id))
}
# Atualizar idade do usuário.
atualiza_usuario_idade <- function(con, id, nova_idade) {
query <- "UPDATE usuarios SET idade = ? WHERE id = ?"
dbExecute(con, query, params = list(nova_idade, id))
}
# Excluir usuário.
remove_usuario <- function(con, id) {
query <- "DELETE FROM usuarios WHERE id = ?"
dbExecute(con, query, params = list(id))
}
# Arquivo responsável por consultar os dados.
# Buscar todos os usuários
busca_usuarios <- function(con) {
dbGetQuery(con, "SELECT * FROM usuarios")
}
# Buscar usuário pelo id.
usuario_id <- function(con, id) {
query <- "SELECT * FROM usuarios WHERE id = ?"
dbGetQuery(con, query, params = list(id))
}
Por fim, o arquivo principal - 'main.R' - criado na raiz do projeto:
# O arquivo main.R é responsável pela manipulação do banco de dados.
# Carrega os scripts.
source("source-sqlite/db_connection.R")
source("source-sqlite/db_schema.R")
source("source-sqlite/db_operations.R")
source("source-sqlite/db_queries.R")
# 1. Conectar ao banco.
con <- conectar_db()
# 2. Criar tabela.
criar_tabela(con)
# Insere usuários.
inserir_usuario(con, "Maria Teresa", "teresa@gmail.com", 3)
inserir_usuario(con, "Carlos da Costa", "carlos@gmail.com", 48)
inserir_usuario(con, "Maria da Costa", "maria@gmail.com", 75)
inserir_usuario(con, "Soares da Costa", "soares@gmail.com", 45)
inserir_usuario(con, "Jose Carlos", "jose@gmail.com", 41)
# Busca todos os usuários.
print(busca_usuarios(con))
# Busca usuário com id 2.
print(usuario_id(con, 2))
# Atualizar nome, email e idade do id 4.
atualiza_usuario_nome(con, 4, "Soares Costa")
atualiza_usuario_email(con, 4, "scosta@gmail.com")
atualiza_usuario_idade(con, 4, 36)
# Busca todos os usuários.
print(busca_usuarios(con))
# Excluir usuário.
remove_usuario(con, 5)
# Busca todos os usuários.
print(busca_usuarios(con))
# Desconectar
desconectar_db(con)
Conclusão
O projeto SQLite com R é um excelente ponto de partida para quem deseja aprender a manipular bancos de dados de forma prática e organizada dentro do RStudio. Trabalhar com um código modularizado, dividido em arquivos específicos para conexão, operações e consultas, facilita a manutenção e amplia a reutilização em outros projetos. Além disso, o uso do SQLite torna possível criar aplicações leves, rápidas e que não dependem de servidor, ideal para análises locais ou pequenos sistemas. Muito obrigado e até a próxima.
Repositório do projeto: https://github.com/jcarlossc/project-sqlite-r
Comentários
Postar um comentário