Ir al contenido principal

SQL (Oracle)

Objetivo:
El curso está orientado a la creación de consultas en lenguaje SQL
en un entorno Oracle (19c).
El alumno aprenderá a:

  • Crear consultas utilizando cláusulas para proyectar expresiones y seleccionar filas
  • Crear cálculos mediante expresiones y funciones,
    así como crear resúmenes de datos (grupos y funciones de grupo).
  • Unir tablas utilizando la sintaxis ANSI y Oracle y los
    distintos métodos de unión.
  • Usar operadores de conjuntos.
  • Utilizar funciones analíticas que permiten crear cálculos
    avanzados con información de grupo a nivel de fila.

Metodología:
El curso se desarrolla mediante la exposición teórica del contenido
acompañada de demostraciones prácticas.
El alumno utilizará las herramientas relacionadas con la exposición
en prácticas relacionadas con cada tema del contenido.
Resolución de dudas de los conceptos expuestos.

Duración:
24 horas

Contenido:

  1. Introducción
    1.1 Introducción a Oracle Database
    1.2 Introducción al modelo relacional
    1.3 Introducción al lenguaje SQL y herramientas de uso
  2. Recuperación de datos mediante SELECT
    2.1 Proyección de datos
    2.2 Uso de alias en consultas
    2.3 Operaciones aritméticas
    2.4 Definición de NULL
    2.5 Concatenación de cadenas
    2.6 Literales de texto, número y fecha
    2.7 Uso de DISTINCT
    2.8 Uso de DESCRIBE
  3. Filtro de datos
    3.1 Uso de la cláusula WHERE
    3.2 Operadores de comparación
    3.3 Búsqueda de datos con LIKE
    3.4 Condiciones para gestionar valores nulos
    3.5 Operadores de evaluación: AND, OR y NOT
    3.6 Uso de IN y BETWEEN
  4. Ordenación de datos
    4.1 Métodos de ordenación
    4.2 Ordenación de datos nulos
  5. Cláusula limitante
    5.1 Limitación de filas
    5.2 Salto de filas
    5.3 Salida de filas «empatadas»
  6. Funciones de fila única
    6.1 Uso de funciones
    6.2 Funciones numéricas
    6.3 Funciones de texto
    6.4 Funciones de gestión de fechas
    6.5 Funciones de conversión de datos
    6.6 Funciones de gestión de nulos
    6.7 Funciones de evaluación compleja (CASE)
  7. Funciones de grupo y generación de datos agrupados
    7.1 Funciones de grupo (SUM, MAX, MIN…)
    7.2 Generación de datos agrupados
    7.3 Filtro de datos agrupados
  8. Uniones de tablas
    8.1 Conceptos de unión en el modelo relacional
    8.2 Sintaxis ANSI y Oracle para uniones:
    8.2.1 Uniones internas
    8.2.2 Uniones externas, gestión de huérfanos
    8.2.3 Uniones «non-equijoin»
    8.2.4 Autounión y recuperación jerárquica
    8.2.5 Producto cartesiano
  9. Subconsultas
    9.1 Uso de subconsultas
    9.2 Subconsultas emparejadas y no emparejadas
    9.3 Subconsultas correlacionadas
    9.3.1 Creación de consultas correlacionadas
    9.3.2 Métodos eficaces de correlación de datos
    9.4 Uso de IN y EXISTS en subconsultas
  10. Operadores de conjuntos
    10.1 Conceptos de operaciones con conjuntos
    10.2 Uso de operadores de conjuntos
    10.2.1 UNION y UNION ALL
    10.2.2 INTERSECT
    10.2.3 MINUS
  11. Uso de WITH
    11.1 Ventajas de uso de WITH
    11.2 Uso de WITH
    11.3 WITH recursivo
  12. SQL analítico
    12.1 Conceptos de funciones analíticas
    12.2 Ventana de cálculos
    12.3 Funciones analíticas:
    12.3.1 RANK y DENSE_RANK
    12.3.2 CUME_DIST y PERCENT_RANK
    12.3.3 NTILE y RATIO_TO_REPORT
    12.3.4 LAG y LEAD
    12.3.5 FIRST y LAST
    12.3.6 LIST_AGG (within group)

Optimización de SQL

  1. Introducción
    1.1 Identificar SQL a optimizar
    1.2 Estrategias de de ajuste
  2. Funcionamiento de optimizador
    2.1 Análisis y procesamiento de una consulta
    2.2 Transformador de consultas
    2.3 Operaciones del transformador
    2.4 Selectividad y cardinalidad
    2.5 Cálculo del coste de una consulta
    2.6 Optimización adaptativa de consulta
    2.7 Controlar el comportamiento del optimizador
  3. Planes de ejecución
    3.1 Mostrar planes de ejecucion
    3.2 Revisar los planes de ejecución
    3.3 Uso de EXPLAIN PLAN
    3.4 Opciones de EXPLAIN PLAN
    3.5 Uso de AUTOTRACE
    3.6 Vistas de rendimiento
    3.7 Monitorización de SQL
  4. Interpretación de planes de ejecución
    4.1 Cómo leer un plan de ejecución
    4.2 Operaciones de tabla
    4.3 Operaciones de índices
    4.4 Operaciones de unión
    4.5 Otras operaciones
  5. Caché de resultados
    5.1 Introducción a RESULT_CACHE
    5.2 Activación de RESULT_CACHE
    5.3 Uso de RESULT_CACHE
  6. Estadísticas del optimizador
    6.1 Importancia de las estadísticas
    6.2 Cálculo y configuración de cálculo de estadísticas
    6.3 Histogramas y cálculo de histogramas
  7. Uso de variables BIND
    7.1 Concepto de compartición de cursor
    7.2 Uso de variables BIND para la compartición de cursor
  8. Traza de aplicación
    8.1 Uso de TKPROF
    8.2 Uso de TRCSESS
  9. Mejores prácticas con SQL
    9.1 Ejemplos de buenas y malas prácticas
    9.2 SQL recomendado
    9.3 Transformaciones automáticas

