🙏 Realmente necesitamos su apoyo. Necesitamos financiamiento para continuar nuestra misión: publicar nuevas lecciones y mejorar la plataforma. Si puede, por favor apoye el proyecto con una donación. Ayude al proyecto ahora →
Código SQL copiado al portapapeles

Lesión 1.6 · Tiempo de lectura: ~8 min

SQL (Lenguaje de Consulta Estructurado) es el lenguaje central para trabajar con bases de datos relacionales. En esta lección, verás cómo se organiza SQL, qué tareas resuelve y cómo se ve una primera consulta básica. Al final de la lección, podrás leer construcciones SQL simples con confianza y entender su propósito.

¿Qué es SQL: Descripción general del lenguaje y estructura de consulta?

En la lección anterior, discutimos los valores NULL y cómo trabajar con datos faltantes. Ahora es momento de ver el panorama general: qué es SQL y por qué la mayoría de los análisis prácticos en bases de datos relacionales se construyen sobre él.

SQL es importante no solo para desarrolladores. También es esencial para analistas, ingenieros de datos y cualquier persona que extraiga, valide y transforme datos en su trabajo diario.

Diagrama que muestra SQL como un lenguaje para consultar y modificar datos en una base de datos relacional


¿Qué es SQL y por qué es útil?

SQL (Lenguaje de Consulta Estructurado) es el lenguaje que usamos para comunicarnos con un RDBMS con el fin de leer, insertar, actualizar y eliminar datos.

SQL fue desarrollado en la década de 1970 en IBM y se convirtió en el estándar de facto para la gestión de bases de datos relacionales. Su sintaxis es lo suficientemente estricta para la ejecución por máquina, pero aún legible para los humanos, lo que hace que SQL sea práctico para tareas diarias de datos.

En la práctica, SQL resuelve tres categorías principales de tareas:

  • recuperar datos requeridos de tablas;
  • modificar datos y la estructura de la base de datos;
  • controlar el acceso y las transacciones.

Características clave de SQL

  • Lenguaje declarativo: describes el resultado que necesitas en lugar de escribir la lógica de ejecución paso a paso.
  • Operaciones basadas en conjuntos: SQL procesa muchas filas a la vez, no un registro a la vez.
  • Sintaxis estandarizada: los constructos centrales son similares en diferentes RDBMS, lo que hace que las habilidades sean transferibles.

Subconjuntos de SQL

SQL se divide en varios subconjuntos, cada uno con un propósito específico:

  • Lenguaje de Consulta de Datos (DQL): Usado para consultar datos de bases de datos. El comando principal es SELECT.
  • Lenguaje de Definición de Datos (DDL): Usado para definir y gestionar estructuras de bases de datos. Los comandos incluyen CREATE, ALTER y DROP.
  • Lenguaje de Manipulación de Datos (DML): Usado para manipular datos dentro de la base de datos. Los comandos incluyen INSERT, UPDATE y DELETE.
  • Lenguaje de Control de Datos (DCL): Usado para controlar el acceso a los datos dentro de la base de datos. Los comandos incluyen GRANT y REVOKE.
  • Lenguaje de Control de Transacciones (TCL): Usado para gestionar transacciones en la base de datos. Los comandos incluyen COMMIT, ROLLBACK y SAVEPOINT.

Objetos centrales de SQL

SQL opera sobre varios objetos dentro de una base de datos, incluyendo:

  • Tablas: La estructura principal para almacenar datos en una base de datos relacional. Las tablas constan de filas y columnas, donde cada fila representa un registro y cada columna representa un atributo de ese registro.
  • Vistas: Tablas virtuales que proporcionan una forma de presentar datos de una o más tablas en un formato específico. Las vistas pueden simplificar consultas complejas y mejorar la seguridad al restringir el acceso a ciertos datos.
  • Índices: Estructuras que mejoran la velocidad de las operaciones de recuperación de datos en una tabla de base de datos. Los índices se crean en una o más columnas de una tabla para mejorar el rendimiento de las consultas.
  • Procedimientos Almacenados: Código SQL predefinido que puede ejecutarse como una unidad única. Los procedimientos almacenados pueden encapsular lógica compleja y mejorar el rendimiento al reducir el tráfico de red.
  • Disparadores: Tipos especiales de procedimientos almacenados que se ejecutan automáticamente en respuesta a ciertos eventos en una tabla, como operaciones de INSERT, UPDATE o DELETE. Los disparadores pueden hacer cumplir reglas comerciales y mantener la integridad de los datos.
  • Esquemas: Contenedores lógicos para objetos de base de datos, como tablas, vistas e índices. Los esquemas ayudan a organizar y gestionar objetos de base de datos, proporcionando una forma de agrupar objetos relacionados.
  • Restricciones: Reglas aplicadas a las columnas de las tablas para hacer cumplir la integridad de los datos. Las restricciones comunes incluyen PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL y CHECK.
  • Transacciones: Una secuencia de una o más operaciones SQL que se tratan como una única unidad de trabajo. Las transacciones aseguran la integridad y consistencia de los datos al permitir que múltiples operaciones se confirmen o se deshagan como un grupo.
  • Tipos de Datos: Definen el tipo de datos que se pueden almacenar en una columna, como INTEGER, VARCHAR, DATE y BOOLEAN. Los tipos de datos aseguran que los datos almacenados en una tabla sean consistentes y válidos.

