Lección 87 — Qué Es SQL: Consultas Básicas y Ejemplos
Comprender qué es SQL es uno de los pasos más importantes para aprender a trabajar con bases de datos relacionales. SQL es un lenguaje que permite consultar, organizar y administrar información almacenada en sistemas de bases de datos. Gracias a sus instrucciones, podemos encontrar registros específicos, seleccionar columnas, ordenar resultados y combinar información procedente de diferentes tablas.
Imagina una tienda de computadoras que tiene miles de productos registrados. Si necesitas conocer cuáles cuestan menos de $1,000, no sería práctico revisar cada producto manualmente. Mediante una consulta SQL, el sistema puede recuperar los registros que cumplen esa condición.
En esta lección aprenderás los fundamentos del lenguaje SQL mediante explicaciones sencillas, ejemplos de consultas y ejercicios prácticos. No necesitas experiencia previa en SQL: comenzaremos con las instrucciones más importantes para consultar información.
¿Qué aprenderás en esta lección?
Al finalizar, podrás:
Explicar qué es SQL y para qué sirve.
Reconocer su relación con las bases de datos relacionales.
Comprender la estructura básica de una consulta.
Utilizar
SELECTyFROMpara recuperar información.Aplicar condiciones mediante
WHERE.Utilizar operadores de comparación y operadores lógicos.
Ordenar resultados con
ORDER BY.Obtener valores diferentes mediante
DISTINCT.Comprender el funcionamiento introductorio de
JOIN.Interpretar y escribir consultas SQL sencillas.
¿Qué es SQL?
SQL significa Structured Query Language, que en español se traduce como Lenguaje de Consulta Estructurado.
Es un lenguaje estandarizado utilizado para trabajar con bases de datos, especialmente con sistemas gestores relacionales.
Mediante SQL es posible realizar operaciones como:
Consultar información.
Insertar nuevos registros.
Actualizar datos existentes.
Eliminar registros.
Crear tablas.
Definir relaciones y restricciones.
Administrar determinados permisos, según el gestor.
En esta lección nos concentraremos principalmente en las consultas de recuperación de información, porque constituyen un excelente punto de partida para principiantes.
Ejemplo sencillo
Supongamos que una tienda tiene una tabla llamada Productos:
| ID | Producto | Precio |
|---|---|---|
| 1 | Memoria RAM | 850 |
| 2 | SSD | 1150 |
| 3 | Monitor | 2900 |
Si queremos conocer los nombres de todos los productos, podemos escribir:
SELECT Producto
FROM Productos;El resultado sería:
| Producto |
|---|
| Memoria RAM |
| SSD |
| Monitor |
La consulta solicita únicamente la columna Producto.
Importante: SQL es un lenguaje, no una base de datos ni un programa gestor.
¿Para qué sirve SQL?
SQL permite comunicarse con un sistema gestor de bases de datos para realizar operaciones sobre la información almacenada.
Entre sus aplicaciones principales se encuentran las siguientes.
Consultar información
Permite buscar registros y seleccionar los datos que necesitamos.
Ejemplo: encontrar productos cuyo precio sea inferior a determinada cantidad.
Insertar registros
Permite agregar nuevos datos a una tabla mediante instrucciones como INSERT.
Ejemplo: registrar un nuevo producto.
Actualizar registros
Permite modificar información existente mediante UPDATE.
Ejemplo: cambiar el precio de un producto.
Eliminar registros
Permite retirar datos mediante DELETE, respetando las restricciones establecidas.
Ejemplo: eliminar un registro de prueba.
Definir estructuras
Mediante instrucciones como CREATE TABLE, es posible crear tablas y establecer sus características.
Ejemplo: definir una tabla para almacenar información de clientes.
Relacionar información
Permite recuperar datos de varias tablas relacionadas.
Ejemplo: consultar los pedidos de un cliente y los productos incluidos.
Aunque SQL admite muchas operaciones, nuestro objetivo principal será aprender a leer y comprender consultas básicas.
¿Cómo funciona una consulta SQL?
Cuando una aplicación necesita información, puede enviar una consulta al sistema gestor de bases de datos.
De manera simplificada, el proceso es el siguiente:
El usuario solicita información mediante una aplicación.
La aplicación envía una consulta SQL al sistema gestor.
El gestor interpreta y ejecuta la consulta.
El sistema obtiene los datos correspondientes.
La aplicación presenta los resultados.
Ejemplo práctico
Un empleado necesita consultar los productos con existencias disponibles.
La aplicación podría ejecutar:
SELECT Producto, Existencia
FROM Productos
WHERE Existencia > 0;Esta instrucción solicita los nombres y las existencias de los productos cuya cantidad disponible es mayor que cero.
El sistema gestor se encarga de procesar la consulta y devolver los resultados.
Estructura básica de una consulta SQL
Una consulta sencilla puede contener tres elementos fundamentales:
SELECT columna
FROM tabla
WHERE condicion;Cada palabra cumple una función específica.
| Elemento | Función |
|---|---|
SELECT | Indica qué columnas recuperar |
FROM | Especifica la tabla consultada |
WHERE | Establece condiciones de filtrado |
; | Marca el final de la instrucción |
La cláusula WHERE es opcional.
El punto y coma se utiliza como terminador de instrucciones; su obligatoriedad depende de la herramienta o del contexto de ejecución.
¿Por qué algunas palabras aparecen en mayúsculas?
Es habitual escribir palabras clave como SELECT, FROM y WHERE en mayúsculas para facilitar la lectura.
En los gestores habituales, estas palabras clave no distinguen entre mayúsculas y minúsculas.
Sin embargo, las reglas para identificar nombres de tablas y columnas pueden variar según el sistema y su configuración.
SELECT: cómo seleccionar información
La instrucción SELECT permite indicar qué columnas deseamos recuperar.
Utilizaremos la siguiente tabla durante varios ejemplos.
Tabla Productos
| ID | Producto | Categoria | Precio | Existencia |
|---|---|---|---|---|
| 1 | Memoria RAM | Componentes | 850 | 25 |
| 2 | SSD | Almacenamiento | 1150 | 18 |
| 3 | Monitor | Periféricos | 2900 | 8 |
| 4 | Teclado | Periféricos | 450 | 30 |
| 5 | Procesador | Componentes | 3200 | 12 |
| 6 | Mouse | Periféricos | 350 | 40 |
Seleccionar una columna
SELECT Producto
FROM Productos;Esta consulta recupera los nombres de todos los productos.
Seleccionar varias columnas
SELECT Producto, Precio
FROM Productos;Resultado:
| Producto | Precio |
|---|---|
| Memoria RAM | 850 |
| SSD | 1150 |
| Monitor | 2900 |
| Teclado | 450 |
| Procesador | 3200 |
| Mouse | 350 |
Seleccionar todas las columnas
SELECT *
FROM Productos;El asterisco * indica que deseamos recuperar todas las columnas disponibles.
Consejo: aunque SELECT * resulta útil para aprender y explorar tablas pequeñas, en aplicaciones reales suele ser preferible solicitar únicamente las columnas necesarias.
WHERE: cómo filtrar registros
La cláusula WHERE permite establecer condiciones que deben cumplir los registros.
Por ejemplo, si queremos encontrar productos cuyo precio sea inferior a $1,000:
SELECT Producto, Precio
FROM Productos
WHERE Precio < 1000;Resultado:
| Producto | Precio |
|---|---|
| Memoria RAM | 850 |
| Teclado | 450 |
| Mouse | 350 |
Buscar un valor específico
SELECT Producto, Precio
FROM Productos
WHERE Categoria = 'Periféricos';Esta consulta recupera los productos pertenecientes a la categoría Periféricos.
Los valores de texto se escriben normalmente entre comillas simples.
Diferencia entre seleccionar y filtrar
SELECTdetermina qué columnas se mostrarán.WHEREdetermina qué registros cumplen la condición.
Ambas cláusulas pueden utilizarse juntas.
Operadores de comparación en SQL
Los operadores permiten comparar valores dentro de una condición.
| Operador | Significado | Ejemplo |
|---|---|---|
= | Igual a | Precio = 850 |
<> | Diferente de | Precio <> 850 |
> | Mayor que | Precio > 1000 |
< | Menor que | Precio < 1000 |
>= | Mayor o igual que | Precio >= 1000 |
<= | Menor o igual que | Precio <= 1000 |
Ejemplo: productos costosos
SELECT Producto, Precio
FROM Productos
WHERE Precio >= 2000;Resultado:
| Producto | Precio |
|---|---|
| Monitor | 2900 |
| Procesador | 3200 |
Ejemplo: productos diferentes de una categoría
SELECT Producto, Categoria
FROM Productos
WHERE Categoria <> 'Periféricos';Esta consulta recupera los productos cuya categoría no es Periféricos.
Operadores lógicos AND, OR y NOT
Los operadores lógicos permiten combinar o negar condiciones.
AND: cumplir varias condiciones
AND requiere que ambas condiciones sean verdaderas.
SELECT Producto, Precio
FROM Productos
WHERE Precio < 1000
AND Existencia > 30;Resultado:
| Producto | Precio |
|---|---|
| Mouse | 350 |
El Mouse cumple ambas condiciones: cuesta menos de $1,000 y tiene más de 30 unidades disponibles.
OR: cumplir al menos una condición
SELECT Producto, Categoria
FROM Productos
WHERE Categoria = 'Componentes'
OR Categoria = 'Almacenamiento';Esta consulta recupera productos de cualquiera de las dos categorías.
NOT: negar una condición
SELECT Producto, Categoria
FROM Productos
WHERE NOT Categoria = 'Periféricos';Esta instrucción recupera los productos que no pertenecen a Periféricos, suponiendo valores de categoría no nulos.
Uso de paréntesis
Cuando se combinan varias condiciones, los paréntesis ayudan a establecer claramente el orden lógico.
SELECT Producto, Precio
FROM Productos
WHERE (Categoria = 'Componentes'
OR Categoria = 'Periféricos')
AND Precio < 1000;La consulta recupera productos de las categorías indicadas cuyo precio sea inferior a $1,000.
ORDER BY: cómo ordenar resultados
La cláusula ORDER BY permite organizar los registros según una o varias columnas.
Orden ascendente
SELECT Producto, Precio
FROM Productos
ORDER BY Precio ASC;Resultado:
| Producto | Precio |
|---|---|
| Mouse | 350 |
| Teclado | 450 |
| Memoria RAM | 850 |
| SSD | 1150 |
| Monitor | 2900 |
| Procesador | 3200 |
ASC significa orden ascendente.
Orden descendente
SELECT Producto, Precio
FROM Productos
ORDER BY Precio DESC;Resultado:
| Producto | Precio |
|---|---|
| Procesador | 3200 |
| Monitor | 2900 |
| SSD | 1150 |
| Memoria RAM | 850 |
| Teclado | 450 |
| Mouse | 350 |
DESC significa orden descendente.
Combinar WHERE y ORDER BY
SELECT Producto, Precio
FROM Productos
WHERE Precio < 1500
ORDER BY Precio DESC;Esta consulta recupera productos con precios inferiores a $1,500 y los presenta del más caro al más económico.
Importante: si una consulta no incluye ORDER BY, no debe suponerse que sus resultados aparecerán siempre en un orden determinado.
DISTINCT: cómo obtener valores diferentes
En ocasiones, una columna contiene valores repetidos.
Por ejemplo, varios productos pertenecen a la categoría Periféricos.
Si queremos conocer únicamente las categorías diferentes:
SELECT DISTINCT Categoria
FROM Productos;El resultado contiene:
| Categoria |
|---|
| Componentes |
| Almacenamiento |
| Periféricos |
La palabra DISTINCT elimina las filas duplicadas del resultado de la consulta.
Diferencia importante
DISTINCT no elimina registros de la tabla original.
Solamente evita mostrar resultados duplicados en la consulta.
Si se seleccionan varias columnas, la comparación se realiza sobre la combinación de valores seleccionados.
LIKE: cómo buscar patrones de texto
La cláusula LIKE permite realizar comparaciones mediante patrones.
Es especialmente útil para búsquedas sencillas de texto.
Buscar nombres que comiencen con una letra
SELECT Producto
FROM Productos
WHERE Producto LIKE 'M%';Resultado:
| Producto |
|---|
| Memoria RAM |
| Monitor |
| Mouse |
El símbolo % representa una secuencia de cero o más caracteres.
Buscar nombres que contengan una expresión
SELECT Producto
FROM Productos
WHERE Producto LIKE '%RAM%';Esta consulta recupera nombres que contienen la expresión RAM.
Importante: la sensibilidad a mayúsculas, minúsculas y acentos depende del gestor y de la configuración de comparación de texto.
IN y BETWEEN: consultas con varias posibilidades
Estas expresiones facilitan la escritura de determinadas condiciones.
IN: buscar entre varios valores
SELECT Producto, Categoria
FROM Productos
WHERE Categoria IN ('Componentes', 'Periféricos');Esta consulta selecciona productos que pertenecen a cualquiera de las categorías indicadas.
BETWEEN: consultar un intervalo
SELECT Producto, Precio
FROM Productos
WHERE Precio BETWEEN 500 AND 1500;Resultado:
| Producto | Precio |
|---|---|
| Memoria RAM | 850 |
| SSD | 1150 |
BETWEEN incluye ambos extremos del intervalo.
En este caso, se consideran precios mayores o iguales que 500 y menores o iguales que 1500.
COUNT: cómo contar registros
SQL permite realizar operaciones sencillas de resumen mediante funciones de agregación.
Una de las más utilizadas es COUNT.
Contar todos los registros
SELECT COUNT(*)
FROM Productos;Resultado:
| COUNT(*) |
|---|
| 6 |
La consulta indica que existen seis registros en la tabla.
Asignar un nombre al resultado
SELECT COUNT(*) AS TotalProductos
FROM Productos;Resultado:
| TotalProductos |
|---|
| 6 |
La palabra AS permite establecer un alias para una columna o expresión.
Contar registros que cumplen una condición
SELECT COUNT(*) AS ProductosEconomicos
FROM Productos
WHERE Precio < 1000;Resultado:
| ProductosEconomicos |
|---|
| 3 |
Recuerda: COUNT(*) cuenta las filas que cumplen las condiciones de la consulta. COUNT(columna) cuenta los valores no nulos de esa columna.
JOIN: cómo consultar información de varias tablas
En la lección anterior aprendiste que las bases de datos relacionales organizan información mediante tablas conectadas por claves.
SQL permite consultar esa información utilizando operaciones de combinación, como JOIN.
Tabla Clientes
| ID_Cliente | Nombre |
|---|---|
| 1 | Ana |
| 2 | Luis |
Tabla Pedidos
| ID_Pedido | ID_Cliente | Total |
|---|---|---|
| 101 | 1 | 850 |
| 102 | 1 | 1150 |
| 103 | 2 | 2900 |
Si queremos mostrar el nombre del cliente junto con el total de cada pedido:
SELECT Clientes.Nombre, Pedidos.Total
FROM Clientes
INNER JOIN Pedidos
ON Clientes.ID_Cliente = Pedidos.ID_Cliente;Resultado:
| Nombre | Total |
|---|---|
| Ana | 850 |
| Ana | 1150 |
| Luis | 2900 |
¿Qué hace esta consulta?
SELECTindica las columnas que se mostrarán.FROMestablece la tabla inicial.INNER JOINcombina filas de las tablas cuando cumplen la condición.ONespecifica cómo se relacionan.
En este ejemplo, ambas tablas se conectan mediante ID_Cliente.
¿Por qué es importante JOIN?
Porque permite recuperar información relacionada sin almacenar todos los datos repetidamente en una sola tabla.
Existen otros tipos de combinaciones, como LEFT JOIN, pero su estudio detallado corresponde a un nivel más avanzado.
Buenas prácticas al escribir consultas SQL
Aunque estamos comenzando, conviene desarrollar hábitos correctos desde el principio.
Escribe consultas legibles
Utiliza saltos de línea para separar las cláusulas.
Por ejemplo:
SELECT Producto, Precio
FROM Productos
WHERE Precio < 1000
ORDER BY Precio ASC;
Solicita solamente las columnas necesarias
Evita recuperar información que no utilizarás.
Comprueba las condiciones
Antes de ejecutar consultas, verifica que los filtros representan lo que realmente necesitas.
Respeta los permisos
No todos los usuarios deben tener acceso a toda la información.
Comprende la estructura de las tablas
Identifica los campos, tipos de datos y relaciones antes de construir consultas.
Evita construir consultas inseguras
En aplicaciones reales, los valores proporcionados por usuarios deben manejarse mediante consultas parametrizadas y otras prácticas de seguridad.
Esto ayuda a prevenir ataques como la inyección SQL.
Importante: no es necesario dominar estos mecanismos de seguridad todavía, pero sí reconocer su importancia.
Errores comunes al aprender SQL
Confundir SQL con MySQL
SQL es un lenguaje.
MySQL es un sistema gestor de bases de datos que utiliza SQL.
Escribir nombres de columnas inexistentes
Una consulta debe utilizar los nombres de campos definidos en la tabla.
Omitir comillas en valores de texto
En SQL estándar, los literales de texto se escriben entre comillas simples.
Confundir SELECT con WHERE
SELECT determina qué columnas recuperar.
WHERE establece qué filas cumplen las condiciones.
Suponer que los resultados siempre tienen un orden fijo
Para garantizar un orden específico, utiliza ORDER BY.
Olvidar las condiciones de una combinación
Una combinación incorrecta entre tablas puede producir resultados inesperados o una cantidad excesiva de filas.
Confundir DISTINCT con DELETE
DISTINCT modifica la presentación del resultado.
DELETE elimina registros de una tabla y debe utilizarse con especial precaución.
Actividad práctica: realiza tus primeras consultas SQL
Imagina que trabajas en una tienda de tecnología.
La empresa tiene una tabla llamada Productos.
| ID | Producto | Categoria | Precio | Existencia |
|---|---|---|---|---|
| 1 | Memoria RAM | Componentes | 850 | 25 |
| 2 | SSD | Almacenamiento | 1150 | 18 |
| 3 | Monitor | Periféricos | 2900 | 8 |
| 4 | Teclado | Periféricos | 450 | 30 |
| 5 | Procesador | Componentes | 3200 | 12 |
| 6 | Mouse | Periféricos | 350 | 40 |
Resuelve los siguientes ejercicios antes de consultar las respuestas.
Ejercicio A: seleccionar columnas
Escribe una consulta que muestre solamente los nombres y precios de todos los productos.
Ejercicio B: aplicar condiciones
Escribe una consulta que muestre los productos cuyo precio sea inferior a $1,000.
Ejercicio C: ordenar resultados
Escribe una consulta que muestre los productos ordenados del más caro al más económico.
Ejercicio D: consultar una categoría
Escribe una consulta que muestre los productos pertenecientes a la categoría Periféricos.
Ejercicio E: combinar condiciones
Escribe una consulta que muestre los productos con existencia mayor que 20 y precio inferior a $1,000.
Ejercicio F: eliminar duplicados en resultados
Escribe una consulta que muestre las categorías diferentes registradas en la tabla.
Ejercicio G: contar registros
Escribe una consulta que indique cuántos productos existen.
Soluciones de los ejercicios
Solución A
SELECT Producto, Precio
FROM Productos;Recupera las columnas Producto y Precio.
Solución B
SELECT Producto, Precio
FROM Productos
WHERE Precio < 1000;Resultado: Memoria RAM, Teclado y Mouse.
Solución C
SELECT Producto, Precio
FROM Productos
ORDER BY Precio DESC;Ordena los productos de mayor a menor precio.
Solución D
SELECT Producto, Categoria
FROM Productos
WHERE Categoria = 'Periféricos';Resultado: Monitor, Teclado y Mouse.
Solución E
SELECT Producto, Precio, Existencia
FROM Productos
WHERE Existencia > 20
AND Precio < 1000;Resultado: Memoria RAM, Teclado y Mouse.
Los tres productos cumplen ambas condiciones.
Solución F
SELECT DISTINCT Categoria
FROM Productos;Recupera las categorías diferentes sin repetirlas en el resultado.
Solución G
SELECT COUNT(*) AS TotalProductos
FROM Productos;Resultado: 6 productos.
Desafío adicional: interpreta una consulta completa
Observa la siguiente instrucción:
SELECT Producto, Precio
FROM Productos
WHERE Categoria = 'Periféricos'
AND Precio < 1000
ORDER BY Precio ASC;Sin ejecutar la consulta, responde:
¿Qué columnas se mostrarán?
¿Qué categoría se está buscando?
¿Cuál es el precio máximo permitido por la condición?
¿En qué orden aparecerán los resultados?
¿Qué productos cumplen los requisitos?
Respuesta
Se mostrarán las columnas Producto y Precio.
La consulta buscará productos de la categoría Periféricos cuyo precio sea estrictamente inferior a $1,000.
Los resultados aparecerán ordenados de menor a mayor precio.
| Producto | Precio |
|---|---|
| Mouse | 350 |
| Teclado | 450 |
El Monitor no aparece porque su precio es superior al límite establecido.
Lo que has aprendido
Al finalizar esta lección, ya puedes:
Explicar qué es SQL y reconocer su importancia en las bases de datos relacionales.
Distinguir SQL de un sistema gestor como MySQL.
Comprender la estructura básica de una consulta.
Utilizar SELECT y FROM para recuperar información.
Aplicar WHERE para filtrar registros.
Combinar condiciones mediante operadores de comparación y lógicos.
Ordenar resultados con ORDER BY.
Obtener valores distintos mediante DISTINCT.
Buscar patrones utilizando LIKE.
Consultar intervalos y conjuntos mediante BETWEEN e IN.
Contar registros con COUNT.
Comprender el funcionamiento básico de JOIN.
Interpretar y escribir consultas SQL sencillas.
Conclusión
Comprender qué es SQL permite dar un paso fundamental desde la organización de datos hacia su consulta y aprovechamiento.
En la lección anterior aprendiste cómo el modelo relacional utiliza tablas, registros, campos y claves para estructurar información. Ahora sabes que SQL proporciona instrucciones para recuperar datos, aplicar filtros, ordenar resultados y combinar información de tablas relacionadas.
Las consultas básicas constituyen el punto de partida para desarrollar habilidades más avanzadas en bases de datos, análisis de información y aplicaciones informáticas.
Lo más importante no es memorizar todas las instrucciones inmediatamente, sino comprender su lógica y practicar con ejemplos sencillos.
Con estos conocimientos, ya puedes comenzar a interpretar y construir consultas que responden preguntas reales sobre la información almacenada.
