Según Google, actualmente se hablan más de 7.100 idiomas distintos en todo el mundo. Sorprendente, ¿verdad? Si contamos todos los lenguajes de programación informática que existen, la cifra supera los 7.700 idiomas. El Structured Query Language o SQL es uno de los lenguajes de programación más hablados en el país de los datos. ¿Hablas SQL? ¡Descubre los 10 trucos SQL que deberías conocer!
Hasta donde sabemos, el primer idioma hablado por los humanos se remonta al año 3500 aC. El primer lenguaje de programación fue concebido por Ada Lovelace en 1883. El Structured Query Language —Lenguaje Estructurado de Consulta— o SQL fue creado en 1970 por dos investigadores de IBM, Raymond Boyce y Donald Chamberlin.
Con más de 50 años de historia, actualmente, SQL está en el top 10 de los lenguajes de programación más usados alrededor del mundo y, si nos centramos en el mundo del data analytics, seguramente sea el primero.
Se trata de un lenguaje que cualquier analista o científico de datos debe conocer, y es que es la base para poder trabajar con bases de datos relacionales.
El Structured Query Language o SQL es el lenguaje de programación que usamos para comunicarnos con bases de datos. Como su nombre indica, el lenguaje permite a los analistas de datos manipular y extraer datos de una base de datos relacional, entre otras muchas cosas, y realizar consultas —queries— en los conjuntos de datos.
Es, en pocas palabras, el lenguaje usado para realizar consultas en una base de datos.
El lenguaje SQL parte de la base de que todos los datos de una base de datos están relacionados y deben ser representados según estas relaciones. Precisamente por esto, SQL se usa principalmente para trabajar con bases de datos relacionales. Las bases de datos más conocidas que usan SQL son SQL Server, MySQL, Oracle y PostgreSQL.
La ventaja de SQL, además de ser uno de los idiomas básicos de la ciencia de datos, es que es fácil de leer y de entender. De hecho, se trata de un lenguaje cuya sintaxis es bastante parecida a la del inglés.
Otra de las ventajas de SQL es que se trata de un lenguaje flexible y versátil que ofrece muchas posibilidades y formas de visualizar los datos para atender a las demandas específicas de cada usuario. Asimismo, SQL nos ayuda a garantizar la integridad de los datos, en la medida en que nos aseguramos de que los datos son válidos, coherentes y que no contienen errores.
Ejemplo de comando SQL
Una de las funciones más básicas que podemos realizar en SQL es juntar dos tablas independientes mediante la instrucción 'Left Join', que integra todos los registros de la tabla izquierda con los registros de la tabla derecha:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName
Como vemos en este ejemplo, el lenguaje SQL es muy parecido al inglés. 'SELECT' significa seleccionar, 'FROM' es desde y 'ORDER BY' significa ordenar por. Básicamente, se trata de un lenguaje de programación que usa la misma sintaxis que el inglés, por lo que aprenderlo no es complicado.
De todas, 'SELECT' es la instrucción más básica de SQL y la que cualquier persona que quiera iniciarse en este lenguaje de computación debería aprender primero.
En SQL, 'SELECT' nos sirve para describir el conjunto de datos que queremos obtener de una base de datos. Es decir, es la consulta principal y la que probablemente más usaremos para todo. Para hacer la consulta, debemos especificar qué tablas contienen los datos, las relaciones entre los datos, los campos o cálculos aplicados a los datos, los criterios que deben cumplir los datos para ser incluidos en la selección y cómo queremos ordenar los datos.
Más allá de 'SELECT', otros de los comandos más básicos de SQL son:
Comando SQL | ¿Qué hace? |
SELECT | Nos muestra una lista con aquellos campos que contienen datos de interés según nuestra consulta. |
FROM | Nos muestra las tablas que contienen los campos de la cláusula 'SELECT'. |
WHERE | Especifica los criterios de campo deben cumplir los datos para ser incluido en la selección. |
ORDER BY | Especifica la forma de ordenar los datos. |
GROUP BY | En instrucciones que incluyen funciones de agregado, 'Group by' nos muestra los campos que no se resumen en la cláusula SELECT. |
HAVING | En instrucciones que incluyen funciones de agregado, especifica las condiciones que se aplican a los campos que se resumen en la cláusula 'SELECT'. |
A continuación listamos los que, según nuestra experiencia, son los 10 mejores consejos para trabajar con este lenguaje de programación.
A la hora de poner nombre a nuestras tablas de datos y a las columnas de las tablas, es recomendable usar nombres lo más sencillos, fáciles de entender y descriptivos que sea posible. Esto nos facilitará mucho el trabajo a la hora de realizar consultas y ejecutar nuestros comandos.
Es más recomendable usar nombres descriptivos que usar nombres cortos que no se entiendan.
A pesar de que no es obligatorio porque el lenguaje SQL no distingue entre letras mayúsculas y minúsculas, la mayoría de analistas de datos usan la minúscula para las tablas y las columnas y la mayúscula para el resto.
Esta distinción entre minúsculas y mayúsculas facilita la lectura y la comprensión de las consultas.
Es indispensable seguir el orden de ejecución de SQL a la hora de escribir nuestras consultas y comandos. El orden establecido de SQL proporciona un mejor rendimiento y nos evita problemas.
El orden de ejecución SQL es:
1. SELECT
2. FROM
3. WHERE
4. GROUP BY
5. HAVING: Filtra los datos agregados
6. ORDER BY
La organización de las bases de datos en tablas facilita la comprensión de los datos y de sus relaciones. Sin embargo, no es recomendable usar una gran cantidad de tablas de una o dos columnas, ya que estos datos probablemente se pueden integrar a otras tablas.
Tener menos tablas nos simplificará el trabajo y evitará sobrecargar la base de datos.
Intenta encontrar un punto medio. Normalizar los datos es eficiente, pero en la medida justa. No obstante, crear tablas extremadamente largas y con muchísimas columnas tampoco es recomendable.
Es preferible que nuestras tablas no lleguen a las 20 columnas para no sobrecargar la base de datos y facilitar la recuperación y el análisis de datos.
En SQL, las relaciones entre tablas se crean a través de claves. Las claves son campos introducidos en la tabla relacional y existen muchas formas de nombrarlas. No obstante, es importante que seamos coherentes a la hora de nombrar las claves. Si no, nos resultará más complejo crear las relaciones.
Es recomendable nombrar la clave externa en función de la clave primaria. Por ejemplo, si nuestra clave primara está etiquetada como «id», podemos llamar «tablename_id» a la clave externa.
No uses puntos en los nombres de tablas, columnas y campos. En SQL los puntos se usan para separar las tablas de los campos. Siguiendo con el ejemplo anterior, cuando quieras hacer referencia a otro elemento, usa el guión bajo: «tablename_id».
El proceso de mantenimiento de los datos y el proceso de validación y verificación de los mismos resultará más fácil y rápido si nos deshacemos de las columnas y de las tablas heredadas.
La inclusión de fechas es una de las cláusulas SQL más complejas. Por ello, las buenas prácticas SQL aconsejan guardar días, meses y años en el formato del campo 'datetime'. Lo más fácil es almacenar una sola zona horaria para evitar complicaciones a la hora de analizar series temporales.
Los datos contenidos en una base de datos relacional provienen de una fuente de origen externa. En este sentido, es importante no perder de vista la fuente de origen y etiquetar las vistas en consecuencia, referenciando el origen de los datos.