Entender estos objetos es importante porque las consultas SQL siempre se refieren a ellos.


Convenciones básicas de SQL

La unidad básica en SQL es una consulta. Una consulta es una solicitud al RDBMS para recuperar o modificar datos.

La estructura básica de una consulta SQL consiste en los siguientes componentes:

  • Sentencias: Palabras reservadas que tienen un significado específico en SQL. Ejemplos incluyen SELECT, FROM, WHERE y JOIN.
  • Cláusulas: Componentes de una sentencia SQL que especifican la acción a realizar. Las cláusulas comunes incluyen SELECT, FROM, WHERE, GROUP BY y ORDER BY.
  • Expresiones: Combinaciones de valores, operadores y funciones que evalúan a un solo valor. Las expresiones se pueden usar en varias partes de una sentencia SQL, como la lista SELECT o la cláusula WHERE.
  • Identificadores: Nombres utilizados para referirse a objetos de base de datos, como tablas, columnas y vistas. Los identificadores pueden ser simples (por ejemplo, table_name) o calificados (por ejemplo, schema_name.table_name).
  • Comentarios: Texto no ejecutable en el código SQL que proporciona explicaciones o notas. Los comentarios pueden ser de una sola línea (usando --) o de varias líneas (usando / ... /).

Escribiendo tu primera consulta SQL

Una plantilla de consulta básica generalmente incluye SELECT, FROM y opcionalmente WHERE:

SELECT column1,
	   column2
FROM table_name
WHERE condition;

Resultado: la consulta devuelve solo las filas de table_name que coinciden con condition, y muestra las columnas column1 y column2.

Incluso esta corta plantilla es útil porque muestra la estructura común utilizada en la mayoría de las consultas SQL analíticas.


Conclusiones clave de esta lección:

  • SQL es el lenguaje central para trabajar con bases de datos relacionales.
  • SQL es declarativo: describes el resultado, no el algoritmo de ejecución.
  • SQL incluye subconjuntos: DQL, DDL, DML, DCL y TCL.
  • Las consultas se construyen a partir de sentencias, cláusulas, expresiones e identificadores.
  • Un marco de consulta básico es SELECT ... FROM ... WHERE ....

Preguntas Frecuentes

¿Es SQL un lenguaje de programación o un lenguaje de consulta?

SQL se describe generalmente como un lenguaje de consulta. No es un lenguaje de programación de propósito general, pero es el estándar para trabajar con datos relacionales.

¿Por qué es útil conocer los subconjuntos de SQL?

Los subconjuntos te ayudan a entender rápidamente el propósito de un comando: recuperación de datos, cambios en el esquema, control de acceso o manejo de transacciones.

¿Puedo escribir SQL de la misma manera en cada RDBMS?

Los constructos centrales son muy similares, pero los detalles de sintaxis y las funciones integradas pueden diferir entre MariaDB, PostgreSQL, SQL Server y otros sistemas.

Preguntas de Entrevista

¿Cómo explicarías SQL en una respuesta corta?

SQL es el lenguaje estándar para gestionar y consultar datos en bases de datos relacionales. Se utiliza para leer y modificar datos, gestionar objetos de esquema y controlar transacciones.

¿Cuál es la diferencia entre DDL y DML?

DDL define y cambia la estructura de la base de datos (tablas, índices, esquemas), mientras que DML trabaja con los datos de la tabla (insertando, actualizando, eliminando filas).

¿Cuáles son las partes centrales de una consulta SQL básica?

Una consulta básica generalmente incluye SELECT (qué devolver), FROM (qué tabla leer) y WHERE (qué filas filtrar).

En la próxima lección, pasaremos a los tipos de comandos SQL y veremos cómo se aplican en tareas prácticas.