Consultar datos: SELECT

Intermedio
SQL
SQL
Actualizado: 11/06/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

SELECT y FROM básico

La sentencia SELECT es el corazón de SQL y constituye la forma fundamental de recuperar datos de una base de datos. Esta instrucción permite consultar información almacenada en tablas y es probablemente la operación más utilizada en el día a día con bases de datos. La estructura básica de una consulta SELECT siempre incluye esta palabra clave junto con FROM para indicar de dónde obtener los datos.

Estructura básica de una consulta SELECT

La sintaxis más simple de una consulta SELECT tiene esta estructura:

SELECT columna1, columna2, ... 
FROM nombre_tabla;

Donde:

  • SELECT indica que queremos recuperar datos
  • Las columnas especificadas son los campos que deseamos obtener
  • FROM especifica la tabla de donde extraeremos los datos

Por ejemplo, si tenemos una tabla llamada empleados, podemos obtener los nombres y apellidos de todos los empleados con:

SELECT nombre, apellido 
FROM empleados;

Seleccionar todas las columnas

Si queremos recuperar todas las columnas de una tabla, podemos utilizar el asterisco (*) como comodín:

SELECT * 
FROM empleados;

Este tipo de consulta devuelve todas las columnas disponibles en la tabla empleados, en el orden en que están definidas en la estructura de la tabla. Aunque es conveniente para consultas rápidas, no se recomienda en entornos de producción por razones de rendimiento y claridad.

Ejemplos prácticos

Veamos algunos ejemplos prácticos utilizando una tabla productos:

-- Seleccionar solo el nombre y precio de los productos
SELECT nombre, precio 
FROM productos;

-- Seleccionar todas las columnas de la tabla clientes
SELECT * 
FROM clientes;

-- Seleccionar el ID y fecha de las ventas
SELECT id_venta, fecha 
FROM ventas;

Orden de ejecución

Es importante entender que aunque escribimos primero SELECT y luego FROM, el motor de base de datos ejecuta primero la cláusula FROM para identificar la tabla, y luego aplica el SELECT para filtrar las columnas. Este conocimiento será útil cuando trabajemos con consultas más complejas.

Buenas prácticas

Al trabajar con SELECT, es recomendable seguir estas prácticas:

  • Especificar las columnas necesarias en lugar de usar *, especialmente en tablas grandes
  • Mantener consistencia en el formato de las consultas (mayúsculas para palabras clave SQL)
  • Terminar las consultas con punto y coma (;)
  • Usar nombres descriptivos para tablas y columnas

Consideraciones de rendimiento

Cuando trabajamos con tablas que contienen muchos registros o columnas, seleccionar solo las columnas necesarias puede mejorar significativamente el rendimiento:

-- Mejor rendimiento que SELECT *
SELECT id_cliente, nombre, email 
FROM clientes;

Esta consulta transferirá menos datos desde el servidor de base de datos, lo que resulta en una ejecución más rápida, especialmente cuando la tabla contiene columnas con datos extensos como texto largo o imágenes.

Compatibilidad entre MySQL y PostgreSQL

La sintaxis básica de SELECT y FROM es estándar y funciona de manera idéntica tanto en MySQL como en PostgreSQL. Esto facilita el aprendizaje inicial de SQL, ya que los conceptos fundamentales son transferibles entre diferentes sistemas de gestión de bases de datos.

-- Esta consulta funciona igual en MySQL y PostgreSQL
SELECT nombre, descripcion, precio 
FROM productos;

La estructura básica de SELECT y FROM constituye el fundamento sobre el cual construiremos consultas más complejas a medida que avancemos en el aprendizaje de SQL. Dominar estos conceptos es esencial antes de adentrarse en filtros, ordenación y funciones agregadas.

¿Te está gustando esta lección?

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Selección de columnas

La selección de columnas es una técnica fundamental en SQL que permite especificar exactamente qué datos queremos recuperar de una tabla. En lugar de obtener toda la información disponible, podemos filtrar solo las columnas relevantes para nuestra necesidad específica.

Selección de columnas específicas

Cuando trabajamos con bases de datos, es común que las tablas contengan numerosas columnas, pero para una consulta particular solo necesitemos algunas de ellas. La sintaxis para seleccionar columnas específicas es:

SELECT columna1, columna2, columna3
FROM nombre_tabla;

Por ejemplo, si tenemos una tabla clientes con muchos campos, pero solo necesitamos información de contacto:

SELECT nombre, telefono, email
FROM clientes;

Esta consulta devuelve únicamente las tres columnas especificadas para todos los registros de la tabla clientes.

Orden de las columnas en el resultado

Un aspecto importante a considerar es que el orden en que listamos las columnas en la cláusula SELECT determina el orden en que aparecerán en el resultado:

-- Las columnas aparecerán en este orden: email, nombre, telefono
SELECT email, nombre, telefono
FROM clientes;

Esto nos permite organizar la información de salida según nuestras necesidades, independientemente de cómo estén organizadas las columnas en la estructura de la tabla.

Selección de columnas con tipos de datos diferentes

Las tablas suelen contener columnas con diversos tipos de datos. Podemos seleccionar cualquier combinación de columnas sin importar su tipo:

SELECT id_producto, nombre, precio, fecha_creacion, disponible
FROM productos;

En este ejemplo, estamos seleccionando:

  • id_producto (entero)
  • nombre (texto)
  • precio (decimal)
  • fecha_creacion (fecha)
  • disponible (booleano)

Selección de columnas calculadas

También podemos realizar operaciones aritméticas con las columnas como parte de la selección:

SELECT nombre, precio, precio * 0.21 
FROM productos;

Esta consulta devuelve el nombre del producto, su precio y el valor del IVA (21% del precio).

Selección de columnas con valores literales

Podemos incluir valores constantes en nuestra selección de columnas:

SELECT nombre, 'Euros' AS moneda, precio
FROM productos;

Esta consulta devuelve el nombre del producto, la palabra "Euros" para cada fila, y el precio.

Selección de columnas con funciones

Las columnas seleccionadas pueden incluir el resultado de funciones aplicadas a los datos:

SELECT nombre, UPPER(categoria), LENGTH(descripcion)
FROM productos;

Esta consulta devuelve el nombre del producto, la categoría en mayúsculas y la longitud de la descripción.

Consideraciones de rendimiento

La selección adecuada de columnas tiene un impacto significativo en el rendimiento:

  • Reduce el tráfico de red: Al transferir solo los datos necesarios
  • Disminuye el uso de memoria: Tanto en el servidor como en la aplicación cliente
  • Mejora la velocidad de ejecución: Especialmente con columnas de tipo texto largo o BLOB

Por ejemplo, si una tabla articulos tiene una columna contenido que almacena textos extensos:

-- Consulta eficiente que evita transferir la columna de contenido extenso
SELECT id, titulo, fecha_publicacion
FROM articulos
WHERE categoria = 'tecnologia';

Diferencias sutiles entre MySQL y PostgreSQL

Aunque la selección básica de columnas funciona igual en ambos sistemas, existen algunas diferencias en el comportamiento de ciertas funciones:

En MySQL:

SELECT nombre, LEFT(descripcion, 50) AS resumen
FROM productos;

En PostgreSQL:

SELECT nombre, SUBSTRING(descripcion, 1, 50) AS resumen
FROM productos;

Ambas consultas logran el mismo resultado (extraer los primeros 50 caracteres), pero utilizan funciones con nombres diferentes según el sistema de gestión de base de datos.

Buenas prácticas en la selección de columnas

Para mantener un código SQL eficiente y mantenible:

  • Evita seleccionar columnas innecesarias: Cada columna adicional consume recursos
  • Nombra explícitamente las columnas: Evita usar SELECT * excepto en consultas exploratorias
  • Mantén un orden lógico: Organiza las columnas de manera que facilite la lectura de los resultados
  • Considera el impacto en índices: La selección de columnas puede afectar qué índices utiliza el optimizador
-- Ejemplo de buena práctica
SELECT 
  id_pedido,
  fecha_pedido,
  total
FROM pedidos
WHERE fecha_pedido >= '2023-01-01';

La selección adecuada de columnas es una habilidad fundamental que mejora tanto la claridad del código como el rendimiento de las aplicaciones que interactúan con bases de datos.

Alias en consultas

Un alias es un nombre temporal que se asigna a una columna o tabla en una consulta SQL. Los alias permiten renombrar columnas para mejorar la legibilidad de los resultados y facilitar la referencia a expresiones complejas.

Sintaxis básica de alias para columnas

La palabra clave AS se utiliza para crear alias, aunque en muchos casos es opcional:

SELECT columna AS nuevo_nombre
FROM tabla;

Por ejemplo, si queremos mostrar el precio con IVA de productos con nombres más descriptivos:

SELECT 
  nombre AS producto,
  precio AS precio_sin_iva,
  precio * 1.21 AS precio_con_iva
FROM productos;

El resultado mostrará las columnas con los nombres "producto", "precio_sin_iva" y "precio_con_iva" en lugar de los nombres originales.

Alias sin la palabra AS

La palabra AS es opcional en la mayoría de los sistemas de bases de datos, por lo que también podemos escribir:

SELECT 
  nombre producto,
  precio precio_sin_iva,
  precio * 1.21 precio_con_iva
FROM productos;

Esta sintaxis produce el mismo resultado que el ejemplo anterior.

Alias con espacios o caracteres especiales

Si necesitamos que un alias contenga espacios o caracteres especiales, debemos encerrarlo entre comillas:

SELECT 
  nombre AS "Nombre del Producto",
  precio AS "Precio (€)",
  fecha_creacion AS "Fecha de Alta"
FROM productos;

En MySQL podemos usar comillas dobles o simples, mientras que PostgreSQL prefiere las comillas dobles para los alias.

Uso de alias en expresiones complejas

Los alias son especialmente útiles cuando trabajamos con expresiones complejas o funciones:

SELECT 
  CONCAT(nombre, ' ', apellido) AS nombre_completo,
  YEAR(fecha_nacimiento) AS año_nacimiento,
  DATEDIFF(CURRENT_DATE, fecha_contratacion)/365 AS años_en_empresa
FROM empleados;

Sin los alias, sería difícil referirse a estas columnas calculadas en los resultados.

Alias para mejorar la legibilidad de los resultados

Los alias pueden transformar nombres técnicos de columnas en etiquetas más comprensibles para los usuarios:

SELECT 
  p.prod_id AS "Código",
  p.prod_nombre AS "Artículo",
  p.prod_precio AS "Precio Unitario",
  c.cat_nombre AS "Categoría"
FROM productos p
JOIN categorias c ON p.cat_id = c.cat_id;

Alias en columnas calculadas

Cuando realizamos cálculos en las columnas, los alias son prácticamente imprescindibles:

SELECT 
  nombre,
  cantidad,
  precio_unitario,
  cantidad * precio_unitario AS subtotal,
  cantidad * precio_unitario * 0.21 AS iva,
  cantidad * precio_unitario * 1.21 AS total
FROM detalles_pedido;

Uso de alias con funciones de agregación

Los alias son muy útiles cuando trabajamos con funciones de agregación:

SELECT 
  COUNT(*) AS total_productos,
  AVG(precio) AS precio_promedio,
  MAX(precio) AS precio_maximo,
  MIN(precio) AS precio_minimo
FROM productos;

Consideraciones sobre los alias

Algunos puntos importantes a tener en cuenta:

  • Los alias solo existen durante la ejecución de la consulta
  • No modifican la estructura de la tabla ni los nombres reales de las columnas
  • Son útiles para aplicaciones que consumen los resultados de la consulta
  • Facilitan la compatibilidad cuando migramos entre diferentes sistemas de bases de datos

Diferencias entre MySQL y PostgreSQL

Existen algunas diferencias sutiles en el manejo de alias entre estos sistemas:

  • En MySQL, los alias de columna pueden referenciarse en cláusulas WHERE, GROUP BY y HAVING dentro de la misma consulta
  • En PostgreSQL, los alias de columna no pueden usarse en WHERE pero sí en GROUP BY y HAVING
-- Funciona en MySQL pero no en PostgreSQL
SELECT 
  precio * 1.21 AS precio_con_iva
FROM productos
WHERE precio_con_iva > 100;

-- Forma compatible con ambos sistemas
SELECT 
  precio * 1.21 AS precio_con_iva
FROM productos
WHERE precio * 1.21 > 100;

Los alias son una herramienta fundamental para crear consultas SQL más legibles y mantenibles, permitiendo que los resultados sean más comprensibles tanto para desarrolladores como para usuarios finales.

Aprendizajes de esta lección

  • Comprender la estructura básica de una consulta SELECT y la función de la cláusula FROM.
  • Aprender a seleccionar columnas específicas y todas las columnas de una tabla.
  • Conocer cómo utilizar alias para renombrar columnas y expresiones en las consultas.
  • Identificar buenas prácticas para optimizar consultas y mejorar la legibilidad del código SQL.
  • Diferenciar aspectos básicos de compatibilidad y diferencias entre MySQL y PostgreSQL en el uso de SELECT y alias.

Completa SQL y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración