Tener una bitácora nos ayuda a tener un mejor control de nuestra información:
- Ver quien hace cambios por “error”
- Ver la fecha
- Tipo de operación (inserción, actualización y/o borrado)
He aquí los pasos para crear una pequeña bitácora
1. Crear la base de datos:
create database prueba1; show databases; use prueba1;
2. Crear una tabla llamadas personas
create table personas (id_persona int auto_increment primary key, nombre varchar (50), apellido_p varchar (50), apellido_m varchar(50), edad int, peso double, talla double);
3. Crear un procedimiento almacenado para insertar registros
DELIMITER $$ DROP PROCEDURE IF EXISTS `prueba1`.`Insertar` $$ CREATE PROCEDURE `prueba1`.`Insertar`(in nombre varchar (50), apellido_p varchar (50), apellido_m varchar(50), edad int, peso double, talla double) BEGIN INSERT INTO personas (nombre,apellido_p, apellido_m , edad , peso , talla) VALUES (nombre,apellido_p, apellido_m , edad , peso , talla ); END $$ DELIMITER ;
4. Crear un procedimiento almacenado para actualizar registros
DELIMITER $$ DROP PROCEDURE IF EXISTS `prueba1`.`Actualizar` $$ CREATE PROCEDURE `prueba1`.`Actualizar` (in id_personax int,edadx int,pesox double) BEGIN update personas set edad=edadx,peso=pesox where id_persona=id_personax; END $$ DELIMITER ;
5. Crear un procedimiento almacenado para eliminar registros
DELIMITER $$ DROP PROCEDURE IF EXISTS `prueba1`.`Borrar` $$ CREATE PROCEDURE `prueba1`.`Borrar` (in id int) BEGIN delete from personas where id_persona=id; END $$ DELIMITER ;
6. Invocar los procedimientos almacenados
Call Insertar (‘Horacio’,’Gomez’,’Carmona’,25,65,1.68); Call Insertar (‘Hugo’,’Torres’,’Mendez’,32,67,1.70); Call Actualizar (1, 26, 66); Call Borrar (2) Ver registros Select * from personas;
7. Crear un procedimiento almacenado que muestre todos los registros
DELIMITER $$ DROP PROCEDURE IF EXISTS `sp_verPersonas` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verPersonas`() select *from personas $$ DELIMITER ; Para invocarlo Call sp_verPersonas();
8. Crear tabla que lleve un control de quien hace cambios en la base de datos prueba1
CREATE TABLE infobase (usuario varchar (50), descripcion varchar (50), fecha TIMESTAMP default now());
9. Crear trigger para la inserción
delimiter $$ create trigger tr_insercion befote insert on personas for each row begin insert into infobase values(user(),’persona creada’,now()); end $$
10. Crear trigger para la actualización
delimiter $$ create trigger tr_actualizacion befote update on personas for each row begin insert into infobase(usuario,descripcion,fecha) values(user(),’persona modificada’,now()); end $$
11. Crear trigger para la eliminación
delimiter $$ create trigger tr_borrado befote delete on personas for each row begin insert into infobase values(user(),’persona eliminada’,now()); end $$ Ver cambios Select *from infobase;
12. Crear procedimiento almacenado para ver un registro en particular
DELIMITER $$ DROP PROCEDURE IF EXISTS `sp_verPersona` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verPersona`(in id_buscar int) select *from personas where id_persona=id_buscar $$ DELIMITER ;
13. Ahora hacer una operación: calcular el I.M.C. (Índice de Masa Corporal) de las personas registradas. Fórmula: peso/(talla*talla)
DELIMITER $$ DROP PROCEDURE IF EXISTS `sp_verImc` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verImc`() select id_persona,nombre,edad,peso,talla,peso/(talla*talla) from personas $$ DELIMITER ;
14. Código en Java para probar
package control.pruebas; import java.sql.DriverManager; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; public class Alquimista { public static void main(String[] args) { try{ Class.forName("com.mysql.jdbc.Driver"); Connection conecta=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/prueba1","root","root"); System.out.println("Conexión exitosa\n"); Statement sentencia= conecta.createStatement(); ResultSet registro=sentencia.executeQuery("select id_persona,nombre,edad,peso,talla,peso/(talla*talla) from personas"); while(registro.next()){ System.out.println("\t\nId: "+registro.getInt("id_persona")); System.out.println("Nombre: "+registro.getString("nombre")); System.out.println("Edad:"+registro.getInt("edad")); System.out.println("Peso:"+registro.getDouble("peso")); System.out.println("Talla: "+registro.getDouble("talla")); System.out.println("IMC: "+registro.getDouble("peso/(talla*talla)")); } conecta.close(); System.out.println("\nConexión cerrada"); }catch(Exception ex){ ex.printStackTrace(); } } }
Este post fue escrito originalmente en:
https://codemonkeyjunior.blogspot.com/2011/12/ejemplo-de-uso-de-mysql-una-pequena.html
Comentarios
Publicar un comentario