¿Qué es SQL, para qué se usa y cómo usarlo?
Por Antonio Richaud, Publicado el 24 de Abril de 2024
SQL, o Structured Query Language, es uno de los lenguajes más importantes en el mundo de la tecnología, y su relevancia se extiende a múltiples campos, incluyendo la ciencia de datos. Si alguna vez has trabajado con bases de datos, es probable que hayas utilizado SQL para consultar, manipular y administrar datos. Pero SQL no solo es útil para los administradores de bases de datos; es una herramienta clave para los científicos de datos que necesitan acceder, limpiar y analizar grandes volúmenes de información.
En un mundo donde los datos son considerados el "nuevo petróleo", SQL se ha convertido en una habilidad esencial para extraer valor de estos datos. Los científicos de datos confían en SQL para realizar tareas críticas, como la extracción de datos de grandes bases de datos relacionales, la agregación y filtrado de información, y la preparación de conjuntos de datos para su análisis en herramientas avanzadas de machine learning y estadística.
En este artículo, exploraremos en profundidad qué es SQL, cómo funciona y por qué es tan importante en la ciencia de datos. Cubriremos los comandos básicos, los casos de uso más comunes y cómo SQL se integra en los flujos de trabajo de análisis de datos. También veremos cómo SQL se adapta a diferentes sistemas de bases de datos y cómo puede ser potenciado con variantes y extensiones. Si estás interesado en ciencia de datos o en trabajar con grandes volúmenes de información, entender SQL es un primer paso fundamental.
1. ¿Qué es SQL?
SQL, que significa Structured Query Language (Lenguaje de Consulta Estructurada), es el lenguaje estándar utilizado para interactuar con bases de datos relacionales. Su propósito principal es permitir a los usuarios definir, manipular, y consultar datos almacenados en bases de datos. SQL es utilizado por desarrolladores, administradores de bases de datos, y científicos de datos para realizar una amplia gama de operaciones, desde la creación de tablas hasta la ejecución de consultas complejas que analizan grandes volúmenes de información.
Historia breve de SQL: Origen y evolución
SQL fue desarrollado en la década de 1970 por IBM, bajo el liderazgo de Donald D. Chamberlin y Raymond F. Boyce. Inicialmente, el lenguaje fue creado para manejar datos en el sistema de gestión de bases de datos System R de IBM. A medida que las bases de datos relacionales se convirtieron en el estándar para almacenar y gestionar datos, SQL se estableció como el lenguaje de consulta por excelencia. En 1986, SQL se convirtió en un estándar reconocido por el American National Standards Institute (ANSI) y, poco después, por la International Organization for Standardization (ISO).
Desde entonces, SQL ha evolucionado con nuevas características y capacidades, adaptándose a las crecientes demandas de la tecnología y los datos. Hoy en día, SQL sigue siendo fundamental en la administración de bases de datos y es ampliamente utilizado en sistemas como MySQL, PostgreSQL, Oracle, Microsoft SQL Server, y muchos otros.
Características clave de SQL
SQL es poderoso por su simplicidad y flexibilidad. A continuación, te presento algunas de las características que lo hacen indispensable en el manejo de datos:
- Declarativo: SQL es un lenguaje declarativo, lo que significa que describes qué deseas obtener en lugar de cómo hacerlo. Esto simplifica las consultas y permite a los sistemas de bases de datos optimizar la ejecución de las mismas.
- Portabilidad: Aunque existen diferentes variantes de SQL, el lenguaje básico es compatible con la mayoría de los sistemas de bases de datos, lo que permite que las consultas SQL sean relativamente portátiles entre plataformas.
- Estándar y ampliable: SQL es un estándar reconocido, pero también es ampliable. Esto significa que diferentes sistemas de bases de datos pueden añadir características adicionales, como tipos de datos específicos o funciones avanzadas.
- Versatilidad: SQL se utiliza para una variedad de operaciones, incluyendo la creación de estructuras de bases de datos, la inserción y manipulación de datos, la consulta de información, y la administración de usuarios y permisos.
SQL en la ciencia de datos
En el ámbito de la ciencia de datos, SQL es una herramienta esencial para la manipulación y análisis de datos. Los científicos de datos utilizan SQL para extraer datos de bases de datos relacionales, aplicar filtros y transformaciones, y preparar conjuntos de datos para su análisis posterior. SQL es especialmente útil en la fase de exploración de datos, donde se pueden realizar consultas para descubrir patrones, identificar outliers, y generar resúmenes estadísticos básicos.
Además, SQL se integra perfectamente con lenguajes de programación populares en ciencia de datos, como Python y R. Herramientas como pandas en Python permiten ejecutar consultas SQL directamente desde un entorno de programación, combinando la potencia de SQL con la flexibilidad de lenguajes como Python para realizar análisis más complejos.
import pandas as pd
import sqlite3
# Conectar a una base de datos SQLite
conn = sqlite3.connect('mi_base_de_datos.db')
# Ejecutar una consulta SQL usando pandas
df = pd.read_sql_query("SELECT * FROM ventas WHERE año = 2023", conn)
# Mostrar los resultados
print(df.head())
En este ejemplo, utilizamos SQL para consultar una base de datos SQLite y extraer datos de ventas del año 2023. Luego, usamos pandas para manipular y visualizar los datos, combinando lo mejor de SQL y Python en un flujo de trabajo de ciencia de datos.
2. Principales comandos de SQL
SQL es conocido por su simplicidad y poder para manipular datos. Aunque existen muchos comandos en SQL, algunos de los más importantes son los que permiten interactuar directamente con los datos almacenados en las bases de datos. A continuación, te presento los comandos básicos de SQL que todo científico de datos o desarrollador debe conocer.
Comandos básicos: SELECT, INSERT, UPDATE, DELETE
Estos comandos constituyen la base de la mayoría de las operaciones que se realizan en una base de datos. Vamos a ver cada uno en detalle:
SELECT: Consultar datos
El comando SELECT
es quizás el más utilizado en SQL. Permite extraer datos de una o más tablas y es fundamental en la ciencia de datos para obtener los datos necesarios para el análisis. Puedes seleccionar columnas específicas o todas las columnas usando el asterisco *
.
-- Seleccionar todas las columnas de la tabla "ventas"
SELECT * FROM ventas;
-- Seleccionar solo las columnas "cliente" y "total" de la tabla "ventas"
SELECT cliente, total FROM ventas;
INSERT: Insertar datos
El comando INSERT
se utiliza para agregar nuevos registros a una tabla. Es fundamental para alimentar una base de datos con nuevos datos a medida que se generan o se recopilan.
-- Insertar un nuevo registro en la tabla "ventas"
INSERT INTO ventas (cliente, producto, cantidad, total, fecha)
VALUES ('Juan Pérez', 'Laptop', 1, 1500, '2023-08-26');
UPDATE: Actualizar datos
El comando UPDATE
se utiliza para modificar registros existentes en una tabla. Esto es útil cuando necesitas corregir datos o actualizar información en la base de datos.
-- Actualizar el campo "total" para el cliente "Juan Pérez"
UPDATE ventas
SET total = 1600
WHERE cliente = 'Juan Pérez';
DELETE: Eliminar datos
El comando DELETE
permite eliminar registros de una tabla. Es un comando poderoso, por lo que se debe usar con cuidado para evitar la pérdida de datos importantes.
-- Eliminar el registro de "Juan Pérez" en la tabla "ventas"
DELETE FROM ventas
WHERE cliente = 'Juan Pérez';
Comandos de creación y manipulación de tablas: CREATE, ALTER, DROP
Además de manipular los datos dentro de las tablas, SQL también permite crear y modificar la estructura de la base de datos en sí. Aquí te explico cómo se utilizan los comandos CREATE
, ALTER
y DROP
para gestionar las tablas.
CREATE: Crear tablas
El comando CREATE
se utiliza para crear nuevas tablas en la base de datos. Este comando es esencial cuando estás diseñando una base de datos desde cero o cuando necesitas añadir nuevas tablas a una base de datos existente.
-- Crear una nueva tabla llamada "clientes"
CREATE TABLE clientes (
id INT PRIMARY KEY,
nombre VARCHAR(100),
correo VARCHAR(100),
ciudad VARCHAR(50),
fecha_registro DATE
);
ALTER: Modificar tablas
El comando ALTER
permite modificar la estructura de una tabla existente. Puedes añadir nuevas columnas, modificar columnas existentes o incluso cambiar el nombre de la tabla.
-- Añadir una nueva columna llamada "telefono" a la tabla "clientes"
ALTER TABLE clientes
ADD telefono VARCHAR(20);
DROP: Eliminar tablas
El comando DROP
se utiliza para eliminar una tabla completa de la base de datos. Es un comando destructivo, por lo que debe usarse con precaución, ya que eliminará toda la información contenida en la tabla.
-- Eliminar la tabla "clientes"
DROP TABLE clientes;
Uso de WHERE, JOINs y operaciones de filtrado
Los comandos básicos de SQL se vuelven aún más poderosos cuando se combinan con cláusulas como WHERE
y JOIN
, que permiten filtrar y combinar datos de manera precisa.
WHERE: Filtrar datos
La cláusula WHERE
se utiliza para filtrar los registros que se desean consultar, actualizar o eliminar. Es especialmente útil para enfocarse en un subconjunto específico de datos dentro de una tabla.
-- Seleccionar ventas realizadas en el año 2023
SELECT * FROM ventas
WHERE año = 2023;
JOINs: Combinar datos de múltiples tablas
Los JOINs
son fundamentales en SQL para combinar datos de dos o más tablas. Existen varios tipos de JOINs, pero los más comunes son INNER JOIN, LEFT JOIN y RIGHT JOIN. Cada uno tiene un propósito específico dependiendo de cómo desees combinar los datos.
-- Unir la tabla "clientes" con la tabla "ventas" para ver las compras de cada cliente
SELECT clientes.nombre, ventas.producto, ventas.total
FROM clientes
INNER JOIN ventas ON clientes.id = ventas.cliente_id;
En este ejemplo, utilizamos INNER JOIN para combinar la tabla clientes
con la tabla ventas
, mostrando los productos comprados y el total gastado por cada cliente. Esta operación es común en ciencia de datos cuando necesitas analizar datos de múltiples fuentes dentro de una base de datos.
3. ¿Cómo funciona SQL?
Ahora que hemos cubierto los principales comandos de SQL, es importante entender cómo funciona este lenguaje para manipular y consultar datos en una base de datos relacional. SQL utiliza un enfoque declarativo, lo que significa que describes el resultado que deseas obtener sin necesidad de especificar los pasos exactos que el sistema debe seguir para llegar a ese resultado. Los sistemas de gestión de bases de datos (DBMS) como MySQL, PostgreSQL, y SQL Server se encargan de interpretar y ejecutar tus consultas SQL de manera eficiente.
Estructura de una consulta SQL
Una consulta SQL típica se compone de varias partes que juntas definen qué datos deseas recuperar, cómo deben ser filtrados, y en qué orden se deben presentar. A continuación, te explico las partes más comunes de una consulta SQL:
- SELECT: Define qué columnas deseas recuperar.
- FROM: Especifica la tabla de la que deseas extraer los datos.
- WHERE: Filtra los resultados según condiciones específicas.
- ORDER BY: Ordena los resultados según una o más columnas.
- GROUP BY: Agrupa los resultados según valores comunes en una columna.
- JOIN: Combina datos de dos o más tablas relacionadas.
-- Consulta que selecciona productos vendidos en 2023, agrupados por categoría y ordenados por total de ventas
SELECT categoria, SUM(total) as total_ventas
FROM ventas
WHERE año = 2023
GROUP BY categoria
ORDER BY total_ventas DESC;
En este ejemplo, la consulta selecciona datos de la tabla ventas
, filtra las ventas del año 2023, agrupa los resultados por categoría de producto y los ordena de mayor a menor según el total de ventas. Este tipo de consulta es común en ciencia de datos cuando necesitas resumir y analizar el rendimiento de productos o servicios.
Ejemplo práctico: Crear una tabla, insertar datos, consultar y actualizar registros
Vamos a ver un ejemplo completo que ilustra cómo crear una tabla, insertar datos en ella, consultar esos datos, y finalmente actualizarlos. Esto te dará una visión clara de cómo funciona SQL en un flujo de trabajo típico.
1. Crear una tabla
-- Crear una tabla llamada "empleados"
CREATE TABLE empleados (
id INT PRIMARY KEY,
nombre VARCHAR(100),
puesto VARCHAR(50),
salario DECIMAL(10, 2),
fecha_contratacion DATE
);
En este ejemplo, creamos una tabla empleados
con columnas que incluyen un identificador único (id
), nombre, puesto, salario y fecha de contratación. Esta estructura es común en bases de datos empresariales.
2. Insertar datos
-- Insertar registros en la tabla "empleados"
INSERT INTO empleados (id, nombre, puesto, salario, fecha_contratacion)
VALUES (1, 'Ana López', 'Analista de datos', 45000.00, '2022-01-15'),
(2, 'Carlos Pérez', 'Desarrollador', 50000.00, '2021-08-01');
Aquí insertamos dos registros en la tabla empleados
, con información básica sobre cada empleado. Este paso es crucial para poblar una base de datos con datos que luego podrán ser consultados y analizados.
3. Consultar datos
-- Consultar todos los registros de la tabla "empleados"
SELECT * FROM empleados;
Con este comando, seleccionamos todos los registros de la tabla empleados
. Este tipo de consulta es útil para verificar que los datos se han insertado correctamente o para realizar análisis preliminares.
4. Actualizar datos
-- Actualizar el salario de "Ana López"
UPDATE empleados
SET salario = 47000.00
WHERE nombre = 'Ana López';
En este ejemplo, actualizamos el salario de Ana López
. Este comando es representativo de cómo se pueden hacer cambios en los datos existentes dentro de una tabla.
Optimización de consultas: Índices y buenas prácticas
A medida que las bases de datos crecen en tamaño y complejidad, optimizar las consultas SQL se vuelve esencial para mantener un rendimiento eficiente. Los índices son una de las herramientas más poderosas para acelerar la recuperación de datos en SQL. Un índice es similar al índice de un libro: es una estructura que almacena la ubicación de los datos en la tabla, permitiendo que las consultas accedan a la información más rápidamente.
Crear un índice
-- Crear un índice en la columna "nombre" de la tabla "empleados"
CREATE INDEX idx_nombre ON empleados (nombre);
En este ejemplo, creamos un índice en la columna nombre
de la tabla empleados
. Esto acelerará las consultas que filtran o ordenan por el nombre de los empleados.
Además de utilizar índices, aquí tienes algunas buenas prácticas para optimizar tus consultas SQL:
- Evitar SELECT *: Selecciona solo las columnas que realmente necesitas. Esto reduce la cantidad de datos que se deben procesar y transferir.
- Usar LIMIT: Si solo necesitas un subconjunto de datos, utiliza
LIMIT
para restringir el número de registros devueltos. - Filtrar adecuadamente: Utiliza la cláusula
WHERE
para filtrar los datos de manera precisa, lo que evita la carga innecesaria de datos en las consultas. - Analizar las consultas: Usa herramientas como
EXPLAIN
para analizar cómo se ejecutan tus consultas y detectar posibles cuellos de botella.
Siguiendo estas prácticas, puedes mejorar significativamente el rendimiento de tus consultas SQL, lo que es crucial cuando trabajas con grandes volúmenes de datos en ciencia de datos.
4. Aplicaciones y usos de SQL
SQL es un lenguaje versátil que se utiliza en una amplia gama de aplicaciones, desde la administración de bases de datos en empresas hasta el análisis de grandes volúmenes de datos en ciencia de datos. Su capacidad para manejar datos estructurados lo convierte en una herramienta indispensable en múltiples contextos. A continuación, exploramos algunas de las principales aplicaciones de SQL y cómo se integra en diferentes flujos de trabajo.
SQL en la administración de bases de datos relacionales (RDBMS)
SQL es el lenguaje estándar para interactuar con sistemas de gestión de bases de datos relacionales (RDBMS, por sus siglas en inglés), como MySQL, PostgreSQL, Oracle Database, y Microsoft SQL Server. Estos sistemas utilizan SQL para gestionar la creación de tablas, la inserción y actualización de datos, y la ejecución de consultas complejas. En el entorno empresarial, SQL es fundamental para manejar bases de datos que contienen información crítica sobre clientes, productos, finanzas, y más.
Las bases de datos relacionales están diseñadas para garantizar la integridad y consistencia de los datos, y SQL proporciona las herramientas necesarias para mantener estas propiedades. Los administradores de bases de datos (DBAs) utilizan SQL para implementar reglas de negocio, configurar permisos de usuario, y optimizar el rendimiento de las consultas, asegurando que las bases de datos funcionen de manera eficiente y segura.
SQL en la ciencia de datos
En ciencia de datos, SQL es una de las primeras herramientas que los científicos de datos aprenden y utilizan. Es fundamental para extraer, filtrar, y manipular datos antes de realizar análisis más avanzados. Muchas bases de datos empresariales utilizan RDBMS, y SQL es el lenguaje estándar para acceder a esos datos.
Los científicos de datos utilizan SQL para realizar consultas que seleccionan, agrupan y ordenan datos, lo que les permite explorar patrones, tendencias, y correlaciones dentro de los datos. Por ejemplo, SQL puede ser utilizado para agregar datos por categorías, calcular promedios, y filtrar datos según condiciones específicas. Estas operaciones son esenciales para preparar los datos para análisis más profundos, como la modelización estadística y el machine learning.
-- Calcular el promedio de ventas por categoría de producto en 2023
SELECT categoria, AVG(total) as promedio_ventas
FROM ventas
WHERE año = 2023
GROUP BY categoria;
En este ejemplo, SQL se utiliza para calcular el promedio de ventas por categoría de producto en un año específico. Este tipo de consulta es común en análisis de datos exploratorio, donde el objetivo es comprender mejor el comportamiento de los datos antes de aplicar técnicas de análisis más sofisticadas.
Integración de SQL con otros lenguajes de programación
SQL no opera en un vacío; a menudo se integra con otros lenguajes de programación para crear aplicaciones más potentes y dinámicas. Los desarrolladores utilizan SQL junto con lenguajes como Python, R, JavaScript y Java para acceder a bases de datos, manipular datos, y presentar resultados.
En ciencia de datos, Python es uno de los lenguajes más populares para integrar con SQL. Bibliotecas como pandas y SQLAlchemy permiten a los desarrolladores escribir consultas SQL dentro de scripts de Python, ejecutar esas consultas contra una base de datos, y luego procesar y analizar los resultados dentro del mismo entorno. Esto facilita un flujo de trabajo integrado donde los datos se extraen, transforman, y analizan de manera eficiente.
import pandas as pd
from sqlalchemy import create_engine
# Crear una conexión a la base de datos
engine = create_engine('sqlite:///mi_base_de_datos.db')
# Escribir una consulta SQL y cargar los resultados en un DataFrame de pandas
query = "SELECT * FROM ventas WHERE año = 2023"
df = pd.read_sql_query(query, engine)
# Mostrar las primeras filas del DataFrame
print(df.head())
En este ejemplo, utilizamos SQL para extraer datos de una base de datos SQLite y cargarlos en un DataFrame de pandas para su posterior análisis en Python. Esta integración permite a los científicos de datos aprovechar la potencia de SQL para la extracción de datos y la flexibilidad de Python para el análisis y la visualización.
SQL en aplicaciones empresariales
Más allá de la ciencia de datos, SQL es crucial en aplicaciones empresariales que dependen de bases de datos para su funcionamiento. Esto incluye sistemas de gestión de relaciones con clientes (CRM), sistemas de planificación de recursos empresariales (ERP), y plataformas de comercio electrónico, entre otros.
En estos contextos, SQL se utiliza para manejar transacciones financieras, gestionar inventarios, y rastrear interacciones con clientes. Su capacidad para manejar grandes volúmenes de datos y realizar operaciones complejas de manera eficiente lo convierte en el motor que impulsa muchas aplicaciones críticas para el negocio.
Además, SQL permite a las empresas mantener la consistencia y seguridad de sus datos a través de la implementación de transacciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad), que garantizan que todas las operaciones se completen correctamente o no se apliquen en absoluto.
5. Variantes y extensiones de SQL
Aunque SQL es un estándar reconocido, existen diferentes variantes y extensiones del lenguaje que han sido desarrolladas por distintos sistemas de gestión de bases de datos (DBMS). Estas variantes mantienen la sintaxis básica de SQL, pero a menudo incluyen características adicionales que se adaptan a las necesidades específicas de cada sistema. A continuación, exploramos algunas de las variantes más populares y las extensiones que puedes encontrar en el mundo de SQL.
Diferencias entre SQL estándar y sus variantes
La base de SQL es la misma en todos los sistemas, pero cada DBMS puede implementar su propia versión del lenguaje con características únicas. A continuación, te presento algunas de las variantes más comunes:
1. MySQL
MySQL es uno de los sistemas de bases de datos más populares en el mundo, especialmente en aplicaciones web. MySQL añade varias extensiones a SQL estándar, como tipos de datos específicos (por ejemplo, ENUM
) y funciones propias (como GROUP_CONCAT
). MySQL es conocido por su rapidez y flexibilidad, aunque algunas de sus extensiones pueden no ser compatibles con otros sistemas SQL.
2. PostgreSQL
PostgreSQL es un sistema de bases de datos relacional que es conocido por su conformidad con el estándar SQL y su extensibilidad. Además de las características básicas de SQL, PostgreSQL ofrece soporte para tipos de datos avanzados como JSON
y ARRAY
, así como capacidades de consulta recursiva y funciones definidas por el usuario. PostgreSQL es muy popular en aplicaciones que requieren un alto grado de fiabilidad y escalabilidad.
3. Microsoft SQL Server
Microsoft SQL Server es una solución de bases de datos ampliamente utilizada en entornos empresariales. SQL Server incluye extensiones como TRANSACT-SQL
(T-SQL), que permite la programación procedural dentro de SQL, incluyendo el uso de loops, condiciones y variables. Esto lo hace ideal para manejar lógica de negocios compleja directamente en la base de datos.
4. Oracle Database
Oracle Database es conocido por su robustez y capacidad para manejar grandes volúmenes de datos en aplicaciones empresariales críticas. Oracle SQL incluye extensiones como PL/SQL
, que añade capacidades procedurales similares a las de T-SQL en SQL Server. Además, Oracle es conocido por sus características avanzadas de seguridad y gestión de datos.
Extensiones comunes de SQL
Además de las diferencias entre los DBMS, muchos sistemas de bases de datos ofrecen extensiones que amplían las capacidades de SQL estándar. Algunas de las extensiones más comunes incluyen:
- Procedimientos almacenados: Los procedimientos almacenados son bloques de código SQL que se guardan en la base de datos y se pueden ejecutar repetidamente. Son útiles para encapsular lógica compleja que se necesita ejecutar con frecuencia.
- Triggers: Los triggers son bloques de código SQL que se ejecutan automáticamente en respuesta a ciertos eventos, como la inserción o actualización de datos en una tabla. Son útiles para mantener la integridad de los datos y automatizar tareas.
- Vistas: Las vistas son consultas SQL predefinidas que se guardan como tablas virtuales. Las vistas permiten simplificar consultas complejas y restringir el acceso a ciertos datos.
- Funciones definidas por el usuario: Los DBMS permiten crear funciones personalizadas que pueden ser utilizadas en consultas SQL. Estas funciones son útiles para realizar cálculos específicos o manipular datos de manera particular.
Estas extensiones y variantes permiten a los desarrolladores y administradores de bases de datos adaptar SQL a las necesidades específicas de sus aplicaciones, haciendo que el lenguaje sea aún más poderoso y flexible.
Conclusión
SQL es, sin duda, uno de los pilares fundamentales en el mundo de la tecnología de la información. Desde su creación en los años 70, ha evolucionado hasta convertirse en el lenguaje estándar para la gestión de bases de datos relacionales. Su simplicidad, combinada con su poder y flexibilidad, lo ha convertido en una herramienta indispensable para desarrolladores, administradores de bases de datos y científicos de datos.
A lo largo de este artículo, hemos explorado qué es SQL, cómo funciona, y cómo se utiliza en diferentes contextos, desde la administración de bases de datos hasta la ciencia de datos. También hemos visto las principales variantes y extensiones de SQL que permiten adaptar el lenguaje a necesidades específicas. Con un dominio sólido de SQL, puedes manejar y analizar grandes volúmenes de datos de manera eficiente, lo que es crucial en el mundo actual impulsado por los datos.
Ya sea que estés comenzando tu viaje en el mundo de los datos o buscando optimizar tus habilidades en la gestión de bases de datos, SQL es una habilidad esencial que te abrirá innumerables oportunidades en el ámbito profesional. ¡Así que no dudes en profundizar más y seguir practicando!
Recursos adicionales
- Tutorial de SQL en W3Schools: Una guía introductoria y fácil de seguir para aprender los fundamentos de SQL.
- Documentación oficial de PostgreSQL: Una referencia completa para trabajar con PostgreSQL, uno de los sistemas de bases de datos más poderosos y conformes con SQL.
- SQLShack: Un sitio web con tutoriales, artículos y recursos avanzados sobre SQL Server y otros temas relacionados con bases de datos.
- Comparación entre pandas y SQL: Una guía que muestra cómo las operaciones comunes en SQL se pueden realizar con pandas en Python.
- Documentación de Oracle Database: Recursos y guías para trabajar con Oracle Database, incluyendo PL/SQL.
- The Complete SQL Bootcamp en Udemy: Un curso completo en línea que cubre todo, desde los fundamentos hasta las consultas avanzadas en SQL.