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