Volver a la lista de artículos Artículos
Lectura de 9 minutos

¿Qué es SQL?

Puede que hayas oído a tus colegas hablar de SQL, o que lo hayas visto en la descripción del trabajo de tus sueños o en una lista de los lenguajes de programación más populares. Pero, ¿qué es SQL? ¿Deberías aprenderlo? Averigüémoslo.

¿Piensas seguir una carrera relacionada con el análisis o la ciencia de datos? ¿Necesitas interactuar con bases de datos relacionales en tu trabajo? ¿Te gustaría mejorar tu rendimiento en el área comercial, de recursos humanos o investigación tomando decisiones más informadas? Si la respuesta a cualquiera de estas preguntas es afirmativa, es muy probable que conocer SQL te resulte muy beneficioso.

Comienza hoy mismo a aprender SQL con el curso SQL para principiantes. Incluye 129 ejercicios interactivos que cubren todos los aspectos básicos para recuperar información de una base de datos. Pero si aún no sabes si necesitas SQL, primero veamos qué es y para qué se utiliza.

Introducción a SQL

SQL (Structured Query Language o "Lenguaje de consulta estructurada") es un lenguaje de programación que se utiliza para comunicarse con las bases de datos. Con SQL, puedes almacenar, manipular y recuperar datos de bases de datos relacionales.

Ahora bien, te estarás preguntando: ¿qué son las bases de datos relacionales? ¿Son comunes?

En las bases de datos relacionales, los datos se organizan como un conjunto de tablas con columnas y filas. Estos datos tienen relaciones predefinidas entre ellos a través de diferentes tablas de una base de datos. Es una forma muy común de almacenar información, ya sea para una pequeña librería o para Amazon.

Veamos, por ejemplo, una tabla llamada libros. En esta tabla, los libros se almacenan como elementos de fila, y las columnas representan los atributos de cada libro, como su número de identificación, título, autor, precio, etc.

También puede haber una tabla llamada ventas que incluya los números de identificación de los pedidos, las fechas y los importes de las ventas, y también puede incluir los números de identificación de los libros pedidos, el número de identificación del vendedor y el número de identificación de la librería correspondiente. Estos números de identificación son referencias a otras tablas de la base de datos, por ejemplo, las tablas libros, vendedores y tiendas. Esto significa que cada dato se almacena en la base de datos una sola vez, en lugar de duplicarse en todas las tablas que puedan necesitar ese dato. Por este motivo, las bases de datos relacionales son muy eficientes y, en consecuencia, de uso común en diversos sectores.

Sin embargo, para que los datos sean valiosos, no basta con almacenarlos de forma eficiente. Hay que poder recuperarlos de forma eficiente. Aquí es donde entra en juego SQL.

SQL es un lenguaje estándar que permite combinar información de varias tablas basándose en relaciones predefinidas, analizar esta información y elaborar informes con los resultados. Pero las capacidades de SQL van mucho más allá de la mera recuperación de información. SQL también ayuda a crear y mantener actualizadas las bases de datos. Dada la popularidad de las bases de datos relacionales y la importancia de SQL para comunicarse con ellas, toda persona profesional de los datos necesita conocer SQL.

Breve historia de SQL

A pesar de la popularidad del lenguaje, todavía no hay acuerdo sobre cómo pronunciar su nombre: si deletreando sus sigas ("ese-cu-ele") o si nombrando la palabra "secuela". Hay mucho debate sobre esta cuestión en Internet, y aunque "secuela" suele ser la opción más votada (al menos en inglés, por "sequel"), Donald D. Chamberlin, codesarrollador de SQL, y muchos otros gurús de SQL prefieren la forma deletreada: "ese-cu-ele".

Hay una buena explicación para la pronunciación de la palabra "secuela", que se esconde en la historia de SQL. La idea de la base de datos relacional fue introducida en 1970 por Edgar Frank (Ted) Codd, un informático inglés de IBM. También propuso dos lenguajes diferentes para su modelo de datos relacional. Ambos lenguajes eran todo menos fáciles de usar para quienes se iniciaban: utilizaban notaciones matemáticas con cuantificadores y operadores matemáticos.

