# SELECT
```SQL
/*
Ejemplo de uso SELECT
*/
SELECT 
    s.nombres AS nombre_socio,
    s.apellidos AS apellido_socio,
    i.nombre AS nombre_instalacion,
    r.fecha_reserva,
    r.hora_inicio,
    r.hora_fin,
    e.nombre AS estado_reserva
```
# FROM
```SQL
/*
Ejemplo de uso FROM
*/
FROM reserva AS r
```
# JOIN
```SQL
/*
Ejemplo de uso JOIN
*/
JOIN socio AS s ON r.idSocio = s.idSocio
JOIN instalacion AS i ON r.idInstalacion = i.idInstalacion
```
# WHERE
```SQL
/*
Ejemplo de uso Where
*/
WHERE r.fecha_reserva >= '2025-09-30'
```
# GROUP
```SQL
/*
Ejemplo de uso Group
*/
GROUP BY s.idSocio, s.nombres, s.apellidos
```
# HAVING
```SQL
/*
Ejemplo de uso Having
*/
HAVING COUNT(f.idFamiliar) > 5
```
# ORDER
```SQL
/*
Ejemplo de uso ORDER
*/
ORDER BY r.fecha_reserva ASC, s.nombres ASC;
```
# ALIAS (AS) 
## 🧭 Uso de _alias_
> Un **alias** es un nombre corto o alternativo** para una tabla o una columna.**
## 🔸 Alias de tabla
Se definen después del nombre de la tabla: 
`FROM socio AS s JOIN reserva AS r ON r.idSocio = s.idSocio` 
Ahora puedes referirte a las columnas como `s.nombres`, `r.fecha_reserva`, etc. 
**Ventajas:** 
- Evita ambigüedades si varias tablas tienen columnas con el mismo nombre (`id`, `nombre`, etc.). 
- Hace el código más corto y legible. 
- Permite escribir condiciones complejas de forma clara. 
👉 En MySQL, el `AS` es opcional:
`FROM socio s JOIN reserva r ON r.idSocio = s.idSocio`
es equivalente. 
## 🔸 Alias de columna
Sirven para **renombrar una columna en el resultado** (para presentación o claridad). 
`SELECT    s.nombres AS nombre_socio,   s.apellidos AS apellido_socio,   COUNT(f.idFamiliar) AS total_familiares` 
**Ventajas:** 
- Mejora la legibilidad del resultado. 
- Útil cuando se usan funciones (`COUNT`, `SUM`) o nombres de columna largos. 
**Nota:**   Los alias de columna **solo existen en el resultado final**, no dentro del `WHERE` o `GROUP BY`. 
# EjemploConsulta
```SQL
/*
Ejemplo de Consulta completa Marce
*/
SELECT 
    s.nombres AS nombre_socio,
    s.apellidos AS apellido_socio,
    i.nombre AS nombre_instalacion,
    r.fecha_reserva,
    r.hora_inicio,
    r.hora_fin,
    e.nombre AS estado_reserva
FROM reserva AS r
JOIN socio AS s ON r.idSocio = s.idSocio
JOIN instalacion AS i ON r.idInstalacion = i.idInstalacion
JOIN estadoreserva AS e ON r.idEstadoReserva = e.idEstadoReserva
WHERE r.fecha_reserva >= '2025-09-30'
ORDER BY r.fecha_reserva, r.hora_inicio, i.nombre, s.nombres;
```