Está en la página 1de 5

Taller 9 Operaciones con bases de datos

Conforme al ejercicio anterior donde se generó una aplicación de usuarios con las tablas de
nombre apellidos y edad y otra base de datos con observaciones, vamos a seguir realizando
operaciones con las bases de datos:

Otras operaciones

$ rails console
Crear registros: el método new genera nuevos registros en nuestra
tabla, este se encuentra en memoria y requiere de confirmación del
registro con el método save.
>> usuario = Usuario.new
>> usuario.nombre = “Irma”
>> usuario.apellidos = “Martinez”
>> usuario.edad = 33
>> usuario.save
Otra forma de hacerlo
>> usuario = Usuario.new(:nombre=>”Irma2”, :apellidos
=>”Martinez2”, :edad=>33)
>> usuario.save
O también :
>> usuario = Usuario.new(:nombre=>”Irma2”, :apellidos
=>”Martinez2”, :edad=>33).save

O Expresado en un bloque:
>> usuario = Usuario.new do |u|
>> u.nombre = “Irma3”
>> u.apellidos = “Martinez3”
>> u.edad = 33
>> end
>> usuario.save

El método CREATE no requiere de confirmación


>> usuario = Usuario.create(:nombre=>”Irma4”, :apellidos
=>”Martinez4”, :edad=>33)
>> usuario = Usuario.create do |u|
>> u.nombre = “Irma5”
>> u.apellidos = “Martinez5”
>> u.edad = 33
>> end
Búsquedas simples
FIND(Clave_Primaria)
>> usuario = Usuario.find(1)
Una vez obtenido el registro podemos llamar, desde la variable
local usuario, a sus diferentes atributos para mostrar su
información, o bien para modificarla.
>> usuario = Usuario.find(1)
>> usuario.nombre
>> usuario.edad = 35
>> usuario.save
Ejercicio: Probar si se llama un registro inexistente que pasa
FIRST Y LAST
Se obtiene el primero y el ultimo de los registros respectivamente.
>> primer_usuario = Usuario.first
>> ultimo_usuario = Usuario.last
Búsquedas múltiples
FIND(ARRAY) se obtendra como resultado una clase Array, en la que
existen multiples métodos Ruby para tratar los datos.

>> usuarios = Usuario.find([1,2,5])


>> usuarios.class
Si la variable local usuarios llamamos al método class nos devuelve
que efectivamente pertenece a la clase tipo array, por lo tanto
debemos utilizar el método each para iterar por los elementos
dentro del bloque que pasaremos como argumento.
>> usuarios.each do |u|
>> puts u.nombre
>> end
ALL
Con el método all obtenemos todos los registros de nuestra tabla
>> usuarios = Usuario.all
>> usuarios.each do |u|
>> puts u.nombre
>> end
O también se puede expresar asi
>> Usuario.all.each do |u|
>> puts u.nombre
>> end
BUSQUEDAS CONDICIONALES
WHERE(CONDICIONES) : El objeto con los registros obtenidos de la
consulta pertenece a la clase Array. Igual cuando trabajamos con
SQL, con Active Record tenemos la posibilidad de seleccionar los
registros que cumplen con una serie de condiciones.
>> Usuario.where(“edad < 60”)
Ejercicio: todas las relaciones posibles probar con varias
condicionales
ORDER(CAMPO)
Ordena nuestra tabla por el campo indicado como parámetro
>>Usuario.order(“edad”) lo hace en forma ascendente
Y en forma descendente
>> Usuario.order(“edad DESC”)
SELECT(CAMPOS)
Con la selección obtenemos una vista de nuestra tabla con los
campos que pretendemos obtener.
>> Usuario.select(nombre)
O
>> Usuario.select(nombre, edad).order(“edad DESC”)

CALCULOS
COUNT : Devuelve el número de registros realizado en la consulta
>> Usuario.all.count

BORRAR REGISTROS
>> usuario = Usuario.find(1)
>> usuario.destroy
O también se usa
>> Usuario.delete(1)

Ejercicio: Investigar los siguientes métodos: LIMIT, GROUP, HAVING,


JOIN
DATOS DE PRUEBA
Ruby on Rails proporciona una estructura para rellenar con datos
nuestras bases de datos con el objetivo de realizar diferentes
pruebas de las consultas. Están dentro de la carpeta test/fixtures
con extensión YAML, y por cada modelo generado existe un fixture
vinculado, esto se hace por la coincidencia de sus respectivos
nombres.
Asignamos y creamos los datos de prueba que consideremos

CARGA DE DATOS
Para hacer efectiva la carga de datos escribimos en la linea de
comandos de la consola de Rails
>> rake db:fixtures.load
Ejecutará la carga de datos de todos los archivos que se encuentren
en la carpeta fixture hacia las tablas respectivas.
Para cargar solamente un archivo se lo indicamos con la variable
FIXTURES
>> rake db:fixtures:load FIXTURES=usuarios

Más adelante en el taller de pruebas requeriremos de este comando.

También podría gustarte