La idea del modelo de datos relacional captó la atención de Donald D. Chamberlin y Raymond F. Boyce, colegas de Codd en California. Sin embargo, se dieron cuenta de que los lenguajes propuestos para interactuar con las bases de datos relacionales eran demasiado difíciles para su adopción masiva.

Con el objetivo de diseñar un lenguaje de consulta fácil de aprender, en 1974 presentaron el "Lenguaje de consulta estructurada en inglés", cuya siglas SEQL de la denominación original en inglés ("Structured English Query Language") pueden leerse como "sequel" ("secuela"). El lenguaje se basaba en estructuras en inglés y utilizaba, efectivamente, el acrónimo SEQUEL. Más tarde, tuvieron que cambiar el nombre para evitar infracciones de marca, lo que derivó en el nombre con el que actualmente lo conocemos: SQL.

En 1986, SQL se convirtió en norma del Instituto Nacional Estadounidense de Estándares (American National Standards Institute o ANSI) y de la Organización Internacional de Normalización (ISO) en 1987. Aunque ninguna base de datos implementa completamente el estándar, la mayoría se acerca mucho. Existen muchas versiones de SQL que se utilizan con distintos sistemas de gestión de bases de datos relacionales (RDBMS); las versiones más populares son Oracle, MySQL, Microsoft SQL Server, PostgreSQL y SQLite.

Aplicaciones de SQL

SQL comenzó como un lenguaje para comunicarse con bases de datos relacionales. Hoy en día, muchas tecnologías utilizan SQL para acceder a los datos:

  • Las tecnologías de procesamiento de datos distribuidos, como Apache Spark, Apache Flink y Apache Beam, ofrecen SQL como interfaz de programación.
  • Los motores de búsqueda de texto completo, como Apache Solr y Elasticsearch, admiten SQL como lenguaje de consulta.
  • También se puede utilizar SQL en aplicaciones de hojas de cálculo de uso común, como Microsoft Excel, Numbers y Google Sheets. En algunas aplicaciones, esta funcionalidad está integrada; en otras, puede que se necesiten complementos externos.
  • Muchas aplicaciones de teléfonos inteligentes utilizan SQLite, una base de datos relacional ligera incrustada, para almacenar datos en el teléfono, como la configuración y los datos de la cuenta.

Es habitual que las tecnologías de datos emergentes añadan soporte para SQL cuando alcanzan cierto nivel de madurez. En este artículo se analizan más ejemplos de aplicaciones SQL.

Con SQL, es posible:

  • Recuperar registros de una base de datos, combinar información de diferentes tablas y añadir múltiples condiciones de filtrado complejas.
  • Realizar cálculos sobre registros de una base de datos, por ejemplo, agrupar registros y calcular suma, promedio, mínimo y máximo.
  • Insertar, eliminar y modificar datos en una base de datos.
  • Preparar informes basados en la información almacenada en una base de datos.

Como ves, SQL está en todas partes. También es una herramienta muy potente para interactuar con bases de datos y analizar datos.

¿Es un lenguaje difícil de dominar? No. Es muy fácil para quienes se inician. A continuación, te muestro algunos ejemplos.

Ejemplos de SQL

La sintaxis de SQL está basada en el idioma inglés. Por lo tanto, puedes leer los comandos SQL como si fueran términos de uso común en inglés.

Los comandos estándar de SQL son:

  • SELECT (seleccionar) para recuperar datos de una base de datos.
  • INSERT (insertar) para añadir nuevos registros a una base de datos.
  • UPDATE (actualizar) para modificar registros de una base de datos.
  • DELETE (eliminar) para borrar datos de una base de datos.

Las personas que se inician en el uso de SQL suelen comenzar por recuperar datos de una base de datos. Veamos algunos ejemplos de uso del comando SELECT.

