Curso Introductorio de SQL: Lenguaje de Consulta Estructurado
Unidad 1: Introducción a SQL y Bases de Datos Relacionales
¿Qué es SQL?
SQL (Structured Query Language) es un lenguaje estándar diseñado para gestionar
y manipular bases de datos relacionales. A través de SQL puedes:
Crear estructuras de bases de datos.
Insertar, consultar, actualizar y borrar datos.
Gestionar permisos de usuarios.
Crear vistas, funciones, procedimientos almacenados y más.
Historia Breve
SQL fue desarrollado por IBM en los años 70 y se convirtió en un estándar ANSI en
1986. Su sintaxis se mantiene bastante estable, aunque distintos motores
(MySQL, PostgreSQL, SQL Server, Oracle) pueden tener extensiones propias.
¿Qué es una base de datos relacional?
Una base de datos relacional es un conjunto de tablas que se relacionan entre sí a
través de claves. Cada tabla representa una entidad (por ejemplo, clientes,
productos) y contiene filas (registros) y columnas (campos).
Ejemplo simple:
Tabla: Clientes
id_cliente nombre correo
1 Ana Ruiz ana@[Link]
2 Luis Paz luis@[Link]
Unidad 2: Operaciones Básicas de SQL (CRUD)
1. SELECT – Consultar datos
sql
CopiarEditar
SELECT nombre, correo FROM Clientes;
Consulta básica que obtiene columnas específicas. También se puede usar:
sql
CopiarEditar
SELECT * FROM Clientes;
Para obtener todas las columnas.
2. INSERT – Insertar datos
sql
CopiarEditar
INSERT INTO Clientes (nombre, correo)
VALUES ('María González', 'maria@[Link]');
3. UPDATE – Modificar datos existentes
sql
CopiarEditar
UPDATE Clientes
SET correo = 'nuevo@[Link]'
WHERE id_cliente = 1;
¡Nunca olvides el WHERE al hacer un UPDATE!
4. DELETE – Eliminar datos
sql
CopiarEditar
DELETE FROM Clientes
WHERE id_cliente = 2;
Unidad 3: Filtrado, Ordenamiento y Operadores
WHERE – Condiciones
sql
CopiarEditar
SELECT * FROM Clientes
WHERE nombre = 'Ana Ruiz';
Operadores comunes
=: igual
<>: distinto
> / <: mayor o menor que
BETWEEN: dentro de un rango
LIKE: patrones (ej. LIKE '%ana%')
IN: dentro de una lista de valores
ORDER BY – Ordenar resultados
sql
CopiarEditar
SELECT * FROM Clientes
ORDER BY nombre ASC;
LIMIT – Limitar resultados
sql
CopiarEditar
SELECT * FROM Clientes
LIMIT 10;
Unidad 4: Funciones Agregadas y Agrupamiento
Funciones agregadas
COUNT(): Cuenta registros
SUM(): Suma valores
AVG(): Promedia
MAX() / MIN(): Mayor / menor valor
Ejemplo:
sql
CopiarEditar
SELECT COUNT(*) FROM Clientes;
GROUP BY – Agrupar registros
sql
CopiarEditar
SELECT ciudad, COUNT(*) as cantidad
FROM Clientes
GROUP BY ciudad;
HAVING – Condiciones sobre grupos
sql
CopiarEditar
SELECT ciudad, COUNT(*) as cantidad
FROM Clientes
GROUP BY ciudad
HAVING COUNT(*) > 5;
Unidad 5: Relaciones y JOINs
Relaciones entre tablas
Las tablas pueden estar relacionadas mediante claves foráneas.
Tabla: Pedidos
id_pedido id_cliente fecha
1 1 2024-01-01
JOIN – Combinar datos
INNER JOIN
sql
CopiarEditar
SELECT [Link], [Link]
FROM Clientes
INNER JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;
LEFT JOIN
Incluye todos los clientes aunque no tengan pedidos.
sql
CopiarEditar
SELECT [Link], [Link]
FROM Clientes
LEFT JOIN Pedidos ON Clientes.id_cliente = Pedidos.id_cliente;
Unidad 6: Creación y Gestión de Tablas
CREATE TABLE
sql
CopiarEditar
CREATE TABLE Clientes (
id_cliente INT PRIMARY KEY,
nombre VARCHAR(100),
correo VARCHAR(100),
ciudad VARCHAR(50)
);
ALTER TABLE
Agregar una columna:
sql
CopiarEditar
ALTER TABLE Clientes
ADD telefono VARCHAR(20);
DROP TABLE
sql
CopiarEditar
DROP TABLE Clientes;
Elimina completamente la tabla (¡datos incluidos!).
Unidad 7: Vistas, Subconsultas y Seguridad
Vistas
Una vista es una consulta almacenada que se puede usar como si fuera una tabla:
sql
CopiarEditar
CREATE VIEW VistaClientes AS
SELECT nombre, correo
FROM Clientes;
Subconsultas
Consultas dentro de otras consultas:
sql
CopiarEditar
SELECT * FROM Clientes
WHERE id_cliente IN (
SELECT id_cliente FROM Pedidos WHERE fecha >= '2024-01-01'
);
Permisos
Ejemplo para dar acceso de solo lectura:
sql
CopiarEditar
GRANT SELECT ON Clientes TO usuario_lectura;
Unidad 8: Buenas Prácticas y Ejercicios
Buenas prácticas
Siempre usar WHERE en UPDATE y DELETE.
Normalizar tus tablas.
Usar nombres descriptivos y consistentes.
Hacer respaldos de datos regularmente.
Ejercicios
1. Crea una tabla de productos con id, nombre, precio y stock.
2. Inserta 5 productos distintos.
3. Realiza una consulta que muestre solo los productos con stock menor a
10.
4. Haz un JOIN con una tabla de categorías.
5. Crea una vista que muestre los productos disponibles.
Cierre y Recomendaciones
¡Felicitaciones por llegar hasta aquí! Has cubierto los fundamentos más
importantes de SQL. Como siguiente paso te recomiendo:
Practicar con bases como Sakila o Chinook.
Usar entornos online como SQL Fiddle o DB Fiddle.
Estudiar temas más avanzados como transacciones, índices,
procedimientos almacenados y triggers.