Dominando la Sentencia SELECT en SQL: Sintaxis y Funciones Agregadas
Estructura y Sintaxis de la Sentencia SELECT
SELECT [predicado] {* | tabla.* | [tabla.]campo1 [AS alias1] [, [tabla.]campo2 [AS alias2] [, …]]}
- FROM: expresión Tabla [, …] [IN baseDatosExterna]
- [WHERE…]: Cláusula de filtrado de registros.
- [GROUP BY…]: Cláusula de agrupación de resultados.
- [HAVING…]: Filtro para grupos específicos.
- [ORDER BY…]: Cláusula de ordenación de los datos.
Apartados y Definiciones
- *: Indica que se seleccionan todos los campos de la tabla.
- Tabla: Nombre de la tabla de la que se obtienen los registros.
- Campo1, campo2, …: Nombres de los campos que contienen la información que queremos recuperar.
- Alias1, alias2, …: Nombre que se le va a dar a las columnas en lugar de los nombres originales.
- Expresión de tabla: Nombre de la tabla o tablas que contienen los datos a recuperar.
Consideraciones sobre el comando SELECT
El comando SELECT no modifica el contenido de la base de datos (BD).
- Sintaxis mínima:
SELECT campos FROM tabla; - Si se seleccionan campos de más de una tabla, se debe usar la nomenclatura
tabla.campo.
Funciones de Agregación en SQL
MAX y MIN
MAX([DISTINCT] expr), MIN([DISTINCT] expr): Retorna los valores máximos y mínimos de una expresión. Pueden tener un argumento.
- Ejemplo:
SELECT student_name, MIN(test_score), MAX(test_score) FROM student GROUP BY student_name;
AVG (Promedio)
AVG([DISTINCT] expr): Retorna el valor medio de la expresión. Si el conjunto de resultados no tiene registros, SUM() retorna NULL.
- Ejemplo:
SELECT student_name, AVG(test_score) FROM student GROUP BY student_name;
Ordenación de Resultados con ORDER BY
Ejemplo: Obtener los alumnos ordenados por apellidos.
SELECT * FROM alumnos ORDER BY apellido1, apellido2, nombre;
Agrupación y Conteo: GROUP BY y COUNT
COUNT(*)
Retorna el contador del número de valores no NULL en los registros recibidos por una sentencia SELECT.
- Ejemplo:
SELECT student.student_name, COUNT(*) FROM student, course WHERE student.student_id = course.student_id;
COUNT(DISTINCT expr…)
Retorna un contador del número de valores no NULL distintos.
- Ejemplo:
SELECT COUNT(DISTINCT results) FROM student;
SUM (Suma de Valores)
SUM([DISTINCT] expr): Retorna la suma de la expresión. Si el conjunto de resultados no tiene registros, SUM() retorna NULL.
- Ejemplo:
SELECT tipo, modelo, SUM(cantidad) FROM existencias GROUP BY tipo, modelo;
Repetición de Funciones: AVG
AVG([DISTINCT] expr): Retorna el valor medio de la expresión. Si el conjunto de resultados no tiene registros, SUM() retorna NULL.
- Ejemplo:
SELECT student_name, AVG(test_score) FROM student GROUP BY student_name;
Repetición de Funciones: MAX y MIN
MAX([DISTINCT] expr), MIN([DISTINCT] expr): Retorna los valores máximos y mínimos de una expresión. Pueden tener un argumento.
- Ejemplo:
SELECT student_name, MIN(test_score), MAX(test_score) FROM student GROUP BY student_name;