select to_char(sysdate,'month')
from dual;
select INSTR('la clase es grande','es',1,2)
from dual;
select next_day('25-03-2013','lunes')
from dual;
select next_day(sysdate, 'martes')
from dual;
select Rpad('texto original',20,'*')
from dual;
select Lpad('texto original',20,'*')
from dual;
select Ltrim('texto original','itzel')
from dual;
select round(123.355,2)
from dual;
---------------------------------------------------------------------
Drop table Proyecto cascade constraints;
Drop table Empleado cascade constraints;
Drop table Hora cascade constraints;
create table Proyecto (
codpro varchar2 (5),
nombre varchar2 (25),
area varchar2 (20),
oficina varchar2 (5)
);
alter table Proyecto
add constraint proyecto_pk primary key (codPro);
create table Empleado (
rut varchar2 (12),
nombre varchar2 (25),
fechnac date,
direccion varchar2 (35),
ciudad varchar2 (15),
telefono varchar2 (10)
);
alter table Empleado
add constraint empleado_pk primary key (rut);
create table Hora (
fecha date,
horas integer,
codpro varchar2(5),
rut varchar2 (12)
);
alter table Hora
add constraint Hora_fk_references_Proyecto foreign key (codPro)
references Proyecto (codPro);
alter table Hora
add constraint Hora_fk_references_empleado foreign key (rut)
references Empleado (rut);
/*
PROYECTO
101 WEB Ipaid Marketing 1
102 Plan Cuentas Contabilidad 2
103 Sala Clases Arquitectura 3
104 Capacitación RRHH 4
EMPLEADO
1-7 Luis Ponce 25-ene-1958 Cienfuegos 45 Santiago 5678654
2-8 Ana Zamora 30-mar-1960 null Santiago 6754345
3-5 Pedro Figueroa 1-ene-1970 Portales 890 Valparaíso null
4-6 Camila Espinoza 27-04-1980 cuevas 67 Rancagua null
HORA
2012-11-07 2 101 4-6
2012-11-07 4 101 1-7
2012-11-04 3 102 3-5
2012-12-03 6 103 3-5
*/
insert into Proyecto values ('101','WEB Ipaid','Marketing','1');
insert into Proyecto values ('102','Plan Cuentas','contabilidad','2');
insert into Proyecto values ('103','Sala Clases','Arquitectura','3');
insert into Proyecto values ('104','Capacitacion','RRHH','4');
insert into Empleado values ('1-7','Luis Ponce','25-ene-1958','cienfuegos 45','santiago','5678654');
insert into Empleado values ('2-8','Ana Zamora','30-mar-1960',null,'santiago','67543445');
insert into Empleado values ('3-5','Pedro Figueroa','01-ene-1970','portales 890','Valparaiso',null);
insert into Empleado values ('4-6','Camila Espinoza','27-04-1980','cuevas 67','Rancagua',null);
insert into Hora values (to_date('2012-11-07', 'yyyy-mm-dd'),2,'101','4-6');
insert into Hora values (to_date('2012-11-07', 'yyyy-mm-dd'),4,'101','1-7');
insert into Hora values (to_date('2012-11-04', 'yyyy-mm-dd'),3,'102','3-5');
insert into Hora values (to_date('2012-12-03', 'yyyy-mm-dd'),6,'103','3-5');
--Mostrar la cantidad de horas que hay que registrar por dia
select * from hora;
select fecha, sum(horas)
from hora
group by fecha;
--Mostrar el promedio de las edades de los empleados
select * from empleado;
select avg (trunc((sysdate - fechnac)/365))
from empleado;
select nombre, fechnac, trunc((sysdate - fechnac)/365)
from empleado;
--Mostrar los nombre d elos empleados que no tienen registrado
--telefonos en la base de datos
select *
from empleado
where telefono is null;
--Mostrar los nombres de los empleados que trabajaron
--en Noviembre del 2012
select nombre
from empleado e, hora h
where e.rut = h.rut
and fecha between '01-11-2012' and '30-11-2012';
select * from hora
where fecha between '01-11-2012' and '30-11-2012';
--Mostrar el codigo y nombre de los proyectos cuya area es
--Arquitecto o Marketing
select codpro, nombre
from proyecto
where area in ('Marketing','Arquitecto');
select codpro, nombre
from proyecto
where lower (area) in ('marketing','arquitecto');
--Crear una vista llamada VempCiudad que muestre la cantidad de los
--Empleados por ciudad, incluyendo solamente
--las ciudades de Santiago y Valparaiso
create view VempCiudad as
select upper (ciudad) ciudad, count(rut) cantidad
from Empleado
where lower (ciudad) in ('santiago', 'valparaiso')
group by ciudad;
select *from VempCiudad;
--Crear la vista VproyFigueroa que muestre los nombres
--de los proyectos en los que han trabajado Pedro Figueroa,
--eliminando los registros duplicados (Sin JOIN)
create view VproyFigueroa as
select distinct p.nombre
from empleado e, proyecto p, hora h
where h.codpro = p.codpro
and e.rut = h.rut
and lower(e.nombre) = 'pedro figueroa';
--Crear la vista VproyFigueroa que muestre los nombres
--de los empleados y el nombre de los proyectos, que se trabajaron el
--dia 2012-11-07 (Usando where, usar JOIN)
create view VEmpProy as
select p.nombre nombre_proy, e.nombre nombre_emp
from hora h
join proyecto p on p.codpro = h.codpro
join empleado e on e.rut = h.rut
where fecha = to_date('2012-11-07', 'yyyy-mm-dd');
select * from VEmpProy;
No hay comentarios.:
Publicar un comentario