Prefacio

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

Los lenguajes de programación van y vienen constantemente, y muy pocos de los que se utilizan hoy en día tienen raíces que se remonten a más de una década o así. Algunos ejemplos son COBOL, que todavía se utiliza bastante en entornos mainframe; Java, que nació a mediados de los 90 y se ha convertido en uno de los lenguajes de programación más populares; y C, que sigue siendo bastante popular para el desarrollo de sistemas operativos y servidores y para sistemas embebidos. En el ámbito de las bases de datos, tenemos SQL, cuyas raíces se remontan a los años 70.

SQL se creó inicialmente como lenguaje para generar, manipular y recuperar datos de bases de datos relacionales, que existen desde hace más de 40 años. Sin embargo, durante la última década aproximadamente, otras plataformas de datos como Hadoop, Spark y NoSQL han ganado mucha tracción, comiéndose el mercado de las bases de datos relacionales. Sin embargo, como se verá en los últimos capítulos de este libro, el lenguaje SQL ha ido evolucionando para facilitar la recuperación de datos de diversas plataformas, independientemente de si los datos están almacenados en tablas, documentos o archivos planos.

¿Por qué aprender SQL?

Utilices o no una base de datos relacional, si trabajas en ciencia de datos, inteligencia empresarial o alguna otra faceta del análisis de datos, es probable que necesites conocer SQL, junto con otros lenguajes/plataformas como Python y R. Los datos están en todas partes, en enormes cantidades, y llegan a un ritmo rápido, y las personas que pueden extraer información significativa de todos estos datos están muy solicitadas.

¿Por qué utilizar este libro para hacerlo?

Hay muchos libros que te tratan como a un tonto, un idiota o cualquier otro tipo de simplón, pero estos libros tienden a limitarse a rozar la superficie. En el otro extremo del espectro están las guías de referencia que detallan cada permutación de cada declaración de un lenguaje, lo que puede ser útil si ya tienes una buena idea de lo que quieres hacer pero sólo necesitas la sintaxis. Este libro se esfuerza por encontrar el término medio, comenzando con algunos antecedentes del lenguaje SQL, pasando por los conceptos básicos, y luego progresando hacia algunas de las características más avanzadas que te permitirán brillar de verdad. Además, este libro termina con un capítulo que muestra cómo consultar datos en bases de datos no relacionales, que es un tema que rara vez se trata en los libros de introducción.

Estructura de este libro

Este libro está dividido en 18 capítulos y 2 apéndices:

Capítulo 1, "Un poco de historia"
Explora la historia de las bases de datos informatizadas, incluido el surgimiento del modelo relacional y el lenguaje SQL.
Capítulo 2, "Crear y rellenar una base de datos"
Demuestra cómo crear una base de datos MySQL, crear las tablas utilizadas para los ejemplos de este libro y rellenar las tablas con datos.
Capítulo 3, "Manual de consulta"
Introduce la declaración select y demuestra las cláusulas más comunes (select, from, where).
Capítulo 4, "Filtrado"
Demuestra los distintos tipos de condiciones que pueden utilizarse en la cláusula where de una sentencia select, update o delete.
Capítulo 5, "Consulta de varias tablas"
Muestra cómo las consultas pueden utilizar varias tablas mediante uniones de tablas.
Capítulo 6, "Trabajar con conjuntos"
Este capítulo trata de los conjuntos de datos y de cómo pueden interactuar en las consultas.
Capítulo 7, "Generación, manipulación y conversión dedatos"
Demuestra varias funciones incorporadas que se utilizan para manipular o convertir datos.
Capítulo 8, "Agrupación y agregados"
Muestra cómo se pueden agregar los datos.
Capítulo 9, "Subconsultas"
Introduce las subconsultas (un favorito personal) y muestra cómo y dónde pueden utilizarse.
Capítulo 10, "Uniones revisitadas"
Profundiza en los distintos tipos de uniones de tablas.
Capítulo 11, "Lógica condicional"
Explora cómo se puede utilizar la lógica condicional (es decir, si-entonces-si) en las declaraciones select, insert, update, y delete.
Capítulo 12, "Transacciones"
Introduce las transacciones y muestra cómo utilizarlas.
Capítulo 13, "Índices y restricciones"
Explora los índices y las restricciones.
Capítulo 14, "Vistas"
Muestra cómo construir una interfaz que proteja a los usuarios de la complejidad de los datos.
Capítulo 15, "Metadatos"
Demuestra la utilidad del diccionario de datos.
Capítulo 16, "Funciones analíticas"
Cubre la funcionalidad utilizada para generar clasificaciones, subtotales y otros valores muy utilizados en informes y análisis.
Capítulo 17, "Trabajar con grandes bases de datos"
Demuestra técnicas para hacer que las bases de datos muy grandes sean más fáciles de gestionar y recorrer.
Capítulo 18, "SQL y Big Data"
Explora la transformación del lenguaje SQL para permitir la recuperación de datos de plataformas de datos no relacionales.
Apéndice A, "Diagrama ER para la base de datos de ejemplo"
Muestra el esquema de base de datos utilizado para todos los ejemplos del libro.
Apéndice B, "Soluciones a los ejercicios"
Muestra las soluciones a los ejercicios del capítulo.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

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 italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Nota

