# Seleção (álgebra relacional)

O operador de Seleção, indicado por σ (a letra grega sigma minúscula), é um dos operadores fundamentais da Álgebra relacional. É um operador que tem como resultado um subconjunto estruturalmente idêntico a de um conjunto inicial fornecido como argumento, mas apenas com os elementos do conjunto original que atendem a uma determinada condição (também chamada de predicado). A seleção pode ser entendida como uma operação que filtra as linhas de uma tabela. É uma operação unária, já que opera sobre um único conjunto de dados de entrada.

## Sintaxe

Notação do operador:
σ $_{(predicado)}$ (Relação)
Onde, predicado é o conjunto de expressões lógicas que devem ser satisfeitas para uma linha que faça parte do subconjunto resultante. E relação é o conjunto de entrada (inicial).
As expressões lógicas podem ser formadas por operadores lógicos e relacionais:

## Exemplos com relações

Levando em consideração a Relação R como relação de entrada, ao aplicar o operador Seleção, vamos obter uma nova Relação como saída (Relação S, Relação T e Relação U).
Relação R:
| C1 | C2 | C3 |
| 1 | A | 10,00 |
| 2 | A | 50,00 |
| 3 | B | 98,54 |
| 4 | C | 87,48 |
Aplicando o operador Seleção:
Temos como resultado a Relação S:
Relação S:
| C1 | C2 | C3 |
| 1 | A | 10,00 |
| 2 | A | 50,00 |
No exemplo acima estamos buscando todas as linhas da Relação R onde a coluna C2 contenha o seu valor igual a "A".
Outros exemplos:
Temos como resultado a Relação T:
Relação T:
| C1 | C2 | C3 |
| 2 | A | 50,00 |
No exemplo acima estamos buscando todas as linhas da Relação R onde a coluna C2 contenha o seu valor igual a "A" e a coluna C3 contenha seu valor maior ou igual a 50,00.
Temos como resultado a Relação U:
Relação U:
| C1 | C2 | C3 |
| 2 | A | 50,00 |
| 3 | B | 98,54 |
| 4 | C | 87,48 |
No exemplo acima estamos buscando todas as linhas da Relação R onde a coluna C2 contenha o seu valor igual a "A" ou a coluna C3 contenha seu valor maior ou igual a 50,00.

## Exemplos com tabelas reais

Levando em consideração a Tabela funcionario como Relação de entrada, ao aplicar o operador Seleção, vamos obter uma nova Relação como saída (Relação S e Relação T).
Funcionario:
| ID | Departamento | Nome | Salario |
| 1 | Administrativo | João | 980,00 |
| 2 | Suporte | João | 710,20 |
| 3 | Suporte | Pedro | 790,20 |
| 4 | Desenvolvimento | José | 1290,00 |
| 5 | Desenvolvimento | Alberto | 1012,86 |
| 6 | Análise | Marcos | 2598,05 |
| 7 | Desenvolvimento | Zélio | 1579,96 |
Temos como resultado a Relação S:
Relação S:
| ID | Departamento | Nome | Salario |
| 3 | Suporte | Pedro | 790,20 |
| 4 | Desenvolvimento | José | 1290,00 |
| 5 | Desenvolvimento | Alberto | 1012,86 |
| 6 | Análise | Marcos | 2598,05 |
| 7 | Desenvolvimento | Zélio | 1579,96 |
No exemplo acima estamos buscando todas as linhas da Tabela funcionario onde o Nome do funcionário seja diferente de "João".
Temos como resultado a Relação T:
Relação T:
| ID | Departamento | Nome | Salario |
| 5 | Desenvolvimento | Alberto | 1012,86 |
No exemplo acima estamos buscando todas as linhas da Tabela Funcionario onde o Departamento do funcionário seja igual a "Desenvolvimento" e que tenha salário inferior a "1290,00".

## Utilização em SQL

Na linguagem SQL o operador Seleção corresponde a cláusula WHERE: