Diferença entre cláusula Having e Where

Tendo vs Cláusula Where

Máquinas, computadores em particular, são projetados como um meio de comunicação humana. Como tal, eles são criados de tal maneira que seus comportamentos são controlados por programas que usam linguagem artificial. Linguagem natural como o inglês não pode ser usada por computadores porque o vocabulário é muito grande e sempre muda.

A linguagem de computador precisa ser precisa, porque os computadores não têm senso comum, por isso é baseada em algoritmos que podem calcular e processar dados, além de permitir que os computadores raciocinem. Existem várias linguagens de computador que foram criadas. Cada um deles tem dois componentes, a sintaxe ou forma e a semântica ou significado.

Existem linguagens assembly, simultânea, fluxo de dados, de definição, funcional, intermediária, lógica, processual e de consulta. Linguagens de consulta são usadas para fazer consultas sobre bancos de dados e sistemas de informação. Uma dessas linguagens é a linguagem de consulta estruturada (SQL).
SQL é uma linguagem de computador de banco de dados com as seguintes funções: inserção, atualização e exclusão de dados, acesso e controle e controle e modificação de esquema. É subdividido ainda nos seguintes elementos:

Expressões
Predicados
Consultas
Afirmações
Cláusulas

SQL possui as seguintes cláusulas:

Cláusula de restrição
Cláusula For Update
Cláusula From
Cláusula Group BY
Cláusula Order By
Cláusula Where Current Of
Tendo cláusula
Cláusula Where

A cláusula having é sempre usada com o grupo por cláusula. É usado para filtrar registros retornados por um grupo por cláusula utilizando um predicado. Os resultados de uma cláusula group by são restringidos usando a cláusula having e somente as linhas especificadas são selecionadas.

É semelhante a uma cláusula where e uma consulta pode ter uma cláusula having e a where. Nesse caso, a cláusula where é usada primeiro e depois que as linhas individuais são agrupadas, a cláusula having é usada. A cláusula having se aplica ao grupo como um todo, enquanto a cláusula where se aplica a linhas individuais.
A cláusula where é usada para selecionar linhas que devem ser incluídas na consulta e usa um predicado de comparação e exclui as linhas que não são avaliadas pelo predicado de comparação como verdadeiras. É usado em condições que se referem a funções agregadas e para selecionar linhas individuais em uma tabela especificada na cláusula from.
Sem ele, o conjunto de linhas resultante se tornaria muito grande. Ele usa os seguintes operadores: = ou igual, ou não igual,> ou maior que, = ou maior que ou igual, <= or less than or equal, BETWEEN, LIKE, and IN.

Sumário

1.A cláusula having é usada em linhas agrupadas enquanto a cláusula where é usada em linhas individuais.
2.Quando elas são usadas juntas, a cláusula where é usada primeiro para selecionar quais linhas devem ser agrupadas e a cláusula having é usada..
3.A cláusula having é usada com um grupo por cláusula, enquanto a cláusula where é processada em linhas especificadas por uma cláusula from.