— ACTIVIDAD 2 —

Manejo de Fechas 

Introducción a los comandos para el manejo de Fechas

COMANDO PARA EL MANEJO DE FECHAS

Muestra la fecha del sistema: 

- select current_date();

Muestra el año del sistema:

select year (current_date());

Muestra los meses del sistema:

select month(current_date()); 

Muestra los días del sistema:

select day(current_date());

Se pueden hacer intervalos de días, meses o años intervalo de 15 días: 

select date_add(current_date(),interval 6 year); 

Imprimir la fecha del sistema :

select date_format(now(),'%h:%i:%s %p'); 

COMANDOS

Para saber cuantos días hemos vivido en la faz de la tierra:

select datediff(current_date(),'1995-06-15');

NOTA: datediff arroja resultado o diferencia en días año, mes día 

Para saber cuantos años tiene cada uno a la fecha 

- select nombre, year(current_date()) - year(nacimiento) from ejercicio;

Muestra la edad aproximada, con un alias seria así:

- select nombre, year(current_date()) - year(nacimiento) 'edad' from ejercicio;

Visualizar las personas cuyo nombre termina en a y el sexo sea mujer:

select nombre from ejercicio where sexo='mujer' and nombre like '%a'; 

Cuantas personas son mujeres y su nombre termina en a: 

select count(*) from ejercicio where sexo='mujer' and nombre like '%a'; 

Cuantas persona nacieron entre 1960 y 1969: 

- select count(*) from ejercicio where year(nacimiento) between '1960'and 1969;

Visualizar toda la información de las personas que tienen entre 34 y 37 años: 

select * from ejercicio where year(current_date()) - year(nacimiento) between '34' and '37';

Calcular el total de hijos:

select sum(hijos) from ejercicio; 

Contar y agrupar la información por numero de hijos: 

- select hijos,count(*) from ejercicio group by hijos;

Contar cuantas personas tienen <= A 37 años y su sexo sea mujer:

select count(*) from ejercicio where year(current_date)-year(nacimiento)<=37 and sexo='mujer';

 VISTAS

Se utiliza para crear tablas temporales.

COMANDO VIEW

SINTAXIS:

Create view nombre de la vista;

Ejemplo:

1. Crear una vista con los nombres que terminan con A:

Select * from visitantes where nombre like '%a';2. create view visitantesa as select * from visitantes where nombre like '%a';

Visualizar las tablas y se observa en el listado la vista creada, visualizar la información de la nueva vista y observar que solo guardo los nombres que terminan en a.

Nota: se crea una tabla tal cual es la original, pero con la información consultada.

2. Crear una vista que guarde todos los datos del sexo hombre:

create view ejerciciosexo as select * from ejercicio where sexo= "hombre"; 

visualizar las tablas y se observa en el listado la vista creada, visualizar la información de la nueva vista y observar que solo guardo la información de los hombres.

3. Insertar el siguiente registro en la tabla ejercicio:

insert into ejercicio(codigo,nombre,sexo,nacimiento,hijos) values('8005129','Alberto Lechona','hombre','1970-03-22','1');

visualizar nuevamente la información de las vistas creadas, y al ver la información en ambas vistas aparece Alberto lechona y que se inserto como registro nuevo y cumple con las condiciones evaluadas al crearlas, lo que quiere decir que las vistas se actualizan automáticamente. 

Para eliminar una vista se utiliza el comando drop 

Sintaxis: drop view nombredelavistaaeliminar; 

Ejercicio: eliminar la vista ejerciciosexo 

Ejemplo: 

drop view ejerciciosexo;

visualizar las tablas y se observa que la vista fue borrada o eliminada. 

SE ADJUNTA LA COPIA DE LA BASE DE DATOS EN DONDE SE REALIZARON LOS EJEMPLOS:

CONSULTAR:

1.QUE SON LOS TRIGGERS:

El trigger o disparador MySQL es un objeto de la base de datos que está asociado con tablas. El trigger se puede ejecutar cuando se ejecuta una de las siguientes sentencias MySQL en la tabla: INSERT, UPDATE y DELETE. Se puede invocar antes o después del evento. 

Sin embargo, la configuración de un trigger MySQL requiere privilegios SUPERUSER en MySQL. En los servidores ofrecidos por SiteGround, tales privilegios se pueden aplicar solamente en servidores dedicados o hosting en la nube. Conceder privilegios SUPERUSER a un usuario alojado en un servidor compartido sería un problema de seguridad y por ese motivo no lo hacemos. 

La solución alternativa es manipular los datos insertados usando las sentencias MySQL anteriores a través de un código php adecuado en los scripts.

Aquí tienes un ejemplo de un trigger MySQL:

  • Primero crearemos la tabla para la que se establecerá el trigger:

mysql> CREATE TABLE people (age INT, name varchar(150));

  • A continuación definiremos el trigger. Se ejecutará antes de cada sentencia INSERT para la tabla people:

mysql> delimiter //
mysql> CREATE TRIGGER agecheck BEFORE INSERT ON people FOR EACH ROW IF NEW.age < 0 THEN SET NEW.age = 0; END IF;//
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

  • Insertaremos dos registros para comprobar la funcionalidad del trigger.

mysql> INSERT INTO people VALUES (-20, 'Sid'), (30, 'Josh');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

  • Al final comprobaremos el resultado.

mysql> SELECT * FROM people;
+---+---+
| age | name |
+---+---+
| 0 | Sid |
| 30 | Josh |
+---+---+
2 rows in set (0.00 sec)

Tomado de: https://www.siteground.es/kb/que-son-triggers-mysql-uso/

Los triggers o disparadores, son procedimientos automaticos que se activan despues de una accion, esta accion puede ser un insert, delete o update se trabaja con dos identificadores que son after (despues de) before (antes de) Dentro de las condiciones que tienen los triggers esta que no pueden existir dos o mas after para el insert o para el delete o para el update. El after es el caso mas comun de los triggers, se activa despues de una sentencia y afecta solo tablas distintas a la que lo esta invocando, situacion que no sucede con el before que solo afecta la tabla que lo invoca.

2. CUAL ES LA SINTAXIS GENERAL PARA CREAR UN TRIGGERS:

La sintaxis general es delimiter // create trigger nombre after (insert, delete, update) on tabla for each row //recorre fila por fila (arreglos o matrices) begin sentencia end // delimiter ;  

Link de la base de datos para practicar el manejo de Triggers:

Crear un trigger con el nombre de valorventa que al insertar un articulo realice el siguiente calculo.

Calcular el valorventa de la tabla detalle con el incremento del 23% del valorunitario de la tabla articulo.

Ejemplo:

- delimiter //

- create trigger valorventa after insert on articulo 

- for each row

- begin

- update detalle set valorventa = (select valorunitario + (valorunitario * 0.23)  from articulo where articulo.codigo = detalle.codigo);

- end

- //

- delimiter;

Comando para verificar el trigger:

- show trigger;

comando:

insert into articulo values( '450','secador Remington 1600',10,250000,0);

---------------------------

---------------------------

Ejercicio:

- Crear un trigger con el nombre de actualizar_existenciap que al insertar un detalle realice el siguiente cálculo

calcular las existencias según la tabla detalle de cada articulo.

- delimiter //

- create trigger actualizar_existenciap after insert on detalle 

- for each row

- begin

- update articulo set existencia = cantidad - (select sum(cantidad)

- from detalle where detalle.codigo = articulo.codigo);

- end

- //

- delimiter ;

Ejemplo de un triggers: La "idea" es crear un trigger que antes de insertar un producto calculeel valor de venta.

Supongamos la siguiente situación: En una empresa vende productos y se gana un porcentaje fijo por cada producto.

Cree la siguiente BD: pruebadetrigger2;

Crear un disparador o trigger que calcule el valor venta al insertar un producto:

Realizar un trigguer o disparador que al actualizar el valor del costo automáticamente actualice el valor venta:

Se actualiza el costo y queda de la siguiente manera:

COPIA DE LA BD PRUEBADETRIGGER2

DHSYSTEM  Medellín, Colombia - Todos los derechos reservados 2019
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar