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.

Tabela 2.6 - Operadores relacionais.

Operador

Nome

Expressão

Valor

=

igual

SELECT 5 = 4;

false

SELECT 5 = 5;

true

<>

diferente

SELECT 5 <> 4;

true

SELECT 5 <> 5;

false

<

menor que

SELECT 5 < 5;

false

SELECT 4 < 5;

true

<=

menor ou igual a

SELECT 5 <= 5;

true

SELECT 6 <= 5;

false

>

maior que

SELECT 5 > 4;

true

SELECT 4 > 5;

false

>=

maior ou igual a

SELECT 5 >= 5;

true

SELECT 5 >= 6;

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)