Prefacio

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

El sistema de gestión de bases de datos MySQL es popular por muchas razones. Es rápido y fácil de configurar, utilizar y administrar. Funciona bajo muchas variedades de Unix y Windows, y los programas basados en MySQL pueden escribirse en muchos idiomas.

La popularidad de MySQL plantea la necesidad de abordar las preguntas que tienen sus usuarios sobre cómo resolver problemas concretos. Ése es el propósito del Libro de cocina de MySQL: servir como un recurso práctico al que puedas acudir en busca de soluciones rápidas o técnicas para atacar determinados tipos de cuestiones que surgen cuando utilizas MySQL. Naturalmente, al tratarse de un libro de cocina, contiene recetas: instrucciones directas que puedes seguir, en lugar de cómo desarrollar tu propio código desde cero. Está escrito utilizando un formato de problema y solución diseñado para ser extremadamente práctico y para que el contenido sea fácil de leer y asimilar. Contiene muchas secciones breves, cada una de las cuales describe cómo escribir una consulta, aplicar una técnica o desarrollar un script para resolver un problema de alcance limitado y específico. Este libro no desarrolla aplicaciones completas y complejas. En su lugar, te ayuda a desarrollar tú mismo dichas aplicaciones, ayudándote a superar los problemas que te tienen perplejo.

Por ejemplo, una pregunta habitual es ¿Cómo puedo tratar las comillas y los caracteres especiales en los valores de datos cuando escribo consultas?No es difícil, pero averiguar cómo hacerlo es frustrante cuando no estás seguro de por dónde empezar. Este libro te muestra qué hacer; te enseña por dónde empezar y cómo proceder a partir de ahí. Este conocimiento te servirá repetidamente, porque después de ver lo que hay que hacer, podrás aplicar la técnica a cualquier tipo de datos, como texto, imágenes, clips de sonido o vídeo, artículos de noticias, archivos comprimidos o documentos PDF. Otra pregunta habitual es ¿Puedo acceder a los datos de varias tablas al mismo tiempo? La respuesta es Sí, y es fácil hacerlo porque sólo es cuestión de conocer la sintaxis SQL adecuada. Pero no siempre está claro cómo hasta que no ves ejemplos, que es lo que te ofrece este libro. Otras técnicas que aprenderás en este libro incluyen cómo hacer lo siguiente:

  • Utiliza SQL para seleccionar, ordenar y resumir filas

  • Buscar coincidencias o discordancias entre tablas

  • Realizar transacciones

  • Determina intervalos entre fechas u horas, incluyendo cálculos de edad

  • Identificar o eliminar filas duplicadas

  • Utiliza LOAD DATA para leer correctamente tus archivos de datos o encontrar qué valores del archivo no son válidos

  • Utiliza las restricciones de CHECK para evitar la entrada de datos erróneos en tu base de datos

  • Generar números de secuencia para utilizarlos como identificadores únicos de fila

  • Utilizar una vista como tabla virtual

  • Escribe procedimientos almacenados y funciones, configura disparadores que se activen para realizar operaciones específicas de tratamiento de datos cuando insertes o actualices filas de una tabla, y utiliza el Programador de Eventos para ejecutar consultas de forma programada

  • Configurar la replicación

  • Gestionar cuentas de usuario

  • Controlar el registro del servidor

Una parte del uso de MySQL consiste en comprender cómo comunicarse con el servidor, es decir, cómo utilizar el Lenguaje de Consulta Estructurado (SQL; se pronuncia "sequel"), el lenguaje en el que se formulan las consultas. Por tanto, uno de los puntos principales de este libro es el uso de SQL para formular consultas que respondan a determinados tipos de preguntas. Una herramienta útil para aprender y utilizar SQL es el programa cliente mysql que se incluye en las distribuciones de MySQL. Puedes utilizar el cliente de forma interactiva para enviar sentencias SQL al servidor y ver los resultados. Esto es extremadamente útil porque proporciona una interfaz directa con SQL -tan útil, de hecho, que el primer capítulo está dedicado a mysql.

Pero la capacidad de emitir consultas SQL por sí sola no basta. La información extraída de una base de datos a menudo requiere un procesamiento posterior o una presentación de una forma determinada. ¿Y si tienes consultas con interrelaciones complejas, como cuando necesitas utilizar los resultados de una consulta como base para otras? ¿Y si necesitas generar un informe especializado con requisitos de formato muy específicos? Estos problemas nos llevan al otro gran énfasis del libro: cómo escribir programas que interactúen con el servidor MySQL a través de una interfaz de programación de aplicaciones (API). Cuando sabes cómo utilizar MySQL en el contexto de un lenguaje de programación, obtienes otras formas de explotar las capacidades de MySQL:

  • Puedes guardar los resultados de la consulta y reutilizarlos más tarde.

  • Tienes pleno acceso a la potencia expresiva de un lenguaje de programación de propósito general. Esto te permite tomar decisiones basadas en el éxito o el fracaso de una consulta, o en el contenido de las filas que se devuelven, y luego adaptar las acciones tomadas en consecuencia.

  • Puedes formatear y mostrar los resultados de la consulta como quieras. Si estás escribiendo un script de línea de comandos, puedes generar texto sin formato. Si es un script basado en web, puedes generar una tabla HTML. Si se trata de una aplicación que extrae información para transferirla a algún otro sistema, puedes generar un archivo de datos expresado en XML o JSON.

Combinar SQL con un lenguaje de programación de propósito general te proporciona un marco extremadamente flexible para emitir consultas y procesar sus resultados. Los lenguajes de programación aumentan tu capacidad para realizar operaciones complejas con bases de datos. Pero eso no significa que este libro sea complejo. Mantiene las cosas sencillas, mostrando cómo construir pequeños bloques de construcción utilizando técnicas fáciles de entender y de dominar.

Te dejaremos que combines estas técnicas en tus propios programas, lo que puedes hacer para producir aplicaciones arbitrariamente complejas. Al fin y al cabo, el código genético se basa en sólo cuatro ácidos nucleicos, pero estos elementos básicos se han combinado para producir la asombrosa variedad de vida biológica que vemos a nuestro alrededor. Del mismo modo, sólo hay 12 notas en la escala, pero en manos de compositores hábiles, se entrelazan para producir una rica e interminable variedad de música. Del mismo modo, cuando tomas un conjunto de recetas sencillas, añades tu imaginación y las aplicas a los problemas de programación de bases de datos que quieres resolver, puedes producir aplicaciones que quizá no sean obras de arte, pero que sin duda son útiles y te ayudarán a ti y a los demás a ser más productivos.

A quién va dirigido este libro

Este libro será útil para cualquier persona que utilice MySQL, desde particulares que quieran utilizar una base de datos para proyectos personales como un blog o una wiki, hasta desarrolladores profesionales de bases de datos y páginas web. El libro también está pensado para personas que no saben utilizar MySQL pero les gustaría hacerlo.

Si eres nuevo en MySQL, aquí encontrarás muchas formas de utilizarlo. Si tienes más experiencia, probablemente ya estés familiarizado con muchos de los problemas que aquí se abordan, pero puede que no hayas tenido que resolverlos antes, por lo que el libro te ahorrará mucho tiempo. Aprovecha las recetas que se dan en el libro y utilízalas en tus propios programas en lugar de escribir el código desde cero.

El material va de lo introductorio a lo avanzado, así que si una receta describe técnicas que te parecen obvias, sáltatela. Por el contrario, si no entiendes una receta, déjala a un lado y vuelve a ella más tarde, quizás después de leer algunas de las otras recetas.

Qué contiene este libro

Es muy probable que cuando utilices este libro estés intentando desarrollar una aplicación, pero no estés seguro de cómo implementar ciertas partes de ella. En este caso, ya sabes qué tipo de problema quieres resolver; busca en el índice o en el índice una receta que muestre cómo hacer lo que quieres. En el mejor de los casos, la receta será justo lo que tenías en mente. Otra posibilidad es que puedas adaptar una receta de un problema similar para que se adapte a la cuestión que tienes entre manos. Explicamos los principios que intervienen en el desarrollo de cada técnica para que puedas modificarla y adaptarla a los requisitos particulares de tus propias aplicaciones.

Otra forma de abordar este libro es simplemente leerlo sin ningún problema específico en mente. Esto puede darte una comprensión más amplia de las cosas que MySQL puede hacer, por lo que te recomendamos que hojees el libro de vez en cuando. Es una herramienta más eficaz si conoces los tipos de problemas que aborda.

A medida que te adentres en capítulos posteriores, encontrarás recetas que presuponen un conocimiento de los temas tratados en capítulos anteriores. Esto también se aplica dentro de un mismo capítulo, ya que las secciones posteriores suelen utilizar técnicas tratadas anteriormente en el capítulo. Si entras en un capítulo y encuentras una receta que utiliza una técnica con la que no estás familiarizado, consulta el índice para encontrar dónde se explica la técnica anteriormente. Por ejemplo, si una receta ordena el resultado de una consulta utilizando una cláusula ORDER BY que no entiendes, dirígete al Capítulo 9, en el que se tratan varios métodos de ordenación y se explica cómo funcionan.

Aquí tienes un resumen de cada capítulo para que tengas una visión general del contenido del libro.

El Capítulo 1, "Uso del programa cliente de mysql", describe cómo utilizar el cliente estándar de línea de comandos de MySQL. mysql suele ser la primera o principal interfaz con MySQL que utiliza la gente, y es importante saber cómo explotar sus capacidades. Este programa te permite realizar consultas y ver sus resultados de forma interactiva, por lo que es bueno para experimentar rápidamente. También puedes utilizarlo en modo batch para ejecutar scripts SQL enlatados o enviar su salida a otros programas. Además, en este capítulo se analizan otras formas de utilizar mysql, por ejemplo, cómo hacer más legibles las líneas largas o generar la salida en varios formatos.

El Capítulo 2, "Uso de MySQL Shell", presenta el nuevo cliente de línea de comandos MySQL, desarrollado por el Equipo MySQL para las versiones 5.7 y posteriores. mysqlsh es compatible con mysql cuando se ejecuta en modo SQL, pero también admite NoSQL en las interfaces de programación JavaScript y Python. Con MySQL Shell, puedes ejecutar consultas SQL y NoSQL y automatizar muchas tareas administrativas fácilmente.

El Capítulo 3, "Replicación MySQL", describe cómo configurar y utilizar la replicación. Parte del contenido de este capítulo es avanzado. Sin embargo, decidimos colocarlo al principio del libro, porque la replicación es necesaria para instalaciones MySQL estables que puedan sobrevivir a desastres como corrupciones o fallos de hardware. Prácticamente, cualquier instalación MySQL de producción debe utilizar una de las configuraciones de replicación. Aunque configurar una replicación es una tarea administrativa, creemos que todos los usuarios de MySQL deben conocer cómo funciona la replicación y, en consecuencia, escribir consultas eficaces que rindan tanto en el servidor fuente como en el servidor réplica.

El Capítulo 4, "Escribir programas basados en MySQL", muestra los elementos esenciales de la programación MySQL: cómo conectarse al servidor, realizar consultas, recuperar los resultados y gestionar los errores. También se explica cómo manejar caracteres especiales y valores NULL en las consultas, cómo escribir archivos de biblioteca para encapsular el código de las operaciones más utilizadas, y varias formas de reunir los parámetros necesarios para establecer conexiones con el servidor.

El Capítulo 5, "Seleccionar datos de tablas", cubre varios aspectos de la sentencia SELECT, que es el vehículo principal para recuperar datos del servidor MySQL: especificar qué columnas y filas quieres recuperar, tratar con valores de NULL y seleccionar una sección del resultado de una consulta. En capítulos posteriores se tratan algunos de estos temas con más detalle, pero este capítulo proporciona una visión general de los conceptos de los que dependen si necesitas una introducción a la selección de filas o aún no sabes mucho sobre SQL.

El Capítulo 6, "Gestión de tablas", trata de la clonación de tablas, la copia de resultados en otras tablas, el uso de tablas temporales y la comprobación o modificación del motor de almacenamiento de una tabla.

El Capítulo 7, "Trabajar con cadenas", describe cómo trabajar con datos de cadenas. Abarca los conjuntos de caracteres y las colaciones, las comparaciones de cadenas, el tratamiento de los problemas de distinción entre mayúsculas y minúsculas, la concordancia de patrones, la separación y combinación de cadenas y la realización de búsquedas en FULLTEXT.

El Capítulo 8, "Trabajar con fechas y horas", muestra cómo trabajar con datos temporales. Describe el formato de fecha de MySQL y cómo mostrar valores de fecha en otros formatos. También cubre cómo utilizar el tipo de datos especial TIMESTAMP de MySQL, cómo establecer la zona horaria, cómo convertir entre diferentes unidades temporales, cómo realizar aritmética de fechas para calcular intervalos o generar una fecha a partir de otra, y cómo realizar cálculos de años bisiestos.

