7.3 Cláusula WHERE
Hasta ahora hemos visto como puede utilizarse la sentencia SELECT para recuperar todas las columnas o un subconjunto de ellas de una tabla. Pero esteefecto afecta a todas las filas de la tabla, a menos que especifiquemos algo más en la cláusula WHERE. Es aquí donde debemos proponer la condición que han de cumplir todas lasfilas para salir en el resultado de la consulta. La complejidad del criterio de búsqueda es prácticamente ilimitada, y en él se pueden conjugar operadores de diversos tipos confunciones de columnas, componiendo expresiones más o menos complejas.
Operadores de Comparación Operador Operación Ejemplo
= Igualdad select * from emp where cod_dep =100;
!=, , ^= Desigualdad select * from emp where cod_dep != 100;
< Menor que select * from emp where cod_dep < 200;
Mayor que select * from emp where cod_dep > 200;365;
Producto select nombre, salario*12 from emp;
/ División select nombre, salario/31 from emp;
Cláusula GROUP BY
SQL nos permite agrupar las filasresultado de una consulta en conjuntos y aplicar funciones sobre esos conjuntos de filas.
La sintaxis es la siguiente:
SELECT {* | {columna,}+}
FROM {tabla,}+
WHEREcondición
GROUP BY {columna ,}+
HAVING condición
ORDER BY {expresiónColumna [ASC | DESC],}+;
En la cláusula GROUP BY se colocan las columnas por las que vamos aagrupar. Y en la cláusula HAVING se especifica la condición que han de cumplir los grupos para pasar al resultado.
La evaluación de las diferentes cláusulas en tiempo deejecución se efectúa en el siguiente orden:
WHERE filtra las filas
GROUP BY crea una tabla de grupo nueva
HAVING filtra los grupos
ORDER BY clasifica la salida