viernes, 16 de diciembre de 2011

Clase Viernes 16/12/2011 (ensayo càtedra)

Lo que hay que saber para la Càtedra
--------------------------------------
insert
constraint
select
delete
dml / ddl
null
drop
in
dual
group
distinct
trim
create table
create sequence
like
where
count
order by
round
desc
between
upper / lower
max / min / avg

Ejercicio
---------
Listar las propiedades que "arrienda" un cliente, listar (nombre, apellido (cliente), numprop, f.inico, (arriendo)

select


c.nombre, c.apellido, a.numpropiedad, a.finrenta  from cliente c, arriendo awhere c.numcliente = a.numcliente   and UPPER(c.nombre) = 'MIKE'   and UPPER(c.apellido) = 'RITCHIE'
select


c.nombre, c.apellido, a.numpropiedad, a.finrenta, e.nombre  from cliente c, arriendo a, propiedad p, empleado ewhere c.numcliente = a.numcliente   and UPPER(c.nombre) = 'MIKE'   and UPPER(c.apellido) = 'RITCHIE'



  and a.numpropiedad = p.numpropiedad  and p.numempleado = e.numempleado
null -> valor especial para atributos que nunca han tenido contenido

Query forma 1
---------------
select
numoficina  from oficinawhere ciudad ='Valdivia'
Query forma 2
---------------
select
numempleado, nombre, apellido from empleado
where numoficina in (select numoficina                                        from oficina                                     where ciudad ='Valdivia')

Ejemplo Subquery
-------------------
select
numempleado, nombre, apellido  from empleado
where numoficina in (select numoficina                                       from oficina                                     where ciudad ='Valdivia')   and salario > ( select max(salario)                               from empleado


Ejemplo de create sequence
-------------------------------------
create sequence seqt1start with 10increment by 10;
select
seqt1.nextval from dual (comienza en 10)insert

obtiene (nombre, apellido, salario, prmedio, diferencia)
------------------------------------------------------------------------
select
           apellido
           salario
           round
nombre, , , ((select avg(salario) as prom from empleado),1) as avg ,           round




Saca el promedio por oficina
-------------------------------------
select
           count
           avg
numoficina, (*) as empleados, (salario) as promedio,           max(salario) as mayor_renta,           min

group by numoficina

select b.ciudad,           a
           count
           avg
.numoficina, (*) as empleados, (a.salario) as promedio,           max(a.salario) as mayor_renta,          min


(a.salario) as menor_rentafrom empleado a, oficina bwhere a.numoficina = b.numoficinagroup by b.ciudad, a.numoficina
(salario) as menor_renta from empleado


muestra solo los *
------------------------
select


select
numoficina, avg(salario) from empleado


group by numoficinahaving avg(salario) = (select max(avg(salario)) from empleado group by numoficina)
'**'|| trim(' ') ||'**' from dual
(salario - (select avg(salario) as prom from empleado),1) as Dif  from empleado
into t1 values (seqt1.nextval, 'hola') (comienza en 20)

                             where sexo = 'F' )

No hay comentarios: