Ordenação (álgebra relacional)
Em álgebra relacional, a ordenação, simbolizada por (tau), é um operador estendido que retorna uma relação ordenada sobre um conjunto de atributos. Este comando tem precedência sobre o operador de agrupamento que faz com que os registros sejam retornados na ordem crescente. A lista de atributos segue a ordem com a qual será feita a ordenação. Por padrão a ordenação em cada campo é feita de ordem ascendente, mas pode ser modificada usando-se as palavras ASC e DESC após o atributo que será ordenado.
Sintaxe do Operador: t L(R), onde L é o conjunto de atributos e R é uma Relação de entrada.
Exemplo
T1
| C1 | C2 |
|---|---|
| 1 | aA |
| 1 | AA |
| 1 | Aa |
| 5 | null |
| 2 | BB |
| 3 | BB |
Ao aplicar:
t C1 asc, C2 desc (T1)
teremos:
| C1 | C2 |
|---|---|
| 1 | AA |
| 1 | Aa |
| 1 | aA |
| 3 | BB |
| 2 | BB |
| 5 | null |
Nota-se que os valores da primeira coluna(C1), estão ordenados de forma ascendente, e os valores da coluna(C2) de forma decrescente.
Exemplos do Mundo Real
Possuímos a listagem dos funcionários da empresa através da seguinte tabela:
T1
| FUNCIONARIO | NASCIMENTO |
|---|---|
| JOÃO | 01/12/1969 |
| MARIA | 23/03/1971 |
| JOSÉ | 01/12/1980 |
| JOAQUIM | 03/09/1987 |
| MARGARIDA | 05/12/1966 |
| SIMONI | 12/05/1986 |
| ALBERTO | 01/01/1990 |
A secretária da empresa solicitou então uma listagem dos funcionários ordenando pela sua data de nascimento, para fixar no mural, e acompanhar a cada mês os funcionários que estão de aniversário. Utilizamos então o operador de ordenação:
t NASCIMENTO asc (T1)
teremos:
| FUNCIONARIO | NASCIMENTO |
|---|---|
| MARGARIDA | 05/12/1966 |
| JOÃO | 01/12/1969 |
| MARIA | 23/03/1971 |
| JOSÉ | 01/12/1980 |
| SIMONI | 12/05/1986 |
| JOAQUIM | 03/09/1987 |
| ALBERTO | 01/01/1990 |
Utilização no sql
No sql é utilizada a cláusula ORDER BY para efetuar a ordenação dos regitros, no caso da não utilização da palavra os regitros serão apresentados de ordem indefinida. Sendo assim é utilizada a cláusula para exibir os registros em uma ordem especifica. Sempre que usar a cláusula order by a mesma dever colocada por ultimo no sql, conforme o exemplo abaixo:
Select nome, idade from aluno where nome is not null order by nome;
No qual as palavras:
- ORDER BY
- define a ordem como as colunas recuperadas serão exibidas.
- ASC
- ordena os registros em ordem crescente "ordem default".
- DESC
- ordena os registros em ordem decrescente.
Referências
- Ronald. «Modelo Relacional - Manipulação» (PDF). Consultado em 1 de junho de 2009