Seleção
Em uma relação , a operação de seleção () é aplicada para escolher um subconjunto de tuplas que satisfaçam uma determinada condição de seleção, fazendo uma partição horizontal da relação. Ou seja: a operação de seleção é um filtro que seleciona apenas as tuplas que atendem a uma determinada condição.
Em geral, seu uso é expresso da seguinte forma:
Como podemos observar acima, a operação de seleção é unária, se aplicando portanto a uma única relação.
Importante dizer também que todos os operadores () podem ser aplicados aos atributos. Os de comparação de ordem (maior ou menor) se aplicam aos atributos cujos domínios são valores ordenados, como domínios numéricos ou de data.
Exemplos
Vamos observar a relação abaixo, que contém dados sobre servidores.
SERVIDOR
🔑 siape (PK) | nome | salario | cpf | uf |
---|---|---|---|---|
1234567 | Francisco Alves Ribeiro | R$ 14.512,23 | 000.000.000-00 | MT |
4578912 | Mariana Gois Soares | R$ 21.201,25 | 111.111.111-11 | SP |
5621456 | Pedro da Silva | R$ 1.1521,54 | 222.222.222-22 | GO |
3453613 | Joana Gonçalves | R$ 4.556,20 | 333.333.333-33 | MT |
Nesta relação, podemos encontrar apenas os servidores cuja remuneração seja superior a um valor como, por exemplo, . Neste caso, aplicamos a seguinte operação de seleção:
Ao aplicarmos a operação de seleção na relação acima, obteremos o seguinte resultado:
🔑 siape (PK) | nome | salario | cpf | uf |
---|---|---|---|---|
1234567 | Francisco Alves Ribeiro | R$ 14.512,23 | 000.000.000-00 | MT |
4578912 | Mariana Gois Soares | R$ 21.201,25 | 111.111.111-11 | SP |
Agora, vamos imaginar que precisamos selecionar os servidores cujo salário é superior a , mas que também sejam residentes do estado de Mato Grosso. Neste caso, aplicamos o operador lógico AND
para a operação, que passa a ser representada por:
Agora, o resultado da operação seria:
🔑 siape (PK) | nome | salario | cpf | uf |
---|---|---|---|---|
1234567 | Francisco Alves Ribeiro | R$ 14.512,23 | 000.000.000-00 | MT |
Podemos ajustar ainda incluir outra condição:
🔑 siape (PK) | nome | salario | cpf | uf |
---|---|---|---|---|
1234567 | Francisco Alves Ribeiro | R$ 14.512,23 | 000.000.000-00 | MT |
5621456 | Pedro da Silva | R$ 1.1521,54 | 222.222.222-22 | GO |
Nem tudo é o que o parece
Muitos estudantes já familiarizados com a linguagem SQL podem confundir a operação de seleção com o SELECT *...
. Entretanto, este comando está relacionado à operação de projeção.
O comando SQL equivalente ao operador de seleção da álgebra relacional, na realidade, é o WHERE
.