yeah
¿quiénes son los fontaneros?
select nomb_trabajadorfrom trabajador
where oficio=’fontanero’
relacione todos los datos de los edificios que sean oficinas.
select *
from edificiowhere tipo=’oficina’
--¿cuál es la tarifa semanal de cada electricista?
select nom_trabajador, 40*tarifa_hr as ‘tarifa semanal’
from trabajador
where oficio= ‘electricista’¿quiénes tienen una tarifa por hora entre 10 y 12?
select *
from trabajadorwhere tarifa_hr >= 10 and tarifa_hr <=12
también se puede escribir de usando el operador between.
select *
from trabajadorwhere tarifa_hr between 10 and 12
obtener los fontaneros, albañiles y electricistas.
select *
from trabajador
where oficio in (‘fontanero, ‘albañil’, ‘electricista’)
el operador like se usapara comparar variables de caracteres con literales con comodines. (% =cero o más char, y _ = un char).
encontrar todos los datos cuyo oficio comience con elecselect *
from trabajadorwhere oficio like ‘elect%’
¿cuáles son los oficios de los trabajadores asignados al edificio 435?
select oficio
from trabajador, asignacionwhere trabajador.id_trabajador =asignación.id_trabajadorand id_edificio = 435
encuentre todas las asignaciones que comiencen en las dos próximas semanas.
select *
from asignaciónwhere fecha_inicio between current_date and current_date + interval ‘14’day
Pasos que se realizan en las consultas:
Primero se ejecuta la cláusula FROM. Si hay mas de una relación se crea el producto cartesiano (lógicamente) de esas relaciones.
Después se aplica lacláusula WHERE, seleccionando de cada fila de la relación creada aquellas que satisfagan la condición.
Por último se aplica la cláusula SELECT, a la relación resultante.
Hasta aquí para el
Consulta: Indicar los trabajadores con los nombres de sus supervisores.
select a. nomb_trabajador, b.nomb_trabajadorfrom trabajador a, trabajador b
where b.id_trabajador = a.id_supvLa cláusula FROM deeste ejemplo define dos copias de la relación TRABAJADOR y les da los alias A y B. Las copias A y B se conectan en la cláusula WHERE
Consulta: Indique los nombres de los trabajadores asignados a edificios que sean oficinas?SELECT NOMB_TRABAJADOR
FROM TRABAJADOR, ASIGNACION, EDIFICIO
WHERE TRABAJADOR.ID_TRABAJADOR = ASIGNACION.ID_TRABAJADOR AND ASIGNACION.ID_EDIFICIO = EDIFICIO-ID_EDIFICIO ANDTIPO = ‘Oficina’
Subconsultas
Una subconsulta es una consulta dentro de otra consulta. Esta puede escribirse dentro de la cláusula WHERE de la consulta principal.
Las subconsultas nos dan una equivalencia parcial con una reunión.
La consulta que incluye a una subconsulta se denomina consulta externa (outer query) o consulta principal.
Consulta: ¿Cuáles son los oficios de los trabajadoresasignados al edificio 435?
SELECT OFICIO
FROM TRABAJADOR
WHERE ID_TRABAJADOR IN
(SELECT ID_TRABAJADOR
FROM ASIGNACION
WHERE ID_EDIFICIO = 435)
En esta consulta que usa el operador IN, la subconsulta debe dar un resultado de una columna (conjunto) para que se pueda ejecutar el WHERE de la consulta principal.
Cuando una subconsulta se puede ejecutar como una consulta se dice que lasubconsulta no está correlacionada.
Consulta: Indicar los nombres de los trabajadores asignados a edificios que sean oficinas.
SELECT NOMB_TRABAJADOR
FROM TRABAJADOR
WHERE ID_TRABAJADOR IN
(SELECT ID_TRABAJADOR
FROM ASIGNACION
WHERE ID_EDIFICIO IN
(SELECT ID_EDIFICIO
FROM EDIFICIO
WHERE TIPO = ‘Oficina’))
Consultas correlacionadas.
Las subconsultas cuyos valores en ejecucióndependen de la fila que está siendo examinada por la consulta principal se llaman subconsultas correlacionadas.
La subconsulta no se puede ejecutar independientemente de la consulta principal.
Consulta: Indicar los trabajadores que reciben una tarifa por hora mayor que la de su supervisor.
select nomb_trabajadorfrom trabajador a
where a.tarifa_hr >
(select b.tarifa_hrfrom...
Regístrate para leer el documento completo.