ContenidoIntroducción
Por qué escribí este libro
Objetivos de este libro
A quiénes va dirigido este libro
Cómo se utiliza este libro
Qué falta en este libro
Estructura de este libro
Plataforma y versión
Tablas utilizadas en este libro
Convenciones utilizadas en este libro
Convenciones tipográficas
Convenciones de codificación
Capítulo 1. Obtención de registros
Obtención de todas las filas y columnas de una tabla
Obtención de un subconjunto de filas de una tabla
Búsqueda de filas que satisfagan varias condiciones
Obtención de un subconjunto de columnas de una tabla
Asignación de nombres significativos a las columnas
Referencia a una columna con alias en la cláusula WHERE
Concatenación de valores de columnas
Uso de la lógica condicional en una instrucción SELECT
Limitación del número de filas devueltas
Devolución de n registros aleatorios de una tabla
Búsqueda de valores nulos
Transformación de valores nulos en valores reales
Búsqueda de patrones
Capítulo 2. Orden de los resultados de las consultas
Devolución de resultados de consulta en un orden determinado
Orden por varios campos
Orden por subcadenas
Orden de combinaciones de datos alfanuméricos
Tratamiento de los valores nulos al ordenar
Orden según una clave dependiente de los datos
Capítulo 3. Trabajo con varias tablas
Presentación de un conjunto de filas sobre otro
Combinación de filas relacionadas
Búsqueda de las filas en común entre dos tablas
Obtención de valores de una tabla que no existen en otra
Obtención de filas de una tabla que no se corresponden con las filasde otra
Adición de combinaciones en una consulta sin interferira otras combinaciones
Comparación de dos tablas para determinar si tienenlos mismos datos
Identificación y evitación de productos cartesianos
Ejecución de combinaciones cuando se utilizan agregados
Ejecución de combinaciones externas cuando se utilizan agregados
Devolución de datos que no existen en varias tablas
Utilización de valores NULL en operaciones y comparaciones
Capítulo 4. Inserción, actualización, eliminación
Inserción de un registro nuevo
Inserción de valores predeterminados
Anular un valor predeterminado con NULL
Copia de filas de una tabla a otra
Copia de una definición de tabla
Inserción en varias tablas al mismo tiempo
Bloqueo de inserciones en varias columnas
Modificación de registros en una tabla
Actualización cuando existen las filas correspondientes
Actualización con valores de otra tabla
Fusión de registros
Eliminación de todos los registros de una tabla
Eliminación de registros específicos
Eliminación de un solo registro
Eliminación de violaciones de la integridad referencial
Eliminación de registros duplicados
Eliminación de registros a los que se hace referenciadesde otra tabla
Capítulo 5. Consultas de metadatos
Creación de una lista de tablas de un esquema
Creación de una lista de las columnas de una tabla
Creación de columnas indexadas para una tabla
Creación de una lista de las restricciones de una tabla
Creación de una lista de las claves externas sin los índicescorrespondientes
Empleo de SQL para generar SQL
Descripción de las vistas de diccionarios de datos en una basede datos Oracle
Capítulo 6. Trabajo con cadenas
Recorrido de una cadena
Inclusión de comillas dentro de literales de cadena
Cómputo de las apariciones de un carácter en una cadena
Eliminación de caracteres no deseados de una cadena
Separación de datos numéricos y de caracteres
Determinación de la naturaleza alfanumérica de una cadena
Extracción de las iniciales de un nombre
Orden por partes de una cadena
Orden por un número de una cadena
Creación de una lista delimitada con las filas de una tabla
Conversión de datos delimitados en una lista IN de valores múltiples
Orden alfabético de los caracteres de una cadena
Identificación de cadenas que se pueden tratar como números
Extracción de la enésima cadena delimitada
Análisis de una dirección IP
Capítulo 7. Trabajo con números
Cálculo de un promedio
Búsqueda del valor mínimo/máximo de una columna
Suma de los valores de una columna
Cómputo de las filas de una tabla
Cómputo de los valores de una columna
Generación de un total acumulado
Generación de un producto acumulado
Cálculo de una diferencia acumulada
Cálculo de una moda
Cálculo de una mediana
Determinación del porcentaje de un total
Agregación de columnas con valores nulos
Cálculo de medias sin los valores máximo y mínimo
Conversión de cadenas alfanuméricas en números
Cambio de valores en un total acumulado
Capítulo 8. Aritmética de fechas
Adición y sustracción de días, meses y años
Determinación del número de días entre dos fechas
Determinación del número de días laborables entre dos fechas
Determinación del número de meses o años entre dos fechas
Determinación del número de segundos, minutos y horasentre dos fechas
Cómputo de los días de la semana en un año
Determinación de la diferencia en fechas entre el registro actualy el registro siguiente
Capítulo 9. Manipulación de fechas
Determinación de la naturaleza bisiesta de un año
Determinación del número de días de un año
Extracción de unidades de tiempo de una fecha
Determinación del primer y último día de un mes
Determinación de todas las fechas para cierto día de la semanaa lo largo de un año
Determinación de la fecha de la primera y última aparición de un díade la semana concreto en un mes
Creación de un calendario
Creación de una lista de las fechas de inicio y de fin de los trimestresdel año
Determinación de las fechas de inicio y de fin de un trimestre
Compleción de un intervalo de fechas
Búsqueda de unidades específicas de tiempo
Comparación de registros por partes específicas de una fecha
Identificación de intervalos de fechas solapados
Capítulo 10. Trabajo con intervalos
Localización de un intervalo de valores consecutivos
Búsqueda de las diferencias entre filas del mismo grupo o partición
Localización del principio y el fin de un intervalo de valoresconsecutivos
Completar un intervalo de valores
Generación de valores numéricos consecutivos
Capítulo 11. Búsqueda avanzada
Paginación de un conjunto de resultados
Omisión de n filas de una tabla
Incorporación de la lógica OR al usar combinaciones externas
Determinación de las filas recíprocas
Selección de los n primeros registros
Búsqueda de registros con los valores máximo y mínimo
Examinación de las filas futuras
Desplazamiento continuo por valores de filas
Clasificación de resultados
Supresión de duplicados
Búsqueda de "valores de caballo"
Generación de previsiones simples
Capítulo 12. Creación de informes y almacenamiento
Creación de una tabla dinámica de una fila a partir de un conjuntode resultados
Creación una tabla dinámica de varias filas a partir de un conjuntode resultados
Transposición inversa de un conjunto de resultados
Transposición inversa de un conjunto de resultados en una columna
Supresión de valores que se repiten en un conjunto de resultados
Creación de una tabla dinámica a partir de un conjuntode resultados para facilitar cálculos entre filas
Creación de depósitos de datos de tamaño fijo
Creación de un número predefinido de depósitos
Creación de histogramas horizontales
Creación de histogramas verticales
Devolución de columnas no incluidas en GROUP BY
Cálculo de subtotales simples
Cálculo de subtotales para todas las combinaciones de expresionesposibles
Identificación de las filas que no son subtotales
Uso de expresiones CASE para marcar filas
Creación de una matriz dispersa
Agrupación de filas por unidades de tiempo
Realización de agregaciones entre distintos grupos/particiones simultáneamente
Realización de agregaciones en un intervalo variable de valores
Creación de una tabla dinámica con subtotales a partir de un conjuntode resultados
Capítulo 13. Consultas jerárquicas
Expresión de una relación de subordinación
Expresión de una relación de subordinación de tres niveles
Creación de una vista jerárquica de una tabla
Búsqueda de todas las filas subordinadas de ciertafila principal
Determinación de las filas que son nodos hoja, rama o raíz
Capítulo 14. Técnicas misceláneas
Creación de informes de tablas de referencias cruzadas medianteel operador PIVOT de SQL Server
Aplicación del operador UNPIVOT de SQL Server a un informe de tablade referencias cruzadas
Transposición de un conjunto de resultados por medio de la cláusulaMODEL de Oracle
Extracción de elementos de una cadena de posiciones variables
Búsqueda del número de días de un año (solución alternativapara Oracle)
Búsqueda de cadenas alfanuméricas mixtas
Conversión de números enteros en binarios con Oracle
Creación de una tabla dinámica a partir de un conjunto de resultados clasificados
Adición de un encabezado de columna a un conjunto de resultadoscon doble transposición
Conversión de una subconsulta escalar en una subconsultacompuesta en Oracle
Análisis de datos serializados devolviéndolos en filas
Cálculo de un porcentaje relativo al total
Creación de una lista CSV en Oracle
Búsqueda de texto que no coincide con un patrón (Oracle)
Transformación de datos con una vista en línea
Comprobación de la existencia de un valor dentrode un grupo
Apéndices
Apéndice A. Repaso a las funciones de ventanas
Grupos
Ventanas
Apéndice B. Revisión de la obra de Rozenshtein
Tablas de ejemplo de Rozenshtein
Respuestas a preguntas con negación
Respuestas a preguntas con "como máximo"
Respuestas a preguntas con "como mínimo"
Respuestas a preguntas con "exactamente"
Respuestas a preguntas con "algún", "cualquier" o "todos"
Índice alfabético