queryLab · software_de_entrenamiento en espera
Nivel 1 · Básico · SQL · DQL

[SQL 01] Fundamentos y SELECT

Tablas, filas y columnas; leer datos con SELECT … FROM, DISTINCT y LIMIT.
0 / 6 retos resueltos 📘 Unidad 3 · clases 8 y 9 (operador SELECT)
Al terminar esta práctica podrás…
  • Reconocer tablas, filas (registros), columnas (atributos) y claves en el esquema HR.
  • Escribir consultas SELECT … FROM eligiendo columnas y calculando expresiones.
  • Eliminar duplicados con DISTINCT y limitar resultados con LIMIT.
  • Distinguir los sublenguajes de SQL: DDL, DML, DQL, DCL y TCL.

Una base de datos relacional guarda la información en tablas: cada fila es un registro y cada columna un atributo. Las tablas se conectan mediante claves: la clave primaria (PK) identifica cada fila y la clave foránea (FK) apunta a la PK de otra tabla.

Trabajaremos con el esquema HR (Recursos Humanos) de Oracle, el mismo de las clases: employees (102 empleados), departments, jobs, locations, countries, regions y job_history. Revisa el diagrama del esquema.

SQL se divide en sublenguajes: DDL define estructuras (CREATE, ALTER, DROP), DML modifica datos (INSERT, UPDATE, DELETE), DQL consulta (SELECT), DCL gestiona permisos (GRANT, REVOKE) y TCL controla transacciones (COMMIT, ROLLBACK). Empezamos por el más usado: SELECT.

Sintaxis
SELECT [DISTINCT] columna1, columna2, expresión AS alias
FROM tabla
LIMIT n;
SELECT
Elige qué columnas o expresiones mostrar. * trae todas.
FROM
Indica de qué tabla se leen los datos.
DISTINCT
Elimina filas repetidas del resultado.
LIMIT
Corta el resultado a las primeras n filas (Oracle usa FETCH FIRST n ROWS ONLY).
Expresiones
Puedes calcular: salary * 12, max_salary - min_salary…
Alias (AS)
Da un nombre legible a una columna o expresión: salary * 12 AS anual.
SQLite (este motor)
SELECT * FROM jobs LIMIT 5;
MySQL
SELECT * FROM jobs LIMIT 5;
Oracle 12c+
SELECT * FROM jobs FETCH FIRST 5 ROWS ONLY;

1 · Ejemplos guiados · ejecuta y modifica cada bloque

01Todas las columnas de una tabla
El asterisco * trae todas las columnas. Es útil para explorar una tabla nueva, pero en un informe conviene nombrar solo las columnas necesarias.
sql-fundamentos.sql
Presiona «ejecutar» para ver el resultado.
02Columnas específicas
Nombramos solo las columnas de interés, separadas por comas. Aparecen en el orden en que las escribes.
sql-fundamentos.sql
Presiona «ejecutar» para ver el resultado.
03Valores distintos
¿En qué cargos (job_id) hay empleados? Sin DISTINCT verías 102 filas repetidas; con él, una fila por cargo.
sql-fundamentos.sql
Presiona «ejecutar» para ver el resultado.
04Columnas calculadas y alias
Calculamos el salario anual y el rango salarial de cada cargo. El alias (AS) da un encabezado claro.
sql-fundamentos.sql
Presiona «ejecutar» para ver el resultado.
05Asomarse a una tabla grande
LIMIT muestra solo las primeras filas: ideal para explorar sin inundar la pantalla.
sql-fundamentos.sql
Presiona «ejecutar» para ver el resultado.

⚠ Errores frecuentes

  • Olvidar la coma entre columnas: SELECT first_name last_name no da error, ¡interpreta last_name como alias de first_name!
  • Usar comillas dobles para textos. En SQL los textos van entre comillas simples: 'Sales'.
  • Abusar de SELECT * en informes: trae datos que no necesitas y se rompe si la tabla cambia.
  • Creer que DISTINCT aplica a una sola columna: aplica a la combinación de todas las columnas del SELECT.

2 · Retos con corrección automática

Escribe tu solución y pulsa comprobar (Ctrl + Enter). Tu consulta y la solución se ejecutan en bases limpias y se comparan los resultados: no importan los nombres de las columnas, sí los datos (y el orden, cuando el reto lo pide). Si te atascas, usa la pista o mira el resultado esperado.

3 · Preguntas tipo solemne

1. ¿Qué sublenguaje de SQL agrupa a CREATE, ALTER y DROP?
2. ¿Cuál consulta muestra los nombres y correos de la tabla empleados?
3. ¿Qué hace SELECT DISTINCT job_id FROM employees;?
4. En Oracle, ¿cómo se obtienen solo las primeras 5 filas?
← inicio siguiente →