WHILE no SQL – Estrutura de Repetição
Veja como funciona a estrutura de repetição com WHILE no SQL e aprenda como repetir um bloco de código várias vezes.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
WHILE no SQL – Estrutura de Repetição
Na aula de hoje, vamos explorar como funciona a estrutura de repetição com WHILE no SQL. Essa é uma construção comum em diversas linguagens de programação, permitindo repetir um bloco de código várias vezes.
A ideia por trás do uso do WHILE é evitar a repetição desnecessária da escrita do mesmo bloco de código. Com isso, conseguimos manter a execução de parte do código até que a condição verificada seja falsa.
Vamos abordar também como evitar o famoso “loop infinito”, que ocorre quando não configuramos corretamente o WHILE.
Então, acompanhe-me que hoje vou demonstrar como criar uma estrutura de repetição com WHILE no SQL.
Estrutura de Repetição – Lógica
As estruturas de repetição são comuns em diversas linguagens de programação, e também estão presentes no SQL.
Antes de discutirmos a estrutura WHILE no SQL de forma prática, vamos primeiro compreender qual é a lógica por trás de uma estrutura de repetição, utilizando um exemplo do cotidiano.
Por exemplo, a obtenção da carteira de habilitação só pode ser feita quando atingimos 18 anos. Portanto, aqui temos uma lógica de repetição que diz: “Enquanto a pessoa for menor de idade, ela não pode dirigir.” Essa verificação de idade é feita ano após ano, até que a pessoa complete 18 anos e possa dirigir.
Este é um exemplo básico, mas ilustra como uma estrutura de repetição funciona. Ela verifica uma condição e enquanto essa condição não for atingida, continua executando uma determinada ação.
Lógica WHILE no SQL
A lógica do WHILE no SQL é exatamente essa: enquanto uma condição não for atingida, o código continuará executando uma determinada ação.
Para exemplificar essa aplicação, vamos criar um código que execute uma contagem enquanto a condição determinada não for atendida.
Para implementar essa lógica, vamos precisar trabalhar com procedures, que vimos na última aula. Basicamente, uma procedure é um bloco de código completo que pode ser chamado para execução e é definido por delimitadores personalizados.
Vamos criar uma procedure denominada contador que recebe um parâmetro inteiro chamado limite. Dentro dela, teremos a variável inteira i com valor inicial zero que irá nos auxiliar a controlar a contagem dentro do código.
Feito isso, vamos criar nossa estrutura de repetição while. O while sempre será seguido por uma condição e um bloco de código a ser executado enquanto essa condição for verdadeira.
Neste caso, nossa condição será que o valor de i deve ser menor do que o limite definido na procedure. Quando o valor de i for igual ao limite, esse loop será interrompido.
Dentro do loop, vamos exibir o valor de i com o comando select e em seguida iremos redefinir seu valor somando 1. Dessa forma, conforme as repetições forem passando, o valor de i irá aumentar, até o momento em que será igual ao limite definido, encerrando assim o loop.
delimiter $$
create procedure contador(limite int)
begin
declare i int default 0;
while i < limite do
select i;
set i = i + 1;
end while;
end $$
delimiter ;Podemos executar essa procedure e em seguida chamá-la:
call contador(5);Executando esse código, teremos a exibição dos valores 0, 1, 2, 3 e 4. Isso porque após a quinta iteração, o valor de i passa a ser 5 e o loop é encerrado.


Para que a contagem comece no número 1 e vá até o número 5, precisamos fazer algumas modificações. Vamos iniciar fazendo um drop da procedure criada:
drop procedure contador;Agora, vamos definir uma nova procedure, iniciando o i com o valor de 1 e alterando a condição de “menor que” para “menor ou igual“. Dessa forma, a condição só deixará de ser atendida quando i for maior do que o limite, e não mais igual.
delimiter $$
create procedure contador(limite int)
begin
declare i int default 1;
while i <= limite do
select i;
set i = i + 1;
end while;
end $$
delimiter ;Chamando essa procedure teremos o contador indo do 1 ao 5:
call contador(5);

Evitando Loop Infinito
Perceba como é importante definir corretamente a condição de acordo com a sua necessidade ou objetivo.
Se não definirmos a condição corretamente, nosso código será executado infinitamente, pois a condição nunca será atendida.
Por exemplo, se não tivéssemos adicionado a linha de código que redefine o valor de i para i + 1, nossa condição nunca seria atendida, pois i nunca se igualaria ao valor de limite, e o código ficaria executando infinitamente, sem nunca encerrar o loop.
Conclusão – WHILE no SQL – Estrutura de Repetição
Na aula de hoje, vimos como funciona a estrutura de repetição WHILE no SQL. Esta é uma estrutura de repetição muito comum, porém fundamental para executar um mesmo bloco de código várias vezes.
Exploramos sua aplicação prática e também discutimos como evitar os loops infinitos em seus códigos.
Agora, você está ciente de quando utilizar a estrutura de repetição com WHILE no SQL e como aplicá-la corretamente para manipular dados.
Hashtag Treinamentos
Para acessar outras publicações de SQL, clique aqui!


