Your SlideShare is downloading. ×

sub Consultas Oracle SQL

10,225
views

Published on

Published in: Education

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,225
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
217
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Utilizando
    Subconsultas
    SQL FUNDAMENTALS I
    OCA Oracle Database 11gCAP-8
  • 2. Subconsulta
    Es una consulta anidad, es disenar y ejecutar otra consulta SQL dentro de una primer consulta.
    Partes donde podemos colocar sub consultas:
    COLUMNA DE SELECT
    FROM
    WHERE
    HAVING
    En el Where esta limitado a 255 subconsultasanidadadas.
  • 3. SELECT sysdate Hoy,
    (selectcount(*) fromdepartments) Dept_count,
    (selectcount(*) fromemployees) Emp_Count
    FROM dual;
    SELECT last_namefromemployees WHERE employee_id in (selectmanager_idfromemployees);
  • 4. Ejercicio
    Escriba una consulta que identifique el mayor salario de un empleado para un pais, utilice subconsulta en la clausula FROM
    Selectmax(salary), country_idfrom
    ( Selectsalary, department_id, location_id, country_idfromemployees natural joindepartments natural joinlocations)
    Groupbycountry_id
  • 5. Ejercicio
    Mostrar 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
  • 6. Puede utilizar los siguientes operadores
    IN
    NOT IN
    ANY
    ALL
    Se recomienda asegurarse que las subconsultas no devuelvan valores nulos.
    Recuerde que el distinct NO QUITA LOS VALORES NULOS
  • 7. Mostrar el salario promedio de un empleado por cada pais
    Selectavg(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 en DML
    Insertintosales_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. ejercicio
    Escriba 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”
  • 10. UNA FILA Y MULTIPLES FILAS
    Las consultas SINGLE ROW, devuelven una sola tupla, las consultas escalar devuelven una sola tupla y una sola columna
    Operadores para consultas SINGLE ROW
    = >
    >= <
    <= <>
    !=
    Operadores de multiplestuplas
    IN, NOT IN, ANY, ALL
  • 11. 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);
  • 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. EJERCICIO
    Encuentre el puesto que tiene el mayor salario promedio
    SELECT job_title
    FROM jobs NATURAL JOIN employees
    GROUP BY job_title
    HAVING avg(salary) =
    (Selectmax(avg(salary)) fromemployeesgroupbyjob_id) ;
  • 14. EJERCICIO
    Realice 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%’) ;
  • 15. Hoy instalare y digitare muchas frases del programa tecleo, pues mis compañeros necesitan mi ayuda y colaboración.

×