Indica un consejo, sugerencia o nota general. Por ejemplo, utilizo notas para indicarte nuevas funciones útiles de Oracle9i.

Advertencia

Indica una advertencia o precaución. Por ejemplo, te indicaré si una determinada cláusula SQL puede tener consecuencias no deseadas si no se utiliza con cuidado.

Cómo utilizar los ejemplos de este libro

Para experimentar con los datos utilizados en los ejemplos de este libro, tienes dos opciones:

Si eliges la segunda opción, una vez que inicies el escenario, se instalará e iniciará un servidor MySQL y, a continuación, se cargarán el esquema y los datos de Sakila. Cuando esté listo, aparecerá un indicador estándar de mysql>, y podrás empezar a consultar la base de datos de ejemplo. Ésta es sin duda la opción más sencilla, y preveo que la mayoría de los lectores elegirán esta opción; si te parece bien, no dudes en pasar a la siguiente sección.

Si prefieres tener tu propia copia de los datos y quieres que los cambios que hayas hecho sean permanentes, o si sólo te interesa instalar el servidor MySQL en tu propia máquina, puede que prefieras la primera opción. También puedes optar por utilizar un servidor MySQL alojado en un entorno como Amazon Web Services o Google Cloud. En cualquiera de los dos casos, tendrás que realizar tú mismo la instalación/configuración, ya que está fuera del alcance de este libro. Una vez que tu base de datos esté disponible, tendrás que seguir unos pasos para cargar la base de datos de ejemplo Sakila.

En primer lugar, tendrás que iniciar el cliente de línea de comandos mysql y proporcionar una contraseña, y luego realizar los siguientes pasos:

  1. Entra en https://dev.mysql.com/doc/index-other.html y descarga los archivos de la "base de datos sakila" en la sección Bases de datos de ejemplo.

  2. Coloca los archivos en un directorio local como C:\temp\sakila-db (utilizado para los dos pasos siguientes, pero sobrescríbelo con la ruta de tu directorio).

  3. Escribe source c:\temp\sakila-db\sakila-schema.sql; y pulsa Intro.

  4. Escribe source c:\temp\sakila-db\sakila-data.sql; y pulsa Intro.

Ahora deberías tener una base de datos operativa con todos los datos necesarios para los ejemplos de este libro.

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas 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 se enumeran las erratas y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/Learning_SQL3.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

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

Encuéntranos en Facebook: http://facebook.com/oreilly

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

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

Agradecimientos

Me gustaría dar las gracias a mi editor, Jeff Bleiel, por ayudarme a hacer realidad esta tercera edición, junto con Thomas Nield, Ann White-Watkins y Charles Givre, que tuvieron la amabilidad de revisar el libro para mí. También quiero dar las gracias a Deb Baker, Jess Haberman y a todas las demás personas de O'Reilly Media que han participado. Por último, doy las gracias a mi mujer, Nancy, y a mis hijas, Michelle y Nicole, por su ánimo e inspiración.

Get Aprender SQL, 3ª 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.