Cálculos y alias
SQL · Unidad 1: Primeras consultas
- Gratis
- SQL
- 12 ejercicios
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
| nombre | precio * 0.5 |
|---|---|
| Teclado | 22.75 |
| Ratón | 9.95 |
| Monitor | 94.5 |
| Cable | 2.625 |
| Portátil | 449.5 |
| Tableta | 160 |
| Audífonos | 29.95 |
| Parlante | 37 |
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
| nombre | quedan |
|---|---|
| Teclado | 11 |
| Ratón | 29 |
| Monitor | 4 |
| Cable | -1 |
| Portátil | 2 |
| Tableta | 6 |
| Audífonos | 14 |
| 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. 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. Predice la salida
El Monitor cuesta 189. ¿Qué devuelve esta consulta?
SELECT 189 * 0.5;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. Opción múltiple
El catálogo impreso dice «producto», no «nombre». ¿Qué cambia
AS productoen esta consulta?SELECT nombre AS producto FROM productos;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
valorpara el Parlante?SELECT nombre, precio * stock AS valor FROM productos;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. 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. Predice la salida
¿Qué devuelve esta consulta?
SELECT '2 + 3';9. Predice la salida
¿Qué devuelve esta consulta?
SELECT 'Ana' || 'Lima';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. 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. 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 suprecioa la mitad, con el aliasoferta.SELECT nombre, precio FROM productos;
Se abre en el navegador. Es gratis y no hace falta cuenta para empezar.