2.9. Operadores Relacionais
Os operadores relacionais ou operadores de comparação permitem comparar dois valores e produzir um valor booleano como resultado. Esse tipo de operador, juntamente com os operadores lógicos, são essenciais nas expressões da cláusula WHERE
, nos comandos condicionais e nos testes condicionais dos laços de repetição. A Tabela 2.6 apresenta a notação desses operadores e seus significados.
Operador |
Nome |
Expressão |
Valor |
---|---|---|---|
|
igual |
|
false |
|
true |
||
|
diferente |
|
true |
|
false |
||
|
menor que |
|
false |
|
true |
||
|
menor ou igual a |
|
true |
|
false |
||
|
maior que |
|
true |
|
false |
||
|
maior ou igual a |
|
true |
|
false |
Exemplos:
SELECT 5 > 4.1;
SELECT 'Land' < 'Landsat';
SELECT 'Land Cover' > 'Landsat';
SELECT 5 <> 4.1;
2.9.1. Exercícios
Os exercícios desta seção consideram as tabelas criadas na Seção 2.7 - Tipos Numéricos.
Exercício 1. Quais os focos com valor de FRP maior que 90?
Solução:
SELECT *
FROM foco
WHERE frp > 90;
Saída:
latitude | longitude | num_dias_sem_chuva | frp
----------+-----------+--------------------+-------
-6.63565 | -51.73956 | 28 | 103.0
-5.67382 | -51.89861 | 32 | 97.8
(2 rows)
Exercício 2. Quais os focos detectados na região definida pelo seguinte retângulo:
\(longitude_{1} = -52.5\)
\(longitude_{2} = -51.5\)
\(latitude_{1} = -7.5\)
\(latitude_{2} = -6.5\)
Solução:
SELECT *
FROM foco
WHERE longitude >= -52.5 AND longitude <= -51.5 AND latitude >= -7.5 AND latitude <= -6.5;
Saída:
latitude | longitude | num_dias_sem_chuva | frp
----------+-----------+--------------------+-------
-6.63565 | -51.73956 | 28 | 103.0
-7.04535 | -52.24566 | 27 | 44.2
(2 rows)
Exercício 3. Quais Unidades da Federação do Brasil (tabela populacao_1940
) possuiam população feminina maior que a masculina em 1940?
Solução:
SELECT *
FROM populacao_1940
WHERE mulheres > homens;
Saída:
uf | homens | mulheres
----------+--------+----------
Maranhão | 613938 | 621231
Piauí | 404989 | 412612
(2 rows)
Exercício 4. Faça uma consulta na tabela populacao_1940
que apresente como resultado uma coluna com o nome da UF e outra com um valor booleando indicando se a população masculina é ou não maior na UF.
Solução:
SELECT uf, homens > mulheres AS "homens > mulheres"
FROM populacao_1940;
Saída:
uf | homens > mulheres
-----------+-------------------
Rondônia | t
Acre | t
Amazonas | t
Roraima | t
Pará | t
Amapá | t
Tocantins | t
Maranhão | f
Piauí | f
(9 rows)