SQL básico (MySQL)

TEMARIO:

  1. Conceptos de bases de datos relacionales
  2. Conceptos básicos de MySQL
    2a. Acceso al servidor
    2b. Uso de MySQL Workbench
  3. Lenguaje SQL: Uso de SELECT
    3a. Sentencias básicas
    3b. Uso de alias
    3c. Expresiones aritméticas
    3d. Concepto de NULL
  4. Lenguaje SQL: Uso de funciones de fila única
    4a. Funciones de fila única para caracteres
    4b. Funciones de fila única para valores numéricos
    4c. Funciones de fila única para fechas
    4d. Anidamiento de funciones
    4e. Funciones de conversión de tipos
    4f. Funciones de gestión de nulos
    4g. Funciones condicionales
  5. Lenguaje SQL: Agrupación de datos
    5a. Uso de GROUP BY
    5b. Uso de HAVING
  6. Lenguaje SQL: Uniones de tablas
    6a. Uso de sintaxis ANSI
    6b. Uso de sintaxis «Oracle»
    6c. Uniones INNER / OUTER
    6d. Uso de autounión (SELF JOIN)
    6e. Uniones EQUIJOIN / NONEQUIJOIN
    6f. Unión mediante producto cartesiano
  7. Lenguaje SQL: Subconsultas
    7a. Uso de subconsultas
    7b. Conversión de subconsultas a unión
  8. Lenguaje DDL: Creación de objetos
    8a. Creación de tablas
    8b. Creación de restricciones
    8b1. Claves primarias
    8b2. Claves externas
    8b3. Restricciones NOT NULL, CHECK y UNIQUE
    8c. Creación de índices
  9. Lenguaje DML: Gestión de filas
    9a. Inserción de filas (INSERT)
    9b. Actualización de filas (UPDATE)
    9c. Eliminación de filas (DELETE)

SQL Avanzado

I.                 Objetivos

Este curso desarrolla los métodos avanzados de SQL tanto con funciones de base de datos (vistas e índices) como sintaxis específica (analítica, agrupaciones avanzadas, tablas jerárquicas, etc).

El curso utiliza la base de datos relacional Oracle Database.

Al finalizar el curso, el alumno tendrá suficientes conocimientos para:

  • Utilizar vistas para la recuperación de datos y restricciones de DML.
    • Conocer y utilizar los principales índices que proporciona la base de datos Oracle.
    • Utilizar consultas de SQL avanzado para la recuperación eficiente de datos en casos concretos como: analítica de datos, agrupación compleja, tablas jerárquicas, búsquedas avanzadas, pivotado y despivotados de conjuntos de datos e inserción múltiple). Elementos que serán de utilidad para distintas áreas (procesos de integración de datos, análisis de datos, mejora del rendimiento de consulta).

II.              Requisitos

  • Conocimientos de SQL (preferible en entorno Oracle Database).

III.            Duración

  • 20 horas.

IV.           Metodología

El curso se desarrolla mediante la exposición teórica acompañada de demostraciones prácticas.

El alumno utilizará las herramientas relacionadas con la exposición. Resolución de dudas de los conceptos expuestos.

V.              Contenido

  • Vistas.
    • Creación de vistas.
    • Vistas actualizables.
    • Vistas en línea.
    • Uso de Check Option.
    • Eliminación de vistas.
  • Índices
    • Utilidad de los índices.
    • Tipos de índices.
      • Índices B-TREE.
      • Índices BITMAP.
    • Creación y mantenimiento de índices.
    • Índices basados en funciones.
  • SQL avanzado.
    • SQL analítico.
      • RANK.
      • DENSE_RANK.
      • CUME_DIST.
      • PERCENT_RANK.
      • NTILE.
      • RATIO_TO_REPORT.
      • LAG / LEAD.
      • FIRST_VALUE / LAST_VALUE.
      • LIST_AGG.
    • Agrupación avanzada.
      • ROLLUP.
      • CUBE.
      • GROUPING SETS.
    • Recuperación de datos jerárquicos.
      • CONNECT BY.
    • Expresiones regulares.
      • Metacaracteres.
      • Funciones: REGEXP_LIKE, REGEXP_REPLACE, REGEXP_INSTR, REGEXP_SUBSTR, REGEXTP_COUNT.
    • Pivotado y despivotado de datos (PIVOT / UNPIVOT).
    • Inserción múltiple de datos.

© Juan de Juan.