Consultas SQL com predicado ALL, TOP, DISTINCT, DISTINCTROW

  • Jul 26, 2021
click fraud protection

O predicado está incluído entre a cláusula e o nome do campo a ser recuperado, os predicados possíveis são:

  • TUDO: Retorna todos os campos da tabela
  • PRINCIPAL: Retorna um certo número de registros da tabela
  • DISTINTO: Pular registros cujos campos selecionados correspondam completamente
  • DISTINCTROW: Ignore os registros duplicados com base em todo o registro e não apenas nos campos selecionados.

TUDO (* pode ser usado no lugar):

Anúncios

Se nenhum dos predicados for incluído, ALL será assumido. O Mecanismo de Banco de Dados seleciona todos os registros que atendem às condições da instrução SQL. Não é conveniente abusar desse predicado, pois forçamos o mecanismo de banco de dados a analisar o estrutura da tabela para descobrir os campos que ela contém, é muito mais rápido indicar a lista de campos desejado.

Anúncios

SELECIONE TUDO DE Funcionários;

SELECIONE * DESDE Funcionários;

Anúncios

PRINCIPAL

Retorna um certo número de registros que estão entre o início ou o final de um intervalo especificado por uma cláusula ORDER BY. Suponha que desejamos recuperar os nomes dos primeiros 25 alunos do ano acadêmico de 1994:

Anúncios

- SELECIONE O TOPO 25 Primeiro nome, sobrenome DESDE Alunos

- ORDENAR POR Observação DESC;

Anúncios

Se a cláusula não for incluída ORDENAR POR, a consulta retornará um conjunto arbitrário de 25 registros da tabela de Alunos. O predicado PRINCIPAL ele não escolhe entre valores iguais. No exemplo acima, se a média de pontos da 25ª série e da 26ª série forem iguais, a consulta retornará 26 registros. Você pode usar a palavra reservada POR CENTO para retornar uma certa porcentagem de registros que caem no início ou no final de um intervalo especificado pela cláusula ORDENAR POR. Suponha que, em vez dos primeiros 25 alunos, queiramos 10 por cento do curso:

- SELECIONE O TOPO 10 POR CENTO Nome sobrenome DESDE Alunos ORDENAR POR Observação DESC;

O valor que segue PRINCIPAL deve ser um inteiro sem sinal.PRINCIPAL não afeta a possível atualização da consulta.

DISTINTO

Ignore os registros que contêm dados duplicados nos campos selecionados. Para que os valores de cada campo listado na declaração SELECIONE incluído na consulta deve ser exclusivo.

Por exemplo, vários funcionários listados na tabela Funcionários podem ter o mesmo sobrenome. Se dois registros contiverem Lopez no campo Sobrenome, a seguinte declaração SQL retorna um único registro:

- SELECIONE DISTINTO Sobrenome DESDE Funcionários;

Em outras palavras, o predicado DISTINTO retorna aqueles registros cujos campos indicados na cláusula SELECIONE têm um conteúdo diferente. O resultado de uma consulta que usa DISTINTO não é atualizável e não reflete as alterações subsequentes feitas por outros usuários.

DISTINCTROW

Retorna os diferentes registros de uma tabela; Ao contrário do predicado anterior que olhava apenas para o conteúdo dos campos selecionados, faz isso no conteúdo do registro completo, independentemente dos campos indicados no cláusula SELECIONE.

- SELECIONE DISTINCTROW Sobrenome DESDE Funcionários;

Se a tabela de funcionários contém dois registros: Antonio López e Marta López, o exemplo do predicado DISTINTO retorna um único registro com o valor Lopez no campo Sobrenome, pois não procura duplicatas nesse campo. Este último exemplo retorna dois registros com o valor Lopez no sobrenome, pois não duplicatas estão sendo pesquisadas em todo o registro.

instagram viewer