El Capítulo 9, "Ordenar los resultados de una consulta", describe cómo poner las filas del resultado de una consulta en el orden que desees. Esto incluye especificar la dirección de ordenación, tratar con valores de NULL, tener en cuenta la sensibilidad a mayúsculas y minúsculas de las cadenas, y ordenar por fechas o valores parciales de columna. También proporciona ejemplos que muestran cómo ordenar tipos especiales de valores, como nombres de dominio, números IP y valores ENUM.

El Capítulo 10, "Generar resúmenes", muestra técnicas para evaluar las características generales de un conjunto de datos, como cuántos valores contiene o sus valores mínimo, máximo y medio.

El Capítulo 11, "Uso de rutinas almacenadas, desencadenadores y eventosprogramados", describe cómo escribir funciones y procedimientos que se almacenan en el lado del servidor, desencadenadores que se activan cuando se modifican las tablas y eventos que se ejecutan de forma programada.

Enel Capítulo 12, "Trabajar con metadatos", se explica cómo obtener información sobre los datos que devuelve una consulta, como el número de filas o columnas del resultado, o el nombre y tipo de datos de cada columna. También muestra cómo preguntar a MySQL qué bases de datos y tablas están disponibles o cómo determinar la estructura de una tabla.

El Capítulo 13, "Importar y exportar datos", describe cómo transferir información entre MySQL y otros programas. Esto incluye cómo utilizar LOAD DATA , convertir archivos de un formato a otro y determinar la estructura de tablas adecuada para un conjunto de datos.

El Capítulo 14, "Validar y reformatear datos", describe cómo extraer o reordenar columnas en archivos de datos, comprobar y validar datos, y reescribir valores como fechas que a menudo vienen en diversos formatos.

El capítulo 15, "Generar y utilizar secuencias", trata de las columnas AUTO_INCREMENT, el mecanismo de MySQL para producir números de secuencia. Muestra cómo generar nuevos valores de secuencia o determinar el valor más reciente, cómo resecuenciar una columna y cómo utilizar secuencias para generar contadores. También muestra cómo utilizar los valores de AUTO_INCREMENT para mantener una relación maestro-detalle entre tablas, incluyendo los escollos que hay que evitar.

El Capítulo 16, "Uso de uniones y subconsultas", muestra cómo realizar operaciones que seleccionan filas de varias tablas. Demuestra cómo comparar tablas para encontrar coincidencias o no coincidencias, producir listas maestro-detalle y resúmenes, y enumerar relaciones de muchos a muchos.

El Capítulo 17, "Técnicas estadísticas", ilustra cómo elaborar estadísticas descriptivas, distribuciones de frecuencias, regresiones y correlaciones. También explica cómo aleatorizar un conjunto de filas o elegir filas al azar del conjunto.

Enel Capítulo 18, "Gestión de duplicados", se explica cómo identificar, contar y eliminar filas duplicadas, y cómo evitar que se produzcan.

El capítulo 19, "Trabajar con JSON", ilustra cómo utilizar JSON en MySQL. Cubre temas como la validación, la búsqueda y la manipulación de datos JSON. El capítulo también trata sobre cómo utilizar MySQL como Almacén de Documentos.

El Capítulo 20, "Realizar Transacciones", muestra cómo manejar múltiples sentencias SQL que deben ejecutarse juntas como una unidad. Explica cómo controlar el modo de autocompromiso de MySQL y cómo confirmar o revertir transacciones.

El Capítulo 22, "Administración del servidor", está escrito para administradores de bases de datos. Abarca la configuración del servidor, la interfaz de los complementos y la gestión de los registros.

El Capítulo 23, "Monitorización del Servidor MySQL", ilustra cómo monitorizar y solucionar problemas de MySQL, como fallos de arranque o de conexión. Muestra cómo utilizar los archivos de registro de MySQL, los instrumentos incorporados y las utilidades estándar del sistema operativo para obtener información sobre el rendimiento de las consultas y las estructuras internas de MySQL.

El capítulo 24, "Seguridad", es otro capítulo administrativo. Trata de la gestión de cuentas de usuario, incluyendo la creación de cuentas, la configuración de contraseñas y la asignación de privilegios. También describe cómo aplicar la política de contraseñas, encontrar y corregir cuentas inseguras y caducar o anular contraseñas.

API MySQL utilizadas en este libro

