Sunteți pe pagina 1din 18

subconsultas

Una subconsulta (subquery) es una


sentencia "select" anidada en otra
sentencia "select", "insert", "update" o
"delete" (o en otra subconsulta).

Una subconsulta es una sentencia SELECT que aparece dentro de


otra sentencia SELECT. Normalmente se utilizan para filtrar una
clausula WHERE o HAVING con el conjunto de resultados de la
subconsulta, aunque tambin pueden utilizarse en la lista de seleccin.
Por ejemplo podramos consultar el alquiler ltimo de un cliente.
SELECT CO_CLIENTE, NOMBRE, MARCA, MODDELO
FROM ALQUILERES
WHERE CO_CLIENTE = 1
AND FECHA_ALQUILER = (SELECT MAX(FECHA_ALQUILER)
FROM ALQUILERES
WHERE CO_CLIENTE = 1)

Reglas a tener en cuenta al emplear subconsultas:


- la lista de seleccin de una subconsulta que va luego de un operador de
comparacin puede incluir slo una expresin o campo (excepto si se emplea
"exists" y "in").
- si el "where" de la consulta exterior incluye un campo, este debe ser compatible con
el campo en la lista de seleccin de la subconsulta.
- no se pueden emplear subconsultas que recuperen campos de tipos text o image.
- las subconsultas luego de un operador de comparacin (que no es seguido por
"any" o "all") no pueden incluir clusulas "group by" ni "having".
- "distinct" no puede usarse con subconsultas que incluyan "group by".
- no pueden emplearse las clusulas "compute" y "compute by".
- "order by" puede emplearse solamente si se especifica "top" tambin.
- una vista creada con una subconsulta no puede actualizarse.
- una subconsulta puede estar anidada dentro del "where" o "having" de una consulta
externa o dentro de otra subconsulta.
- si una tabla se nombra solamente en un subconsulta y no en la consulta externa,
los campos no sern incluidos en la salida (en la lista de seleccin de la consulta
externa).

subconsultas
Hay tres tipos bsicos de subconsultas:
las que retornan un solo valor escalar que
se utiliza con un operador de comparacin
o en lugar de una expresin.
las que retornan una lista de valores, se
combinan con "in", o los operadores "any",
"some" y "all".
los que testean la existencia con "exists".

Practica de consultas
HOSPITAL NUEVA VIDA
Se desea automatizar el control de los
pacientes del hospital Nueva Vida, en el
cual se lleva un registro de la informacin
general de los pacientes de los mdicos, y
especialidades e igualmente se registran
los datos necesarios del ingreso del
paciente al hospital.
Elaborar modelo de E-R, Diagrama de BD y
generar las consultas.

Diagrama de Base de Datos

Realizar las siguientes


consultas

Mdicos por especialidad

Total de pacientes atendidos por


medico

Nombre de los mdicos que no han


atendido pacientes

Total de mdicos que no han


atendido pacientes

Borrar Mdicos que no han


atendido pacientes

Operador like

Mostrar datos cuyo apellidopaterno


inicie con A.

Ordenada por ciudad descendente

Meses Hospitalizados

Informacin de pacientes que


tienen mas de 1 mes de
hospitalizacin

Mostrar toda la informacin de los mdicos incluyendo su


edad.
Determinar cuantos mdicos tiene el hospital.
Mostrar los pacientes atendidos en el 2014.
Mostrar los mdicos que tienen mas de 10 aos laborando
en el hospital.
Mostrar las especialidades con que cuenta el hospital
ordenadas alfabticamente de manera descendente.
Mostrar nombre del paciente, nombre del medico que lo
atendi, costo y diagnostico.
Modificar la especialidad de X medico.
Incrementar los costos en un 10%.

S-ar putea să vă placă și