La Sentencia SELECT Básica en SQL
Bienvenido a tu primera lección práctica sobre SQL. En este módulo aprenderás a utilizar la sentencia SELECT, que es sin duda la instrucción más importante y más utilizada en el mundo de las bases de datos relacionales. Con ella podrás recuperar información almacenada en tus tablas y transformar datos crudos en información útil.
¿Qué es SELECT y por qué es tan importante?
Imagina que tienes una biblioteca gigante llena de libros (tus datos). La sentencia SELECT sería como el bibliotecario que sabe exactamente dónde está cada libro y puede traerte exactamente los que necesitas, ignoring los que no te interesan.
"Saber SQL es como tener superpoderes para trabajar con datos. Con una sola instrucción SELECT puedes filtrar, ordenar y transformar millones de registros en segundos."
Sintaxis Básica de SELECT
La forma más simple de la sentencia SELECT selecciona todas las columnas de una tabla. Su sintaxis fundamental es:
SELECT columna1, columna2, ...
FROM nombre_tabla;
También puedes seleccionar TODAS las columnas usando el asterisco (*):
SELECT *
FROM nombre_tabla;
SELECT * es útil para explorar tablas, en producción es mejor especificar las columnas que necesitas. Esto hace tu código más rápido y predecible, especialmente si la estructura de la tabla cambia en el futuro.
Tablas de Ejemplo: Nuestra Base de Datos de Práctica
Para todos los ejemplos de esta lección, utilizaremos una base de datos de una tienda de electrónica llamada TechStore. Aquí está la tabla principal que usaremos:
| id_producto | nombre | categoria | precio | stock | marca |
|---|---|---|---|---|---|
| 1 | Laptop HP Pavilion | Computadoras | 899.99 | 25 | HP |
| 2 | Samsung Galaxy S23 | Smartphones | 799.99 | 50 | Samsung |
| 3 | Auriculares Sony | Audio | 149.99 | 100 | Sony |
| 4 | Monitor LG 27" | Periféricos | 299.99 | 30 | LG |
| 5 | iPhone 15 Pro | Smartphones | 1199.99 | 40 | Apple |
Ejemplos Prácticos Paso a Paso
- Seleccionar todas las columnas: Usa
SELECT *para ver toda la información de la tabla productos. - Seleccionar columnas específicas: Elige solo las columnas que necesitas para reducir la cantidad de datos.
- Usar alias de columnas: Renombra las columnas en el resultado para que sean más legibles.
- Combinar técnicas: Aplica todo junto para crear consultas más sofisticadas.
Ejemplo 1: Seleccionar todas las columnas
SELECT *
FROM productos;
Resultado:
| id_producto | nombre | categoria | precio | stock | marca |
|---|---|---|---|---|---|
| 1 | Laptop HP Pavilion | Computadoras | 899.99 | 25 | HP |
| 2 | Samsung Galaxy S23 | Smartphones | 799.99 | 50 | Samsung |
| 3 | Auriculares Sony | Audio | 149.99 | 100 | Sony |
| 4 | Monitor LG 27" | Periféricos | 299.99 | 30 | LG |
| 5 | iPhone 15 Pro | Smartphones | 1199.99 | 40 | Apple |
Ejemplo 2: Seleccionar columnas específicas
A veces no necesitas toda la información. Por ejemplo, si solo quieres ver los nombres de productos y sus precios:
SELECT nombre, precio
FROM productos;
Resultado:
| nombre | precio |
|---|---|
| Laptop HP Pavilion | 899.99 |
| Samsung Galaxy S23 | 799.99 |
| Auriculares Sony | 149.99 |
| Monitor LG 27" | 299.99 |
| iPhone 15 Pro | 1199.99 |
Ejemplo 3: Usar alias de columnas
Los alias hacen tu consulta más clara usando la palabra clave AS:
SELECT nombre AS "Nombre del Producto",
precio AS "Precio en USD",
stock AS "Cantidad Disponible"
FROM productos;
Resultado:
| Nombre del Producto | Precio en USD | Cantidad Disponible |
|---|---|---|
| Laptop HP Pavilion | 899.99 | 25 |
| Samsung Galaxy S23 | 799.99 | 50 |
| Auriculares Sony | 149.99 | 100 |
| Monitor LG 27" | 299.99 | 30 |
| iPhone 15 Pro | 1199.99 | 40 |
Ejemplo 4: Seleccionar con expresiones
También puedes crear columnas calculadas directamente en tu SELECT:
SELECT nombre,
precio,
precio * 1.16 AS "Precio con IVA"
FROM productos;
Esto es increíblemente útil porque te permite realizar cálculos sin modificar los datos originales en la base de datos.
Selección sin duplicados: DISTINCT
¿Qué pasa si quieres saber qué categorías únicas de productos tienes? Aquí entra DISTINCT:
SELECT DISTINCT categoria
FROM productos;
Resultado:
| categoria |
|---|
| Computadoras |
| Smartphones |
| Audio |
| Periféricos |
Sin DISTINCT, habrías visto "Smartphones" dos veces porque tienes dos productos en esa categoría.
DISTINCT con precaución en tablas grandes. El motor de base de datos debe comparar cada fila para eliminar duplicados, lo que puede hacer las consultas más lentas. Solo úsalo cuando realmente necesites valores únicos.
Limitando Resultados: LIMIT
Cuando trabajas con tablas enormes, a veces solo necesitas ver unos pocos registros para verificar tu consulta:
SELECT nombre, precio
FROM productos
ORDER BY precio DESC
LIMIT 3;
Esta consulta te muestra los 3 productos más caros. (Aprenderás sobre ORDER BY y LIMIT en lecciones futuras, pero ya sabes que existen).
Aunque el SQL es un estándar, cada sistema de base de datos tiene sus particularidades:
- MySQL / PostgreSQL / SQLite: Usan
LIMIT n - SQL Server: Usa
SELECT TOP n columnas FROM tabla - Oracle: Usa
WHERE ROWNUM <= n
En esta lección nos centraremos en la sintaxis estándar que funciona en la mayoría de sistemas modernos.
Formato y Estilo de Código SQL
Aunque SQL no exige un formato específico, seguir convenciones hace tu código más legible:
-- ❌ Código difícil de leer (válido pero poco profesional)
SELECT nombre,precio,stock FROM productos;
-- ✅ Código bien formateado (recomendado)
SELECT nombre,
precio,
stock
FROM productos;
-- ✅ Alternativa compacta para pocas columnas
SELECT nombre, precio, stock
FROM productos;
"Escribe tu SQL como si otra persona tuviera que mantenerlo mañana. Porque probablemente así será."
Errores Comunes y Cómo Evitarlos
En la mayoría de sistemas, cada sentencia SQL debe terminar con ;. Olvidarlo puede causar errores o comportamiento inesperado.
SQL es sensible a mayúsculas y minúsculas en la mayoría de sistemas. Nombre y nombre podrían ser cosas diferentes dependiendo de tu base de datos.
En SQL estándar, las comillas simples ' ' son para texto, y las comillas dobles " " para identificadores como nombres de columnas. Algunos sistemas como MySQL usan acentos graves ` ` para identificadores.
Resumen de Componentes SELECT
| Componente | Descripción | Ejemplo |
|---|---|---|
SELECT |
Indica qué columnas seleccionar | SELECT nombre, precio |
* |
Selecciona todas las columnas | SELECT * |
AS |
Crea un alias temporal | precio AS "Precio USD" |
DISTINCT |
Elimina duplicados | SELECT DISTINCT categoria |
FROM |
Indica la tabla fuente | FROM productos |
LIMIT |
Restringe el número de filas | LIMIT 10 |
Practicando lo Aprendido
Ahora es tu turno. Basándote en la tabla productos que conoces, intenta escribir las siguientes consultas:
- Seleccióna el nombre y la marca de todos los productos.
- Encuentra todos los valores únicos de marca en la tabla.
- Crea una consulta que muestre el nombre del producto con un alias "Artículo" y el precio con un alias "Costo".
- Escribe una consulta que calcule el precio con un 10% de descuento (usa la fórmula: precio * 0.90).
¿Cuál de las siguientes consultas seleccionará TODAS las columnas de la tabla "clientes"?
- A) SELECT columnas FROM clientes;
- B) SELECT * FROM clientes;
- C) SELECT ALL FROM clientes;
- D) SELECT EVERY FROM clientes;
El asterisco (*) es el comodín universal en SQL que significa "todas las columnas". Es la forma más rápida de seleccionar todos los datos de una tabla sin tener que escribir cada nombre de columna individualmente.
¿Qué palabra clave usarías para mostrar solo valores únicos sin repeticiones?
- A) UNIQUE
- B) DISTINCT
- C) ONLY
- D) SINGLE
DISTINCT es la palabra clave que elimina duplicados del resultado. Si tienes 100 clientes pero solo 5 ciudades diferentes, SELECT DISTINCT ciudad FROM clientes te mostrará solo las 5 ciudades únicas.
Conclusión
Has dado tu primer paso importante en SQL. Ahora sabes cómo:
- ✅ Usar
SELECTpara elegir columnas específicas - ✅ Usar
*para seleccionar todas las columnas - ✅ Crear alias descriptivos con
AS - ✅ Eliminar duplicados con
DISTINCT - ✅ Crear columnas calculadas
Recuerda: la práctica hace al maestro. No te conformes con leer estos ejemplos; ejecútalos tú mismo en un entorno real. En el próximo módulo exploraremos las condiciones de filtrado que hacen de SQL una herramienta tan poderosa para el análisis de datos.