Existen interfaces de programación MySQL para muchos lenguajes, como C, C++, Eiffel, Go, Java, Perl, PHP, Python, Ruby y Tcl. Dado este hecho, escribir un libro de cocina de MySQL supone un reto para los autores. El libro debe proporcionar recetas para hacer muchas cosas interesantes y útiles con MySQL, pero ¿qué API o API debe utilizar el libro? Mostrar una implementación de cada receta en cada lenguaje da como resultado que se cubran muy pocas recetas o que el libro sea muy, muy grande. También da lugar a redundancias cuando las implementaciones en distintos idiomas se parecen mucho entre sí. Por otro lado, merece la pena aprovechar las ventajas de varios idiomas, porque a menudo uno es más adecuado que otro para resolver un problema concreto.

Para resolver este dilema, hemos elegido un número reducido de API para escribir las recetas de este libro. Esto hace que su alcance sea manejable, al tiempo que permite la libertad de elegir entre múltiples API:

  • El módulo Perl DBI

  • Ruby, utilizando la gema Mysql2

  • PHP, utilizando la extensión PDO

  • Python, utilizando el Conector MySQL/Controlador Python para la API de la BD

  • Go, utilizando el Go-MySQL-Driver para la interfaz sql

  • Java, utilizando el controlador MySQL Connector/J para la interfaz JDBC

¿Por qué estos lenguajes? Perl es un lenguaje ampliamente utilizado que era muy popular para escribir programas MySQL cuando se publicó la primera edición de este libro y que aún se utiliza en muchas aplicaciones hoy en día. Ruby tiene un módulo de acceso a bases de datos fácil de usar. PHP está ampliamente implementado, especialmente en la web. Go se está haciendo muy popular últimamente y sustituye a otros lenguajes, especialmente a Perl, en muchas aplicaciones MySQL. Python y Java tienen cada uno un número significativo de seguidores.

Creemos que estos lenguajes en conjunto reflejan bastante bien la mayoría de la base de usuarios existente de programadores MySQL. Si prefieres algún lenguaje que no aparezca aquí, asegúrate de prestar mucha atención al Capítulo 4, para familiarizarte con las principales API del libro. Saber cómo realizar operaciones de base de datos con las interfaces de programación utilizadas aquí te ayudará a traducir las recetas para otros lenguajes.

Notas sobre la versión y la plataforma

El desarrollo del código de este libro tuvo lugar bajo MySQL 5.7 y 8.0. Dado que periódicamente se añaden nuevas funciones a MySQL, algunos ejemplos no funcionarán con versiones anteriores. Por ejemplo, MySQL 5.7 introduce la replicación de grupos, y MySQL 8.0 introduce las restricciones CHECK y las expresiones comunes de tabla.

No asumimos que estés utilizando Unix, aunque sea nuestra plataforma de desarrollo preferida. (En este libro, Unix también se refiere a sistemas similares a Unix, como Linux y macOS X). La mayor parte del material aquí expuesto es aplicable tanto a Unix como a Windows.

Convenciones utilizadas en este libro

Este libro utiliza las siguientes convenciones tipográficas:

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Se utiliza para indicar el texto que escribes al ejecutar comandos.

Constant width italic

Se utiliza para indicar la entrada de una variable; debes sustituirla por un valor de tu elección.

Cursiva

Se utiliza para URL, nombres de host, nombres de directorios y archivos, comandos y opciones de Unix, programas y, ocasionalmente, para dar énfasis.

Consejo

Este elemento significa un consejo o sugerencia.

Precaución

Este elemento indica una advertencia o precaución.

Nota

Este elemento significa una nota general.

A menudo, los comandos se muestran con un indicador para ilustrar el contexto en el que se utilizan. Los comandos emitidos desde la línea de comandos se muestran con un indicador $:

$ chmod 600 my.cnf

Es un indicador que los usuarios de Unix están acostumbrados a ver, pero no significa necesariamente que un comando sólo funcione en Unix. A menos que se indique lo contrario, los comandos que aparecen en $ también suelen funcionar en Windows.

Si ejecutas un comando en Unix como usuario root, el indicador será #:

# perl -MCPAN -e shell

Los comandos específicos de Windows utilizan el indicador C:\>:

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql"

Las sentencias SQL que se emiten desde el programa cliente mysql se muestran con un prompt mysql> y terminan con un punto y coma:

mysql> SELECT * FROM my_table;

