UtilizandoSubconsultasSQL FUNDAMENTALS IOCA Oracle Database 11gCAP-8
SubconsultaEs una consulta anidad, es disenar y ejecutar otra consulta SQL dentro de una primer consulta.Partes donde podemos colocar sub consultas:COLUMNA DE SELECTFROMWHEREHAVINGEn el Where esta limitado a 255 subconsultasanidadadas.
SELECT sysdate Hoy, (selectcount(*) fromdepartments) Dept_count, (selectcount(*) fromemployees) Emp_CountFROM dual;SELECT last_namefromemployees WHERE employee_id in (selectmanager_idfromemployees);
EjercicioEscriba una consulta que identifique el mayor salario de un empleado para un pais, utilice subconsulta en la clausula FROMSelectmax(salary), country_idfrom( Selectsalary, department_id, location_id, country_idfromemployees natural joindepartments natural joinlocations)Groupbycountry_id
EjercicioMostrar todos los departamentos que tienen actualmente uno o mas empleados asignados.Selectdepartment_namefromdepartmentswheredepartment_id in (selectdistinctdepartment_idfromemployees);Selectdepartment_namefromdepartments d innerjoinemployees e one.department_id=d.department_idgroupbydepartment_name
Puede utilizar los siguientes operadoresINNOT INANYALLSe recomienda asegurarse que las subconsultas no devuelvan valores nulos.Recuerde que el distinct NO QUITA LOS VALORES NULOS
Mostrar el salario promedio de un empleado  por cada paisSelectavg(salary), country_idfrom (selectsalary, department_id, location_id, country_idfromemployees natural joindepartments natural joinlocations) GROUP BY country_id;Reescriba esta consulta sin utilizar anidamiento…
Sub consultas en DMLInsertintosales_hist (select * from sales where date>sysdate);Deletefromdepartmentswheredepartment_idnot in (selectdepartment_idfromemployees)Una subconsulta puede ser usada para seleccionar filas para insercion, pero NO en la clausula VALUES de insert
ejercicioEscriba una consulta que identifique todos los empleados que trabajan en un departamento ubicado en reino unido. (UnitedKingdom)Escriba una consulta para identificar todos los empleados que ganan mas que el promedio, y que trabajan en departamentos cuyo nombre inicia con “IT”
UNA FILA Y MULTIPLES FILASLas consultas SINGLE ROW, devuelven una sola tupla, las consultas escalar devuelven una sola tupla y una sola columnaOperadores para consultas SINGLE ROW=		>>=	<<=	<>!=Operadores de multiplestuplasIN, NOT IN, ANY, ALL
SELECT last_namefromemployees WHERE salary < (selectavg(salary) fromemployees);SELECT p.last_name, p.department_id FROM employees p wherep.salary < (selectavg(s.salary) fromemployees s wheres.department_id=p.department_id);
EJECUTE:Selectlast_namefromemployeeswheresalary > (selectsalaryfromemployeeswherelast_name=‘Tobias’) orderbylast_name;Selectlast_namefromemployeeswheresalary > (selectsalaryfromemployeeswherelast_name=‘Taylor’) orderbylast_name;Selectlast_namefromemployeeswheresalary > ALL (selectsalaryfromemployeeswherelast_name=‘Taylor’) orderbylast_name;
EJERCICIOEncuentre el puesto que tiene el mayor salario promedioSELECT job_titleFROM jobs NATURAL JOIN  employeesGROUP BY job_titleHAVING avg(salary) = (Selectmax(avg(salary)) fromemployeesgroupbyjob_id) ;
EJERCICIORealice una consulta que muestre los apellidos de los empleados que trabajan en un departamento dado, el nombre del departamento será solicitado al usuario.Selectlast_namefromemployeeswheredepartment_id = (selectdepartment_idfromdepartmentswheredepartment_name =  ‘%&depto%’) ;
Hoy instalare y digitare muchas frases del programa tecleo, pues mis compañeros necesitan mi ayuda y colaboración.

sub Consultas Oracle SQL

  • 1.
  • 2.
    SubconsultaEs una consultaanidad, es disenar y ejecutar otra consulta SQL dentro de una primer consulta.Partes donde podemos colocar sub consultas:COLUMNA DE SELECTFROMWHEREHAVINGEn el Where esta limitado a 255 subconsultasanidadadas.
  • 3.
    SELECT sysdate Hoy,(selectcount(*) fromdepartments) Dept_count, (selectcount(*) fromemployees) Emp_CountFROM dual;SELECT last_namefromemployees WHERE employee_id in (selectmanager_idfromemployees);
  • 4.
    EjercicioEscriba una consultaque identifique el mayor salario de un empleado para un pais, utilice subconsulta en la clausula FROMSelectmax(salary), country_idfrom( Selectsalary, department_id, location_id, country_idfromemployees natural joindepartments natural joinlocations)Groupbycountry_id
  • 5.
    EjercicioMostrar todos losdepartamentos que tienen actualmente uno o mas empleados asignados.Selectdepartment_namefromdepartmentswheredepartment_id in (selectdistinctdepartment_idfromemployees);Selectdepartment_namefromdepartments d innerjoinemployees e one.department_id=d.department_idgroupbydepartment_name
  • 6.
    Puede utilizar lossiguientes operadoresINNOT INANYALLSe recomienda asegurarse que las subconsultas no devuelvan valores nulos.Recuerde que el distinct NO QUITA LOS VALORES NULOS
  • 7.
    Mostrar el salariopromedio de un empleado por cada paisSelectavg(salary), country_idfrom (selectsalary, department_id, location_id, country_idfromemployees natural joindepartments natural joinlocations) GROUP BY country_id;Reescriba esta consulta sin utilizar anidamiento…
  • 8.
    Sub consultas enDMLInsertintosales_hist (select * from sales where date>sysdate);Deletefromdepartmentswheredepartment_idnot in (selectdepartment_idfromemployees)Una subconsulta puede ser usada para seleccionar filas para insercion, pero NO en la clausula VALUES de insert
  • 9.
    ejercicioEscriba una consultaque identifique todos los empleados que trabajan en un departamento ubicado en reino unido. (UnitedKingdom)Escriba una consulta para identificar todos los empleados que ganan mas que el promedio, y que trabajan en departamentos cuyo nombre inicia con “IT”
  • 10.
    UNA FILA YMULTIPLES FILASLas consultas SINGLE ROW, devuelven una sola tupla, las consultas escalar devuelven una sola tupla y una sola columnaOperadores para consultas SINGLE ROW= >>= <<= <>!=Operadores de multiplestuplasIN, NOT IN, ANY, ALL
  • 11.
    SELECT last_namefromemployees WHEREsalary < (selectavg(salary) fromemployees);SELECT p.last_name, p.department_id FROM employees p wherep.salary < (selectavg(s.salary) fromemployees s wheres.department_id=p.department_id);
  • 12.
    EJECUTE:Selectlast_namefromemployeeswheresalary > (selectsalaryfromemployeeswherelast_name=‘Tobias’)orderbylast_name;Selectlast_namefromemployeeswheresalary > (selectsalaryfromemployeeswherelast_name=‘Taylor’) orderbylast_name;Selectlast_namefromemployeeswheresalary > ALL (selectsalaryfromemployeeswherelast_name=‘Taylor’) orderbylast_name;
  • 13.
    EJERCICIOEncuentre el puestoque tiene el mayor salario promedioSELECT job_titleFROM jobs NATURAL JOIN employeesGROUP BY job_titleHAVING avg(salary) = (Selectmax(avg(salary)) fromemployeesgroupbyjob_id) ;
  • 14.
    EJERCICIORealice una consultaque muestre los apellidos de los empleados que trabajan en un departamento dado, el nombre del departamento será solicitado al usuario.Selectlast_namefromemployeeswheredepartment_id = (selectdepartment_idfromdepartmentswheredepartment_name = ‘%&depto%’) ;
  • 15.
    Hoy instalare ydigitare muchas frases del programa tecleo, pues mis compañeros necesitan mi ayuda y colaboración.