Olá! Bem-vindo à nossa aula sobre Estruturas Condicionais em PL/SQL, com foco nos comandos IF. Hoje, vamos mergulhar no fascinante mundo das decisões em programação. Imagine que você é um maestro, e seu código é a orquestra. Os comandos IF são como as suas mãos, guiando cada instrumento para tocar no momento certo. Vamos aprender a reger essa sinfonia!
O que são Estruturas Condicionais?
Antes de entrarmos nos detalhes, vamos entender o conceito básico. As estruturas condicionais são como bifurcações em uma estrada. Elas permitem que seu programa escolha diferentes caminhos com base em certas condições.
Pense assim: você está dirigindo e chega a uma placa que diz “Se chover, vire à direita. Caso contrário, siga em frente.” Isso é exatamente o que as estruturas condicionais fazem no seu código!
Tipos de Comandos IF
Em PL/SQL, temos três mosqueteiros das estruturas condicionais:
- IF-THEN
- IF-THEN-ELSE
- ELSIF (que veremos mais adiante)
Vamos conhecer cada um deles, começando pelos dois primeiros.
1. Comando IF-THEN
O IF-THEN é como um guarda de trânsito que só age quando algo específico acontece. Sua estrutura é assim:
1 2 3 4 5 |
IF condição THEN comando1; comando2; ... END IF; |
Vejamos a árvore de decisão que representa o comando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
+-------------------+ | Condição | +-------------------+ | | +-------+-------+ | | Verdadeiro Falso | | +------+------+ | | Executa | | | comandos | | +-------------+ | | | +-------+-------+ | Próximo comando |
Vamos ver um exemplo prático. Imagine que você quer dar um bônus aos funcionários que trabalham há mais de 5 anos na empresa.
1 2 3 4 5 6 7 8 |
DECLARE v_anos_trabalho NUMBER := 7; BEGIN IF v_anos_trabalho > 5 THEN DBMS_OUTPUT.PUT_LINE('Parabéns! Você ganhou um bônus!'); END IF; END; |
Neste caso, se o funcionário trabalhou mais de 5 anos, ele verá a mensagem. Se não, o programa simplesmente segue em frente, como se nada tivesse acontecido.
2. Comando IF-THEN-ELSE
Agora, e se quisermos fazer algo tanto no caso positivo quanto no negativo? É aí que entra o IF-THEN-ELSE. É como ter um plano B sempre à mão.
1 2 3 4 5 |
IF condição THEN comando1; ELSE comando2; END IF; |
Vejamos a representação visual disso:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
+-------------------+ | Condição | +-------------------+ | | +-------+-------+ | | Verdadeiro Falso | | +------+------+ +-----+-----+ | Executa | | Executa | | comando1 | | comando2 | +-------------+ +-----------+ | | +-------+-------+ | Próximo comando |
Vamos adaptar nosso exemplo anterior:
1 2 3 4 5 6 7 8 9 10 |
DECLARE v_anos_trabalho NUMBER := 3; BEGIN IF v_anos_trabalho > 5 THEN DBMS_OUTPUT.PUT_LINE('Parabéns! Você ganhou um bônus!'); ELSE DBMS_OUTPUT.PUT_LINE('Continue assim! Faltam ' || (6 - v_anos_trabalho) || ' anos para o bônus.'); END IF; END; |
Agora, não importa quantos anos o funcionário trabalhou, sempre haverá uma mensagem para ele.
O Mistério do NULL
Ah, o NULL! É como o coringa das cartas, nem verdadeiro nem falso. Quando uma condição avalia para NULL, o PL/SQL trata como se fosse falso. Veja só:
1 2 3 4 5 6 7 8 9 10 |
DECLARE v_numero1 NUMBER := 10; v_numero2 NUMBER; BEGIN IF v_numero1 = v_numero2 THEN DBMS_OUTPUT.PUT_LINE('São iguais!'); ELSE DBMS_OUTPUT.PUT_LINE('São diferentes ou um deles é NULL'); END IF; END; |
Neste caso, como v_numero2 é NULL, a condição v_numero1 = v_numero2 avalia para NULL, e o bloco ELSE é executado.
Aqui temos a representação visual:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
+-------------------+ | Condição | +-------------------+ | | +-------+-------+ | | | Verdadeiro NULL Falso | | | +------+--+ | +----+-----+ | Executa | | | Executa | | THEN | | | ELSE | +---------+ | +----------+ | +------+------+ | Trata como | | Falso | +-------------+ |
Dica de Ouro
Lembre-se: o IF-THEN-ELSE é perfeito para escolher entre duas opções mutuamente exclusivas. É como escolher entre chocolate e baunilha – você só pode escolher um!
1 2 3 4 5 6 7 8 9 |
DECLARE v_numero NUMBER := &sv_numero_usuario; BEGIN IF MOD(v_numero, 2) = 0 THEN DBMS_OUTPUT.PUT_LINE(v_numero || ' é par'); ELSE DBMS_OUTPUT.PUT_LINE(v_numero || ' é ímpar'); END IF; END; |
Este código é um ótimo exemplo de como usar IF-THEN-ELSE para decisões binárias.
Conclusão
Ufa! Chegamos ao fim da nossa jornada pelos comandos IF em PL/SQL. Vimos como podemos usar IF-THEN e IF-THEN-ELSE para tomar decisões em nossos programas. Lembre-se, programar é como cozinhar – os ingredientes são importantes, mas é a forma como você os combina que faz a mágica acontecer!
Na próxima aula, vamos explorar o comando ELSIF e como podemos aninhar essas estruturas para criar lógicas mais complexas. Até lá, pratique bastante e divirta-se codificando!
Alguma dúvida? Não hesite em perguntar. Estou aqui para ajudar você a se tornar um mestre em PL/SQL!