En los ejemplos que muestran el resultado de una consulta tal y como lo verías al utilizar mysql, a veces truncamos la salida, utilizando una elipsis (...) para indicar que el resultado consta de más filas de las que se muestran. La siguiente consulta produce muchas filas de salida, de las que se han omitido las del medio:

mysql> SELECT name, abbrev FROM states ORDER BY name;
+----------------+--------+
| name           | abbrev |
+----------------+--------+
| Alabama        | AL     |
| Alaska         | AK     |
| Arizona        | AZ     |
…
| West Virginia  | WV     |
| Wisconsin      | WI     |
| Wyoming        | WY     |
+----------------+--------+

Los ejemplos que sólo muestran la sintaxis de las sentencias SQL no incluyen la indicación mysql>, pero sí incluyen el punto y coma necesario para que quede más claro dónde terminan las sentencias. Por ejemplo, ésta es una única sentencia:

CREATE TABLE t1 (i INT)
SELECT * FROM t2;

Pero este ejemplo representa dos afirmaciones:

CREATE TABLE t1 (i INT);
SELECT * FROM t2;

El punto y coma es una conveniencia notacional que se utiliza en mysql como terminador de sentencia. Pero no forma parte del propio SQL, así que cuando emitas sentencias SQL desde dentro de los programas que escribas (por ejemplo, utilizando Perl o Java), no incluyas puntos y coma de terminación.

Si una declaración o la salida de un comando es demasiado larga y no cabe en la página del libro, utilizamos el símbolo para mostrar que la línea se ha sangrado para que quepa:

