[SQL 01] Fundamentos y SELECT
- Reconocer tablas, filas (registros), columnas (atributos) y claves en el esquema HR.
- Escribir consultas
SELECT … FROMeligiendo columnas y calculando expresiones. - Eliminar duplicados con
DISTINCTy limitar resultados conLIMIT. - 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.
SELECT [DISTINCT] columna1, columna2, expresión AS alias FROM tabla LIMIT n;
* trae todas.FETCH FIRST n ROWS ONLY).salary * 12, max_salary - min_salary…salary * 12 AS anual.SELECT * FROM jobs LIMIT 5;SELECT * FROM jobs LIMIT 5;SELECT * FROM jobs FETCH FIRST 5 ROWS ONLY;1 · Ejemplos guiados · ejecuta y modifica cada bloque
* trae todas las columnas. Es útil para explorar una tabla nueva, pero en un informe conviene nombrar solo las columnas necesarias.job_id) hay empleados? Sin DISTINCT verías 102 filas repetidas; con él, una fila por cargo.AS) da un encabezado claro.LIMIT muestra solo las primeras filas: ideal para explorar sin inundar la pantalla.⚠ Errores frecuentes
- Olvidar la coma entre columnas:
SELECT first_name last_nameno da error, ¡interpretalast_namecomo alias defirst_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
DISTINCTaplica 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
CREATE, ALTER y DROP?empleados?email sería un alias.SELECT DISTINCT job_id FROM employees;?DISTINCT elimina duplicados del resultado; no modifica la tabla.LIMIT es de MySQL/SQLite/PostgreSQL, TOP de SQL Server y FETCH FIRST de Oracle 12c+ (estándar SQL).