Antes de empezar, asegúrate de tener Ruby y SQLite3 instalados en tu sistema. Puedes instalar SQLite3 siguiendo las instrucciones en su sitio oficial. Para instalar la gema sqlite3, ejecuta:
gem install sqlite3
Primero, necesitas crear una base de datos SQLite. Esto se puede hacer directamente desde Ruby:
require 'sqlite3'
# Crear una nueva base de datos llamada 'mi_base_de_datos.db'
db = SQLite3::Database.new "mi_base_de_datos.db"
Con la base de datos creada, el siguiente paso es definir su estructura creando tablas. Aquí hay un ejemplo de cómo crear una tabla llamada usuarios
:
# Crear una tabla llamada 'usuarios'
rows = db.execute <<-SQL
CREATE TABLE usuarios (
id INTEGER PRIMARY KEY,
nombre VARCHAR(50),
edad INT
);
SQL
Una vez que la tabla está creada, puedes insertar datos en ella. Aquí hay un ejemplo de cómo insertar un registro en la tabla usuarios
:
db.execute "INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ["Juan", 25]
db.execute "INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ["María", 30]
Para recuperar datos de la base de datos, usa el método execute
con una consulta SQL. Aquí tienes un ejemplo:
db.execute( "SELECT * FROM usuarios" ) do |fila|
puts fila
end
Este código imprimirá todas las filas de la tabla usuarios
.
Para actualizar registros existentes, utiliza la sentencia UPDATE
:
db.execute "UPDATE usuarios SET edad = ? WHERE nombre = ?", [26, "Juan"]
Para eliminar registros, usa la sentencia DELETE
:
db.execute "DELETE FROM usuarios WHERE nombre = ?", ["María"]
Es importante manejar posibles errores al interactuar con la base de datos. Aquí tienes un ejemplo de cómo capturar errores:
begin
db.execute "INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ["Pedro", "veinticinco"]
rescue SQLite3::Exception => e
puts "Se produjo un error: #{e}"
end
En este caso, un error se producirá porque la edad no es un número entero.
Para proyectos más complejos, considera usar ActiveRecord, un ORM (Object-Relational Mapping) que simplifica la interacción con la base de datos. Primero, añade la gema activerecord
y sqlite3
a tu Gemfile
:
gem 'activerecord'
gem 'sqlite3'
Luego, ejecuta bundle install
.
Aquí tienes un ejemplo de cómo configurar ActiveRecord con SQLite:
require 'active_record'
# Configurar la conexión a la base de datos
ActiveRecord::Base.establish_connection(
adapter: 'sqlite3',
database: 'mi_base_de_datos.db'
)
# Definir un modelo ActiveRecord para la tabla 'usuarios'
class Usuario < ActiveRecord::Base
end
# Crear la tabla usando ActiveRecord
unless ActiveRecord::Base.connection.table_exists?(:usuarios)
ActiveRecord::Schema.define do
create_table :usuarios do |t|
t.string :nombre
t.integer :edad
end
end
end
# Insertar un nuevo usuario
Usuario.create(nombre: 'Ana', edad: 22)
# Consultar todos los usuarios
Usuario.all.each do |usuario|
puts usuario.nombre
end
SQLite es una excelente opción para bases de datos ligeras y es fácil de usar con Ruby. Ya sea que prefieras las consultas SQL directas o un enfoque ORM con ActiveRecord, tienes las herramientas necesarias para gestionar bases de datos de manera eficiente. ¡Empieza a experimentar y construye tus aplicaciones con confianza!
Jorge García
Fullstack developer