mysql> SELECT 'Mysql: The Definitive Guide to Using, Programming,↩
    -> and Administering Mysql 4 (Developer\'s Library)' AS book;
+-----------------------------------------------------+
| book                                                |
+-----------------------------------------------------+
| Mysql: The Definitive Guide to Using, Programming,↩
  and Administering Mysql 4 (Developer's Library)     |
+-----------------------------------------------------+
1 row in set (0,00 sec)

Repositorio GitHub del libro de cocina complementario de MySQL

MySQL Cookbook tiene un repositorio GitHub complementario donde puedes obtener el código fuente y los datos de muestra de los ejemplos desarrollados a lo largo de este libro, así como documentación auxiliar.

Código fuente y datos de la receta

Los ejemplos de este libro se basan en el código fuente y los datos de muestra de una distribución denominada recipes disponible en el repositorio GitHub asociado.

La distribución recipes es la principal fuente de ejemplos, y se hacen referencias a ella en todo el libro. La distribución también está disponible como archivo TAR comprimido(recetas.tar.gz) o como archivo ZIP(recetas.zip). Al descomprimir cualquiera de los dos formatos de distribución, se crea un directorio llamado mysqlcookbook-VERSION/recetas.

Utiliza la distribución recipes para ahorrarte mucho tecleo. Por ejemplo, cuando veas en el libro una sentencia CREATE TABLE que describe el aspecto de una tabla de base de datos, normalmente encontrarás un archivo por lotes SQL en el directorio tablesque puedes utilizar para crear la tabla en lugar de introducir la definición manualmente. Cambia de ubicación en el directorio tablesy ejecuta el siguiente comando, donde filename es el nombre del archivo que contiene la sentencia CREATE TABLE :

$ mysql cookbook < filename

Si necesitas especificar opciones de nombre de usuario o contraseña de MySQL, añádelas a la línea de comandos.

Para importar todas las tablas de la distribución recipes, utiliza el comando

$ mysql cookbook < cookbook.sql

La distribución recipes contiene programas como los mostrados en el libro, pero en muchos casos también incluye implementaciones en lenguajes adicionales. Por ejemplo, un script mostrado en el libro utilizando Python puede estar disponible en la distribución recipes también en Perl, Ruby, PHP, Go o Java. Esto puede ahorrarte esfuerzos de traducción si deseas convertir un programa mostrado en el libro a un lenguaje diferente.

Datos de revisión de Amazon (2018)

Los datos de reseñas relacionados con Amazon utilizados en el Capítulo 7, "Trabajar con cadenas", se encuentran en http://deepyeti.ucsd.edu/jianmo/amazon/index.htmly pueden descargarse utilizando este formulario. Justificar recomendaciones utilizando reseñas etiquetadas a distancia y aspectos de grano fino Jianmo Ni, Jiacheng Li, Julian McAuley Métodos Empíricos en el Procesamiento del Lenguaje Natural (EMNLP), 2019.

Documentos complementarios del Libro de cocina de MySQL

Algunos apéndices incluidos en ediciones anteriores del Libro de cocina MySQL están ahora disponibles en de forma independiente en el repositorio GitHub asociado. Proporcionan información de fondo sobre los temas tratados en el libro.

"Ejecutar programas desde la línea de comandos" proporciona instrucciones para ejecutar comandos en la línea de comandos y establecer variables de entorno como PATH.

Utilizar ejemplos de código

El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/svetasmirnova/mysqlcookbook.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.

Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Libro de cocina de MySQL, cuarta edición, de Sveta Smirnova y Alkin Tezuysal (O'Reilly). Copyright 2022 Sveta Smirnova y Alkin Tezuysal, 978-1-492-09316-9".

Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación, conocimientos y perspectivas sobre tecnología y negocios para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde enumeramos erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/oreillymysql-ckbk4e.

Envía un correo electrónico a bookquestions@oreilly.com comentar o hacer preguntas técnicas sobre este libro.

Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en https://www.oreilly.com.

Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media

Síguenos en Twitter: https://twitter.com/oreillymedia

Míranos en YouTube: https://www.youtube.com/oreillymedia

Agradecimientos

A cada lector, gracias por leer nuestro libro. Esperamos que te sirva y te resulte útil.

De Paul DuBois, para la Tercera Edición

Gracias a mis revisores técnicos, Johannes Schlüter, Geert Vanderkelen y Ulf Wendel. Hicieron varias correcciones y sugerencias que mejoraron el texto en muchos aspectos, y agradezco su ayuda.

Andy Oram me animó a empezar la tercera edición y fue su editor, Nicole Shelby dirigió la producción del libro, y Kim Cofer y Lucie Haskins se encargaron de la corrección y el índice.

Gracias a mi mujer, Karen, cuyo aliento y apoyo a lo largo del proceso de escritura significan más de lo que puedo expresar.

De Sveta Smirnova y Alkin Tezuysal

Muchas gracias a nuestros revisores técnicos por sus inestimables aportaciones a este libro.

Gillian Gunson no sólo nos proporcionó comentarios técnicos exhaustivos, sino que también nos mostró cómo nuestro texto podía ser leído por personas de distintos orígenes. Sus sugerencias lingüísticas nos ayudaron a facilitar la lectura de las recetas. Su atención a los detalles nos ayudó a identificar imprecisiones e incluso posibles áreas de riesgo que pueden aparecer cuando crece la carga de tu base de datos. Gillian también revisó todos los ejemplos de código y sugirió cómo hacer que el código Ruby y Java se ajustara más a las normas actuales.

Ege Gunes revisó todos los ejemplos de lenguaje Go para asegurarse de que se ajustaban al estilo estándar de Go.

Karthik Appigatla, Timur Solodovnikov, Daniel Guzmán Burgos y Vladimir Fedorkov revisaron capítulos seleccionados del libro. Las correcciones que sugirieron nos ayudaron mucho a mejorar el libro.

Andy Kwan nos invitó a escribir la cuarta edición de este libro. Amelia Blevins y Jeff Bleiel fueron nuestros editores y nos ayudaron a facilitar la lectura del libro. Rita Fernando revisó algunos capítulos y aportó comentarios que nos permitieron hacer que el libro fuera más fácil de leer y estuviera más alineado con los estándares de O'Reilly.

De Sveta Smirnova

Quiero dar las gracias a mis colegas de Percona Support, que comprendieron que necesitaba trabajar un segundo turno en el libro y me permitieron tomarme tiempo libre cuando fue necesario.

Muchas gracias a mi marido, Serguei Lassounov, que siempre me apoya en todos mis esfuerzos profesionales.

De Alkin Tezuysal

Quiero dar las gracias a mi mujer, Aslihan, y a mis hijas, Ilayda y Lara, por su paciencia y apoyo cuando necesité centrarme y utilizar el tiempo familiar para escribir este libro.

Muchas gracias a mis colegas y al equipo de PlanetScale, especialmente a Deepthi Sigireddi, por su atención y apoyo extraordinarios. Un agradecimiento especial a la comunidad MySQL y a mis amigos, y también a los miembros de mi familia.

También quiero dedicar un momento a dar las gracias a Sveta Smirnova por su inagotable apoyo mientras me entrenaba a lo largo de mi viaje hacia mi primer libro.

Get Libro de cocina de MySQL, 4ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.