Libro de cocina de MySQL, 4ª edición

Book description

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Para MySQL, el precio de la popularidad viene acompañado de una avalancha de preguntas de los usuarios sobre cómo resolver problemas específicos relacionados con los datos. Ahí es donde entra en juego este libro de cocina. Cuando necesites soluciones o técnicas rápidas, este práctico recurso proporciona decenas de fragmentos de código breves y específicos, cientos de ejemplos trabajados y explicaciones claras y concisas para los programadores que no tienen tiempo (o conocimientos) para resolver problemas de MySQL desde cero.

En esta cuarta edición actualizada, los autores Sveta Smirnova y Alkin Tezuysal proporcionan más de 200 recetas que cubren potentes funciones tanto de MySQL 5.7 como de MySQL 8.0. Tanto los principiantes como los desarrolladores profesionales de bases de datos y web se sumergirán en temas como MySQL Shell, la replicación MySQL y el trabajo con JSON.

Aprenderás a:

  • Conectarte a un servidor, realizar consultas y recuperar resultados
  • Recuperar datos del Servidor MySQL
  • Almacenar, recuperar y manipular cadenas
  • Trabajar con fechas y horas
  • Ordena los resultados de las consultas y genera resúmenes
  • Evaluar las características de un conjunto de datos
  • Escribe funciones y procedimientos almacenados
  • Utilizar rutinas almacenadas, desencadenadores y eventos programados
  • Realizar tareas básicas de administración de MySQL
  • Comprender los fundamentos de la monitorización de MySQL

Table of contents

  1. Prólogo
  2. Prefacio
    1. A quién va dirigido este libro
    2. Qué contiene este libro
    3. API MySQL utilizadas en este libro
    4. Notas sobre la versión y la plataforma
    5. Convenciones utilizadas en este libro
    6. Repositorio GitHub del libro de cocina complementario de MySQL
    7. Obtención de MySQL y software relacionado
    8. Utilizar ejemplos de código
    9. Aprendizaje en línea O'Reilly
    10. Cómo contactar con nosotros
    11. Agradecimientos
  3. 1. Utilizar el Programa Cliente mysql
    1. 1.0. Introducción
    2. 1.1. Configurar una cuenta de usuario MySQL
    3. 1.2. Crear una base de datos y una tabla de ejemplo
    4. 1.3. Encontrar el Cliente mysql
    5. 1.4. Especificación de las opciones del comando mysql
    6. 1.5. Ejecutar sentencias SQL de forma interactiva
    7. 1.6. Ejecutar sentencias SQL leídas de un archivo o programa
    8. 1.7. Controlar el destino y el formato de salida de mysql
    9. 1.8. Uso de variables definidas por el usuario en sentencias SQL
    10. 1.9. Personalizar una ventana de mysql
    11. 1.10. Utilizar programas externos
    12. 1.11. Filtrar y procesar la salida
  4. 2. Uso de la Shell MySQL
    1. 2.0. Introducción
    2. 2.1. Conexión al servidor MySQL con MySQL Shell
    3. 2.2. Seleccionar el protocolo
    4. 2.3. Seleccionar el modo SQL, JavaScript o Python
    5. 2.4. Ejecutar sesión SQL
    6. 2.5. Ejecutar SQL en modo JavaScript
    7. 2.6. Ejecutar SQL en modo Python
    8. 2.7. Trabajar con tablas en modo JavaScript
    9. 2.8. Trabajar con tablas en modo Python
    10. 2.9. Trabajar con colecciones en modo JavaScript
    11. 2.10. Trabajar con colecciones en modo Python
    12. 2.11. Controlar el formato de salida
    13. 2.12. Ejecutar informes con MySQL Shell
    14. 2.13. Utilizar las utilidades de la shell de MySQL
    15. 2.14. Utilizar la API de Administración para Automatizar la Gestión de la Replicación
    16. 2.15. Trabajar con objetos JavaScript
    17. 2.16. Rellenar datos de prueba utilizando los módulos de ciencia de datos de Python
    18. 2.17. Reutilizar tus scripts para MySQL Shell
  5. 3. Replicación MySQL
    1. 3.0. Introducción
    2. 3.1. Configuración de la replicación básica entre un origen y una réplica
    3. 3.2. Replicación basada en la posición en el entorno de nueva instalación
    4. 3.3. Configurar una réplica basada en la posición de una instalación MySQL que ya está en uso
    5. 3.4. Configurar la replicación basada en GTID
    6. 3.5. Configurar un formato de registro binario
    7. 3.6. Utilizar filtros de replicación
    8. 3.7. Reescribir una base de datos en la réplica
    9. 3.8. Utilizar una réplica multihilo
    10. 3.9. Configurar la replicación circular
    11. 3.10. Utilizar la replicación multifuente
    12. 3.11. Utilizar un complemento de replicación semisíncrona
    13. 3.12. Utilizar la Replicación de Grupos
    14. 3.13. Almacenamiento seguro de las credenciales de replicación
    15. 3.14. Usar TLS (SSL) para la Replicación
    16. 3.15. Solución de problemas de replicación
    17. 3.16. Utilizar la Lista de Procesos para Comprender el Rendimiento de la Replicación
    18. 3.17. Configurar la Replicación Automatizada
  6. 4. Escribir programas basados en MySQL
    1. 4.0. Introducción
    2. 4.1. Conectar, seleccionar una base de datos y desconectar
    3. 4.2. Comprobación de errores
    4. 4.3. Escribir archivos de biblioteca
    5. 4.4. Ejecución de sentencias y obtención de resultados
    6. 4.5. Manejo de caracteres especiales y valores NULL en sentencias
    7. 4.6. Manejo de caracteres especiales en los identificadores
    8. 4.7. Identificar valores nulos en conjuntos de resultados
    9. 4.8. Obtener los parámetros de conexión
    10. 4.9. Restablecer la Tabla de perfiles
  7. 5. Seleccionar datos de tablas
    1. 5.0. Introducción
    2. 5.1. Especificar qué columnas y filas seleccionar
    3. 5.2. Nombrar columnas de resultados de consulta
    4. 5.3. Ordenar los resultados de la consulta
    5. 5.4. Eliminar filas duplicadas
    6. 5.5. Trabajar con valores nulos
    7. 5.6. Escribir comparaciones con NULL en programas
    8. 5.7. Utilizar vistas para simplificar el acceso a las tablas
    9. 5.8. Seleccionar datos de varias tablas
    10. 5.9. Seleccionar filas del principio, final o medio de los resultados de la consulta
    11. 5.10. Qué hacer cuando el LÍMITE y el resultado final requieren un orden de clasificación diferente
    12. 5.11. Calcular valores LÍMITE a partir de expresiones
    13. 5.12. Combinar dos o más resultados SELECT
    14. 5.13. Seleccionar resultados de subconsultas
  8. 6. Gestión de la mesa
    1. 6.0. Introducción
    2. 6.1. Clonar una tabla
    3. 6.2. Guardar el resultado de una consulta en una tabla
    4. 6.3. Crear tablas temporales
    5. 6.4. Generar nombres de tabla únicos
    6. 6.5. Comprobar o modificar un motor de almacenamiento de tablas
    7. 6.6. Copiar una tabla con mysqldump
    8. 6.7. Copiar una tabla InnoDB utilizando espacios de tabla transportables
    9. 6.8. Copiar una tabla MyISAM utilizando un archivo sdi
  9. 7. Trabajar con cadenas
    1. 7.0. Introducción
    2. 7.1. Propiedades de las cadenas
    3. 7.2. Elegir un tipo de datos de cadena
    4. 7.3. Configurar el juego de caracteres de la conexión cliente
    5. 7.4. Escribir literales de cadena
    6. 7.5. Comprobar o cambiar el juego de caracteres o la intercalación de una cadena
    7. 7.6. Convertir las letras de una cadena
    8. 7.7. Comparar valores de cadena
    9. 7.8. Convertir entre formatos decimal, octal y hexadecimal
    10. 7.9. Convertir entre formatos ASCII, BIT y hexadecimal
    11. 7.10. Coincidencia de patrones con patrones SQL
    12. 7.11. Comparación de patrones con expresiones regulares
    13. 7.12. Invertir el contenido de la cadena
    14. 7.13. Buscar subcadenas
    15. 7.14. Descomponer o combinar cadenas
    16. 7.15. Utilizar búsquedas de texto completo
    17. 7.16. Utilizar una búsqueda de texto completo con palabras cortas
    18. 7.17. Exigir o prohibir palabras de búsqueda de texto completo
    19. 7.18. Realizar búsquedas de frases en texto completo
  10. 8. Trabajar con fechas y horas
    1. 8.0. Introducción
    2. 8.1. Elegir un tipo de dato temporal
    3. 8.2. Utilizar el soporte de segundos fraccionarios
    4. 8.3. Cambiar el formato de fecha de MySQL
    5. 8.4. Configurar la Zona Horaria del Cliente
    6. 8.5. Configurar la Zona Horaria del Servidor
    7. 8.6. Desplazamiento de valores temporales entre zonas horarias
    8. 8.7. Determinar la fecha u hora actual
    9. 8.8. Utilizar TIMESTAMP o DATETIME para controlar los tiempos de modificación de las filas
    10. 8.9. Extraer partes de fechas u horas
    11. 8.10. Sintetizar fechas u horas a partir de valores de componentes
    12. 8.11. Conversión entre valores temporales y unidades básicas
    13. 8.12. Calcular intervalos entre fechas u horas
    14. 8.13. Añadir valores de fecha u hora
    15. 8.14. Calcular edades
    16. 8.15. Encontrar el primer día, el último día o la duración de un mes
    17. 8.16. Encontrar el día de la semana de una fecha
    18. 8.17. Encontrar fechas para cualquier día de una semana determinada
    19. 8.18. Canonización de cadenas de fecha no exactamente ISO
    20. 8.19. Seleccionar filas según características temporales
  11. 9. Ordenar los resultados de la consulta
    1. 9.0. Introducción
    2. 9.1. Utilizar ORDER BY para ordenar los resultados de una consulta
    3. 9.2. Utilizar expresiones para ordenar
    4. 9.3. Visualizar un conjunto de valores mientras se ordena por otro
    5. 9.4. Controlar la sensibilidad a mayúsculas y minúsculas de la ordenación de cadenas
    6. 9.5. Ordenar temporalmente
    7. 9.6. Ordenar por subcadenas de valores de columna
    8. 9.7. Ordenar por subcadenas de longitud fija
    9. 9.8. Ordenar por subcadenas de longitud variable
    10. 9.9. Ordenar los nombres de host por dominio
    11. 9.10. Ordenar valores IP en cuadrado de puntos en orden numérico
    12. 9.11. Valores flotantes a la cabeza o cola del orden de clasificación
    13. 9.12. Definir un orden de clasificación personalizado
    14. 9.13. Ordenar valores ENUM
  12. 10. Generar resúmenes
    1. 10.0. Introducción
    2. 10.1. Resumiendo con COUNT()
    3. 10.2. Resumir con MIN() y MAX()
    4. 10.3. Resumir con SUM() y AVG()
    5. 10.4. Utilizar DISTINCT para eliminar duplicados
    6. 10.5. Crear una vista para simplificar el uso de un resumen
    7. 10.6. Encontrar valores asociados a los valores mínimo y máximo
    8. 10.7. Control de la sensibilidad a mayúsculas y minúsculas en MIN() y MAX()
    9. 10.8. Dividir un Sumario en Subgrupos
    10. 10.9. Manejo de valores nulos con funciones agregadas
    11. 10.10. Seleccionar sólo grupos con determinadas características
    12. 10.11. Utilizar los recuentos para determinar si los valores son únicos
    13. 10.12. Agrupar por resultados de expresión
    14. 10.13. Resumir datos no categóricos
    15. 10.14. Encontrar los valores de resumen más pequeños o más grandes
    16. 10.15. Elaborar resúmenes basados en fechas
    17. 10.16. Trabajar con valores de resumen por grupo y globales simultáneamente
    18. 10.17. Generar un informe que incluya un resumen y una lista
    19. 10.18. Generar Resúmenes a partir de Conjuntos de Resultados Temporales
  13. 11. Uso de rutinas almacenadas, activadores y eventos programados
    1. 11.0. Introducción
    2. 11.1. Creación de objetos de sentencia compuesta
    3. 11.2. Utilizar funciones almacenadas para simplificar los cálculos
    4. 11.3. Utilizar procedimientos almacenados para producir múltiples valores
    5. 11.4. Utilizar disparadores para registrar cambios en una tabla
    6. 11.5. Utilizar Eventos para Programar Acciones de la Base de Datos
    7. 11.6. Escribir rutinas de ayuda para ejecutar SQL dinámico
    8. 11.7. Detectar condiciones de "No hay más filas" utilizando manejadores de condiciones
    9. 11.8. Atrapar e ignorar errores con manejadores de condiciones
    10. 11.9. Emisión de errores y advertencias
    11. 11.10. Registrar errores accediendo al Área de Diagnóstico
    12. 11.11. Utilizar Disparadores para Preprocesar o Rechazar Datos
  14. 12. Trabajar con metadatos
    1. 12.0. Introducción
    2. 12.1. Determinar el número de filas afectadas por una sentencia
    3. 12.2. Obtener metadatos del conjunto de resultados
    4. 12.3. Listar o comprobar la existencia de bases de datos o tablas
    5. 12.4. Listar o comprobar la existencia de vistas
    6. 12.5. Acceder a las definiciones de las columnas de la tabla
    7. 12.6. Obtener información de columnas ENUM y SET
    8. 12.7. Obtener metadatos del servidor
    9. 12.8. Escribir aplicaciones que se adapten a la versión del servidor MySQL
    10. 12.9. Obtener tablas hijas que hacen referencia a una tabla específica mediante restricciones de clave foránea
    11. 12.10. Listado de activadores
    12. 12.11. Listado de Rutinas Almacenadas y Eventos Programados
    13. 12.12. Listado de plug-ins instalados
    14. 12.13. Listado de juegos de caracteres y colaciones
    15. 12.14. Listado de restricciones CHECK
  15. 13. Importar y exportar datos
    1. 13.0. Introducción
    2. 13.1. Importar datos con LOAD DATA y mysqlimport
    3. 13.2. Especificar delimitadores de columna y línea
    4. 13.3. Tratar con comillas y caracteres especiales
    5. 13.4. Manejar valores de clave duplicados
    6. 13.5. Obtener diagnósticos sobre datos de entrada erróneos
    7. 13.6. Saltar líneas del fichero de datos
    8. 13.7. Especificar el orden de las columnas de entrada
    9. 13.8. Preprocesar los valores de entrada antes de insertarlos
    10. 13.9. Ignorar columnas del fichero de datos
    11. 13.10. Importar archivos CSV
    12. 13.11. Exportar resultados de consulta desde MySQL
    13. 13.12. Importar y exportar valores nulos
    14. 13.13. Exportar datos en formato SQL
    15. 13.14. Importar datos SQL
    16. 13.15. Exportar los resultados de la consulta como XML
    17. 13.16. Importar XML en MySQL
    18. 13.17. Importar datos en formato JSON
    19. 13.18. Importar datos de MongoDB
    20. 13.19. Exportar datos en formato JSON
    21. 13.20. Adivinar la estructura de una tabla a partir de un fichero de datos
  16. 14. Validar y reformatear datos
    1. 14.0. Introducción
    2. 14.1. Utilizar el modo SQL para rechazar valores de entrada erróneos
    3. 14.2. Utilizar restricciones CHECK para rechazar valores no válidos
    4. 14.3. Utilizar disparadores para rechazar valores de entrada
    5. 14.4. Escribir un bucle de procesamiento de entradas
    6. 14.5. Poner pruebas comunes en bibliotecas
    7. 14.6. Utilizar la concordancia de patrones para validar datos
    8. 14.7. Usar patrones para emparejar tipos de contenido amplios
    9. 14.8. Usar patrones para emparejar valores numéricos
    10. 14.9. Usar patrones para hacer coincidir fechas u horas
    11. 14.10. Usar patrones para hacer coincidir direcciones de correo electrónico o URLs
    12. 14.11. Utilizar los metadatos de la tabla para validar los datos
    13. 14.12. Utilizar una tabla de consulta para validar datos
    14. 14.13. Conversión de valores anuales de dos dígitos a la forma de cuatro dígitos
    15. 14.14. Realizar la comprobación de validez de las subpartidas de fecha u hora
    16. 14.15. Escribir utilidades de tratamiento de fechas
    17. 14.16. Importar valores de fecha no ISO
    18. 14.17. Exportar fechas utilizando formatos no ISO
    19. 14.18. Preprocesar e importar un archivo
  17. 15. Generar y utilizar secuencias
    1. 15.0. Introducción
    2. 15.1. Generar una secuencia con columnas AUTO_INCREMENTO
    3. 15.2. Elegir el tipo de datos de una columna de secuencia
    4. 15.3. Borrar filas sin modificar una secuencia
    5. 15.4. Recuperar valores de secuencia
    6. 15.5. Renumerar una secuencia existente
    7. 15.6. Ampliar el rango de una columna de secuencia
    8. 15.7. Reutilizar valores al principio de una secuencia
    9. 15.8. Asegurarse de que las filas se renumeran en un orden determinado
    10. 15.9. Secuenciar una tabla sin secuenciar
    11. 15.10. Gestionar Múltiples Valores de Autoincremento Simultáneamente
    12. 15.11. Utilizar valores de autoincremento para asociar tablas
    13. 15.12. Utilizar generadores de secuencias como contadores
    14. 15.13. Generar secuencias repetitivas
    15. 15.14. Utilizar valores de incremento personalizados
    16. 15.15. Utilizar funciones de ventana para numerar las filas del conjunto de resultados
    17. 15.16. Generar series con CTE recursivas
    18. 15.17. Crear y almacenar secuencias personalizadas
  18. 16. Uso de uniones y subconsultas
    1. 16.0. Introducción
    2. 16.1. Encontrar coincidencias entre tablas
    3. 16.2. Encontrar desajustes entre tablas
    4. 16.3. Identificar y eliminar filas no coincidentes o no unidas
    5. 16.4. Comparar una tabla consigo misma
    6. 16.5. Elaborar listas y resúmenes de detalles de los candidatos
    7. 16.6. Enumerar una relación muchos-muchos
    8. 16.7. Encontrar valores mínimos o máximos por grupo
    9. 16.8. Utilizar una unión para rellenar o identificar huecos en una lista
    10. 16.9. Utilizar una unión para controlar el orden de las consultas
    11. 16.10. Unir resultados de varias consultas
    12. 16.11. Hacer referencia a los nombres de las columnas de salida de las uniones en los programas
  19. 17. Técnicas estadísticas
    1. 17.0. Introducción
    2. 17.1. Cálculo de estadísticas descriptivas
    3. 17.2. Cálculo de estadísticas descriptivas de grupos
    4. 17.3. Generar distribuciones de frecuencias
    5. 17.4. Contar valores perdidos
    6. 17.5. Cálculo de regresiones lineales o coeficientes de correlación
    7. 17.6. Generar números aleatorios
    8. 17.7. Aleatorizar un conjunto de filas
    9. 17.8. Seleccionar elementos aleatorios de un conjunto de filas
    10. 17.9. Calcular diferencias de filas sucesivas
    11. 17.10. Hallar Sumas Acumulativas y Promedios Corridos
    12. 17.11. Asignación de rangos
    13. 17.12. Clasificación por equipos
  20. 18. Gestión de duplicados
    1. 18.0. Introducción
    2. 18.1. Evitar que se produzcan duplicados en una tabla
    3. 18.2. Tener más de una clave única en la tabla
    4. 18.3. Cómo tratar los duplicados al cargar filas en una tabla
    5. 18.4. Contar e identificar duplicados
    6. 18.5. Eliminar duplicados de una tabla
  21. 19. Trabajar con JSON
    1. 19.0. Introducción
    2. 19.1. Elegir el tipo de datos adecuado
    3. 19.2. Insertar valores JSON
    4. 19.3. Validar JSON
    5. 19.4. Formatear valores JSON
    6. 19.5. Extraer valores de JSON
    7. 19.6. Buscar dentro de JSON
    8. 19.7. Insertar nuevos elementos en un documento JSON
    9. 19.8. Actualizar JSON
    10. 19.9. Eliminar elementos de JSON
    11. 19.10. Fusionar dos o más documentos JSON en uno solo
    12. 19.11. Crear JSON a partir de datos relacionales
    13. 19.12. Convertir JSON en formato relacional
    14. 19.13. Investigar JSON
    15. 19.14. Trabajar con JSON en MySQL como almacén de documentos
  22. 20. Realización de transacciones
    1. 20.0. Introducción
    2. 20.1. Elegir un motor de almacenamiento transaccional
    3. 20.2. Realizar transacciones con SQL
    4. 20.3. Realizar transacciones desde dentro de los programas
    5. 20.4. Realizar transacciones en programas Perl
    6. 20.5. Realizar transacciones en programas Ruby
    7. 20.6. Realizar transacciones en programas PHP
    8. 20.7. Realizar transacciones en programas Python
    9. 20.8. Realizar transacciones en programas Go
    10. 20.9. Utilizar funciones contextuales para gestionar transacciones en Go
    11. 20.10. Realizar transacciones en programas Java
  23. 21. Rendimiento de la consulta
    1. 21.0. Introducción
    2. 21.1. Crear índices
    3. 21.2. Crear una clave primaria sustituta
    4. 21.3. Mantener índices
    5. 21.4. Decidir cuándo una consulta puede utilizar un índice
    6. 21.5. Decidir el orden de los índices de varias columnas
    7. 21.6. Utilizar índices ascendentes y descendentes
    8. 21.7. Utilizar índices basados en funciones
    9. 21.8. Utilizar índices en columnas generadas con datos JSON
    10. 21.9. Utilizar índices de texto completo
    11. 21.10. Utilización de índices espaciales y datos geográficos
    12. 21.11. Crear y utilizar histogramas
    13. 21.12. Escribir consultas eficaces
  24. 22. Administración de servidores
    1. 22.0. Introducción
    2. 22.1. Configurar el servidor
    3. 22.2. Gestión de la Interfaz del Plug-In
    4. 22.3. Controlar el registro del servidor
    5. 22.4. Rotar o caducar archivos de registro
    6. 22.5. Rotar tablas de registro o caducar filas de tablas de registro
    7. 22.6. Configurar motores de almacenamiento
  25. 23. Monitorización del servidor MySQL
    1. 23.0. Introducción
    2. 23.1. ¿Por qué monitorizar el servidor MySQL?
    3. 23.2. Descubrir las fuentes de información de monitoreo de MySQL
    4. 23.3. Comprobar el Tiempo de Actividad y el Progreso del Servidor
    5. 23.4. Resolución de problemas de arranque del servidor
    6. 23.5. Determinar la Utilización de E/S del Servidor MySQL
    7. 23.6. Determinar la utilización de la CPU del hilo MySQL
    8. 23.7. Determinar si MySQL ha alcanzado sus límites de conexión
    9. 23.8. Verificar que el Buffer Pool tiene el tamaño adecuado
    10. 23.9. Encontrar información sobre el motor de almacenamiento
    11. 23.10. Utilizar el Archivo de Registro de Errores para Solucionar los Fallos del Servidor MySQL
    12. 23.11. Archivo de registro de consultas lentas
    13. 23.12. Monitoreo con el Registro General de Consultas
    14. 23.13. Utilizar el registro binario para identificar cambios
  26. 24. Seguridad
    1. 24.0. Introducción
    2. 24.1. Entender la Tabla mysql.user
    3. 24.2. Gestión de cuentas de usuario
    4. 24.3. Implantar una política de contraseñas
    5. 24.4. Comprobar la seguridad de la contraseña
    6. 24.5. Contraseñas caducadas
    7. 24.6. Asignarte una nueva contraseña
    8. 24.7. Restablecer una contraseña caducada
    9. 24.8. Encontrar y eliminar cuentas anónimas
    10. 24.9. Modificar las cuentas "Cualquier anfitrión" y "Muchos anfitriones
    11. 24.10. Utilizar TLS (SSL)
    12. 24.11. Uso de roles
    13. 24.12. Utilizar Vistas para Asegurar el Acceso a los Datos
    14. 24.13. Utilizar Rutinas Almacenadas para Asegurar las Modificaciones de Datos
  27. Índice
  28. Sobre los autores

Product information

  • Title: Libro de cocina de MySQL, 4ª edición
  • Author(s): Sveta Smirnova, Alkin Tezuysal
  • Release date: October 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9798341601246