Consultas Condicional no MySQL

Sintaxe Básica de Consultas Condicional


       SELECT colunas FROM tabela WHERE condição;
   

Ordem de Execução:

  1. FROM
  2. WHERE
  3. SELECT

Tipos de Condições

Condições Relacionais

Utiliza operadores relacionais para filtrar resultados:


       >, <, >=, <=, =, <>
   

           -- 1. Listar funcionários de outros setores além do 200
           SELECT * FROM funcionarios WHERE setor_id <> 200;

           -- 2. Mostrar nome e salário de funcionários com salário abaixo de R$18.000
           SELECT nome, salario FROM funcionarios WHERE salario < 18000;
       

Combina múltiplas condições usando operadores lógicos:


       AND, OR, NOT
   

           -- 3. Listar funcionários fora dos setores 50-100
           SELECT nome, setor_id, email FROM funcionarios WHERE NOT (setor_id >= 50 AND setor_id <= 100);

           -- 4. Mostrar dados de funcionários com comissão maior que 3% ou ID entre 60-110
           SELECT * FROM funcionarios WHERE comissao > 0.03 OR (id_funcionario >= 60 AND id_funcionario <= 110);
       

LIKE - Pesquisa Parcial


       /*
       Função: Realiza pesquisa parcial em campos de texto
       Caracteres Especiais:
       _ - Qualquer caractere individual
       % - Qualquer quantidade de caracteres
       $ - Caractere de escape
       */
   

           -- 5. Listar funcionários cujos nomes contenham a letra 'z'
           SELECT * FROM funcionarios WHERE nome LIKE '%z%';

           -- 6. Mostrar nomes que terminam com 'a'
           SELECT * FROM funcionarios WHERE nome LIKE '%a';

           -- 7. Listar nomes onde o terceiro caractere é 'x'
           SELECT * FROM funcionarios WHERE nome LIKE '__x%';

           -- 8. Pesquisar por nomes que tenham '_' no segundo caractere
           SELECT * FROM funcionarios WHERE nome LIKE '_$_%' ESCAPE '$';
       

       /*
       Função: Verifica se um valor está em uma lista específica
       Uso:
       coluna IN (valor1, valor2, ...)
       coluna NOT IN (valor1, valor2, ...)
       */
   

           -- 9. Listar funcionários dos setores 40, 60 e 80
           SELECT nome, setor_id FROM funcionarios WHERE setor_id IN (40, 60, 80);

           -- 10. Mostrar dados de funcionários sem os cargos 'RH_GERENTE' e 'TI_DEVELOPER'
           SELECT * FROM funcionarios WHERE cargo NOT IN ('RH_GERENTE', 'TI_DEVELOPER');
       

       /*
       Função: Filtra valores dentro de um intervalo específico
       */
   

           -- 11. Listar funcionários de setores entre 20 e 80
           SELECT setor_id, nome FROM funcionarios WHERE setor_id BETWEEN 20 AND 80;

           -- 12. Mostrar salário anual fora do intervalo R$120.000 a R$240.000
           SELECT nome, salario, salario*12*(1+IFNULL(comissao,0)) AS salario_anual 
           FROM funcionarios
           WHERE salario*12*(1+IFNULL(comissao,0)) NOT BETWEEN 120000 AND 240000;
       

       /*
       Função: Verifica presença ausência de valores nulos
       Diferença entre IS e =:
       IS só avalia NULL
       = avalia valores regulares
       <=> avalia tanto NULL quanto valores regulares
       */
   

           -- 13. Listar funcionários sem comissão
           SELECT * FROM funcionarios WHERE comissao IS NULL;

           -- 14. Listar funcionários com comissão
           SELECT * FROM funcionarios WHERE comissao IS NOT NULL;
       

Tags: MySQL consultas-condicionais WHERE LIKE in

Publicado em 8-16 05:12