Saltar al contenido

Cálculos y alias

SQL · Unidad 1: Primeras consultas

La tienda va a liquidar todo a mitad de precio. ¿En cuánto queda cada cosa? Ese número no está guardado, pero se puede calcular.

En el SELECT caben cuentas con +, - y *, y SQL las hace en cada fila. Entre dos valores, el * multiplica: solo cuando va solo significa todas las columnas.

SELECT nombre, precio * 0.5
FROM productos;

Devuelve

nombreprecio * 0.5
Teclado22.75
Ratón9.95
Monitor94.5
Cable2.625
Portátil449.5
Tableta160
Audífonos29.95
Parlante37

Una cuenta suelta no necesita tabla, así que va sin FROM y devuelve una sola fila. Sirve para probar una cuenta antes de usarla con toda una columna.

Los decimales van con punto. Con coma, SQL lee dos columnas: 100 * 0,5 da un 0 y un 5.

SELECT 100 * 0.5;

Devuelve

100 * 0.5
50

Una columna calculada no tiene nombre. SQLite le pone la cuenta como título, y algunas bases le ponen algo peor. AS le da un nombre, que se llama alias.

El alias es una sola palabra. Si necesitas dos, únelas con _.

SELECT nombre,
  stock - 1 AS quedan
FROM productos;

Devuelve

nombrequedan
Teclado11
Ratón29
Monitor4
Cable-1
Portátil2
Tableta6
Audífonos14
Parlante-1

Hasta aquí todo lo que has escrito son palabras de SQL, nombres y números. Un texto tuyo va entre comillas simples, como 'Oferta'.

Las comillas le dicen a SQL que no lo busque ni lo calcule: sale tal cual.

SELECT 'Oferta' AS letrero;

Devuelve

letrero
Oferta

|| pega un texto con el siguiente. Así se arma un saludo distinto en cada fila, con una parte fija y otra que sale de la tabla.

No agrega espacios: si quieres uno, va dentro de las comillas. En MySQL esto se escribe con CONCAT().

SELECT 'Hola, ' || nombre
  AS saludo
FROM clientes;

Devuelve

saludo
Hola, Ana
Hola, Luis
Hola, Sofía
Hola, Mateo
Hola, Valeria
Hola, Diego
Hola, Camila
Hola, Bruno

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Completa el código

    Un cliente quiere llevarse una unidad de cada producto. Completa para ver cuánto stock quedaría.

    SELECT nombre, stock ___ 1
    FROM productos;
  2. 2. Predice la salida

    El Monitor cuesta 189. ¿Qué devuelve esta consulta?

    SELECT 189 * 0.5;
  3. 3. Completa el código

    Hay promoción para quien lleve dos unidades iguales. Completa para que la columna con lo que cuestan las dos se llame el_par.

    SELECT nombre,
      precio * 2 ___ el_par
    FROM productos;
  4. 4. Opción múltiple

    El catálogo impreso dice «producto», no «nombre». ¿Qué cambia AS producto en esta consulta?

    SELECT nombre AS producto
    FROM productos;
  5. 5. Opción múltiple

    El dueño pregunta cuánto dinero tiene guardado en el almacén. El Parlante cuesta 74 y su stock es 0. ¿Qué sale en la columna valor para el Parlante?

    SELECT nombre,
      precio * stock AS valor
    FROM productos;
  6. 6. Encuentra el bug

    Cada envío cuesta 10, y la tienda quiere ver el precio de cada producto con el envío incluido. SQL se queja de la palabra envio. ¿Qué línea tiene el error?

    SELECT nombre,
      precio + 10 AS con envio
    FROM productos;
  7. 7. Ordena las líneas

    Mañana llega un camión con 10 unidades de cada producto. Ordena para ver cuánto habrá de cada uno, en una columna llamada con_camion. Sobra una línea.

  8. 8. Predice la salida

    ¿Qué devuelve esta consulta?

    SELECT '2 + 3';
  9. 9. Predice la salida

    ¿Qué devuelve esta consulta?

    SELECT 'Ana' || 'Lima';
  10. 10. Ordena las líneas

    La ficha de cada producto lleva la sección delante, por ejemplo «Accesorios: Teclado». Ordena la consulta que las arma. Sobra una línea.

  11. 11. Encuentra el bug

    Cada paquete lleva una etiqueta con el nombre de quien lo recibe, por ejemplo «Para Ana». Esta consulta corre sin error, pero las etiquetas salen mal. ¿Qué línea tiene el error?

    SELECT 'Para ' || 'nombre'
      AS etiqueta
    FROM clientes;
  12. 12. Escribe el código

    Arma los letreros de la liquidación. De cada producto, muestra dos columnas. La primera es un texto como «Oferta: Teclado», con un espacio después de los dos puntos, y lleva el alias letrero. La segunda es su precio a la mitad, con el alias oferta.

    SELECT nombre, precio
    FROM productos;
Hacer esta lección

Se abre en el navegador. Es gratis y no hace falta cuenta para empezar.

Ver todas las lecciones →