Skip to content

Instantly share code, notes, and snippets.

@cesg
Last active December 19, 2015 13:29
Show Gist options
  • Save cesg/5962760 to your computer and use it in GitHub Desktop.
Save cesg/5962760 to your computer and use it in GitHub Desktop.
-- ----------------------------------- --
-- Cristian Soto González --
-- ----------------------------------- --
/* Datos a utilizar */
-- set @p_rut := '7654384-1';
-- set @c_edf := 03;
-- set @c_lect01 := 01;
-- set @c_lect02 := 02;
-- 1
INSERT INTO `persona` (`rut`,`nombre`,`cargo`,`fono`,`e_mail`)
VALUES
('7654384-1','Juan','RRHH',null,null);
INSERT INTO `horario` (`rut`,`cod_dia`,`cod_jornada`,`hora_ent`,`hora_sal`)
VALUES
('7654384-1',2,1,800,1800),
('7654384-1',3,1,800,1800);
INSERT INTO `edificio` (`cod_edificio`,`nom_edificio`,`direccion`,`observacion`)
VALUES
('03','San Sebastián','Caupolican #1503','Ventas');
INSERT INTO `lector` (`cod_lector`,`cod_edificio`,`nro_ip`,`nro_piso`,`descrip`)
VALUES
(01,03,'192.128.0.1',1,'Entrada'),
(02,03,'192.128.0.2',2,'Oficinas');
INSERT INTO `lectura` (`rut`,`fecha`,`hora`,`cod_lector`,`cod_entsal`,`cod_tipolec`)
VALUES
('7654384-1','2013-07-04',800,01,1,2),
('7654384-1','2013-07-04',1800,01,2,2),
('7654384-1','2013-07-05',800,01,1,2),
('7654384-1','2013-07-05',1800,01,2,2);
-- 2
update persona set fono=12345 where rut='7654384-1';
update persona set e_mail = 'rrhh@localhost' where rut='7654384-1';
/* No se puede por que es una dupla padre */
update persona set rut=7756765-3 where rut='7654384-1';
update horario set hora_ent = 830 where rut='7654384-1' and cod_dia = 2;
-- 3
/* Imposible eliminar por que el rut es una clave foránea y esta se encuentra con la condición restrict. */
delete from persona where rut='7654384-1';
/* Imposible eliminar restricción de integridad, lector es padre de lectura. */
delete from lector where cod_lector = 01;
delete from lectura where cod_lector=01 and hora = 800;
-- 4
select * from persona where e_mail=null or fono=null;
select p.rut,p.nombre,p.e_mail from persona p where e_mail like '%@hotmail.com'
or e_mail like '%@yahoo.com' or e_mail like '%@live.com';
select distinct p.rut, p.nombre from persona p
inner join lectura l on (p.rut = l.rut)
where l.fecha = '2013-06-30'
order by p.nombre;
select p.rut, p.nombre ,h.hora_ent,h.hora_sal, j.nom_jornada,ds.nom_dia from persona p
inner join horario h on (p.rut = h.rut)
inner join jornada j on (h.cod_jornada=j.cod_jornada)
inner join dia_semana ds on (h.cod_dia=ds.cod_dia)
where p.cargo = 'Ejecutivo Mesa de Ayuda'
order by p.nombre,ds.cod_dia,j.cod_jornada;
select p.nombre,l.fecha, e.cod_edificio,e.nom_edificio,lec.cod_lector,lec.nro_piso,lec.descrip,tl.des_tipolec,te.des_entsal
from lectura l
inner join persona p on (l.rut = p.rut)
inner join t_entsal te on (l.cod_entsal = te.cod_entsal)
inner join t_lectura tl on (l.cod_tipolec = tl.cod_tipolec)
inner join lector lec on (l.cod_lector = lec.cod_lector)
inner join edificio e on (lec.cod_edificio=e.cod_edificio)
where l.fecha between '2013-06-01' and '2013-06-30' and e.direccion like '%Leon Gallo%'
order by e.cod_edificio, lec.cod_lector, l.fecha, l.hora;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment