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!
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.
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.
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);
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.
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.
Para acessar outras publicações de SQL, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.