sentencia-select-sql

Consultando datos en SQL con SELECT

  • 4 min

Si hay una palabra que vas a escribir miles de veces en tu carrera como desarrollador, esa es SELECT.

La sentencia SELECT es el comando fundamental del lenguaje SQL (y por extensión, de T-SQL). Su función es básica pero imprescindible: recuperar datos de la base de datos.

Con ella, podemos seleccionar columnas específicas, filtrar filas, ordenar resultados y realizar operaciones avanzadas sobre los datos.

Da igual lo bien estructurada y bonita y llena de datos que esté tu base de datos; si no sabes preguntarle lo que necesitas, básicamente no sirve de nada.

Sintaxis básica

La forma más elemental de una consulta (query) tiene dos partes:

SELECT columnas
FROM tabla;
Copied!
  1. SELECT: Indica qué columnas queremos ver
  2. FROM: Indica de qué tabla queremos sacar los datos

Por ejemplo,

SELECT Nombre, Apellido 
FROM Empleados;
Copied!

Cuando ejecutamos esto, SQL Server va a la tabla Empleados, coge todas las filas, y nos devuelve una tabla de resultados que solo contiene las columnas Nombre y Apellido.

Seleccionar todas las columnas SELECT *

A menudo verás (y usarás) el asterisco *. Esto es un comodín que significa “dame todas las columnas”.

SELECT * FROM Empleados;
Copied!

Esto devolverá todas las columnas de Empleados

Uso de Alias AS

A veces, los nombres de las columnas en la base de datos son técnicos o crípticos (ej: Emp_F_Nac). Cuando presentamos datos, queremos que sean legibles. Para esto usamos los Alias.

La palabra clave es AS.

SELECT 
    Nombre, 
    Apellido, 
    FechaNacimiento AS [Fecha de Nacimiento], -- Alias con espacios
    Email AS Correo
FROM Empleados;
Copied!

Esto no cambia nada en la base de datos, solo cambia el encabezado de la columna en el conjunto de resultados que recibimos.

Columnas calculadas

No estamos limitados a recuperar los datos tal cual están guardados. Podemos realizar operaciones matemáticas o manipulaciones de texto “al vuelo” dentro del propio SELECT.

Imagina que tenemos una tabla de productos con precio sin IVA.

SELECT 
    ProductoID,
    Nombre,
    Precio AS PrecioBase,
    Precio * 0.21 AS IVA,           -- Calculamos el impuesto
    Precio * 1.21 AS PrecioFinal    -- Calculamos el total
FROM Productos;

Copied!

También podemos unir varias columnas de texto en una sola. En T-SQL usamos el operador +.

SELECT 
    Nombre + ' ' + Apellido AS NombreCompleto 
FROM Empleados;
Copied!

Nota sobre Nulos: Si intentas sumar un texto con un NULL usando +, el resultado será NULL. Para evitar esto, solemos usar la función ISNULL() o CONCAT(), que veremos más adelante en el apartado de funciones.

Eliminando duplicados DISTINCT

A veces nuestra consulta devuelve filas idénticas y solo nos interesa saber los valores únicos.

Imagina que quieres saber en qué ciudades tienes clientes. Si haces un SELECT Ciudad FROM Clientes, te saldrá “Madrid” 500 veces si tienes 500 clientes allí.

Para obtener un listado limpio, usamos DISTINCT.

SELECT DISTINCT Ciudad 
FROM Clientes;
Copied!

Esto revisa el resultado y elimina las filas repetidas, dejándonos solo una aparición por cada valor único. También podemos combinarlo con varias columnas:

-- Nos devuelve combinaciones únicas de Ciudad y País
SELECT DISTINCT Ciudad, Pais 
FROM Clientes;
Copied!