Imaginemos que tenemos una pequeña librería y disponemos de la siguiente tabla que almacena información sobre los libros a la venta.

6]
libros
idtituloautoranoprecioen_existencia
11En busca del tiempo perdidoMarcel Proust200414.993
12UlisesJames Joyce202235.4910
13Don QuijoteMiguel de Cervantes200322.992
14Cien años de soledadGabriel García Márquez200611.002
15El gran GatsbyF. Scott Fitzgerald20216.495
16Moby DickHerman Melville202110.495
17Guerra y pazLeón Tolstói200815.992
18HamletWilliam Shakespeare20036.291
19La OdiseaHomero199710.991
20Madame BovaryGustave Flaubert200212.991

Supongamos que nuestro objetivo es obtener información sobre todos los libros publicados antes de 2010. Queremos ver los títulos, los autores y los años de publicación de esos libros. Aquí está la consulta SQL para obtener estos datos:

SELECT titulo, autor, ano
FROM libros
WHERE ano < 2010;

Se solicita el título (titulo), autor y año (ano) de la tabla libros para los registros cuyo año de publicación sea anterior a 2010. Este es el resultado de la consulta:

tituloautorano
En busca del tiempo perdidoMarcel Proust2004
Don QuijoteMiguel de Cervantes2003
Cien años de soledadGabriel García Márquez2006
Guerra y pazLeón Tolstói2008
HamletWilliam Shakespeare2003
La OdiseaHomero1997
Madame BovaryGustave Flaubert2002

Probablemente hayas entendido esta consulta incluso sin tener conocimientos previos de SQL. Esta sintaxis tan sencilla es lo que hace que SQL resulte tan atractivo para quienes quieran dedicarse al uso profesional de los datos.

¿Puedes escribir la siguiente consulta? Supongamos que queremos conocer los datos titulo, autor, precio y la cantidad de libros en_existencia de todos los libros escritos por Marcel Proust.

He aquí la consulta para obtener esa información:

SELECT titulo, autor, precio, en_existencia
FROM libros
WHERE autor = 'Marcel Proust';
tituloautorprecioen_existencia
En busca del tiempo perdidoMarcel Proust14.993

Como ves, es bastante sencillo. Sin embargo, si no tienes algo de familiaridad con el uso de SQL u otros lenguajes de programación, es posible que se te hayan escapado algunos detalles como las comillas en el nombre "Marcel Proust" en la condición de filtrado. Rápidamente aprenderás que en SQL las cadenas deben entrecomillarse.

Aprende este y muchos otros detalles y matices referidos a la sintaxis en las 2 páginas de nuestra hoja de trucos de SQL para principiantes, que explica con ejemplos cómo escribir diferentes cláusulas y condiciones de filtrado en SQL.

¡Es hora de aprender SQL!

Aunque estos ejemplos son básicos, demuestran lo fácil que es entender y aprender SQL aunque no tengas experiencia en TI. Dicho esto, cuando se trata de lenguajes de programación, no basta con leer artículos y ver tutoriales. La forma más rápida de aprender un nuevo lenguaje de programación es con la práctica. Los cursos interactivos en línea ofrecen la mejor oportunidad para que quienes se inician aprendan al mismo tiempo que practican.

Como ya he mencionado, recomiendo el curso SQL para principiantes para quienes comienzan su andadura en SQL. Después de completar este curso, sabrás cómo combinar información de varias tablas, establecer condiciones de filtrado complejas, crear informes sencillos utilizando funciones agregadas y mucho más. Recibe más información sobre este curso y lee esta completa reseña de un estudiante de SQL para principiantes.

Cuando quieras ir más allá de lo básico, consulta el recorrido de aprendizaje del Curso completo de SQL. Con siete cursos interactivos, es una excelente oportunidad para perfeccionar tus habilidades en SQL en muy poco tiempo.

Gracias por leer y ¡feliz aprendizaje!