Tutoriais » SQL » [DQL]-Seleção » Definindo:
Este comando executa um filtro em uma tabela exibindo as tuplas (todos os campos) que atendem a uma condição. Simbologia AR: Tabela [[ Condição ]] ou σCondição(Tabela) Sintaxe: SELECT * FROM tabela [WHERE Condição]; onde o escrito entre '[ ]' é opcional. Exemplo:
Se quisermos apenas algumas tuplas usamos o WHERE, desse modo: SELECT * FROM funcionarios WHERE deptoid='A01'; Notas:
A condição é declarada após o subcomando WHERE.
Para cada tupla a condição é validada e se o resultado da condição for verdadeiro a tupla é exibida.
Podemos usar esta característica para listar todas as tuplas de uma tabela com este comando: SELECT * FROM departamentos WHERE deptosuperiorid='A01';
Repare no comando a seguir... SELECT * FROM departamentos;
O sub-comando WHERE pode ser omitido, quando isso acontece a condição é validada como VERDADEIRA para todas as tuplas.
Assim, no comando acima, a condição passa a ser entendida como 'verdadeiro' para todas as linhas. Desse modo, exibe todas as linhas de 'departamentos'.
O comando acima é equivalente à... SELECT * FROM departamentos WHERE 1=1;,
Pois para todas as linhas da tabela a expressão 1=1 retorna verdadeiro.
Em Álgebra Relacional (na notação extendida) a operação de Seleção é escrita assim: <Tabela> [[ Condição ]]
Exemplificando com o segundo comando de exemplo apresentado funcionarios [[ deptoid='A01' ]]
Lembre-se: Se quisermos (ou precisarmos) 'direcionar' o resultado do comando para uma tabela, basta: Em AR: A = funcionarios [[ deptoid='A01' ]]
EM SQL: CREATE temporary TABLE A AS (SELECT * FROM funcionarios WHERE deptoid='A01');
Podemos usar operadores lógicos para combinar condições na seleção.
Para uma tupla ser exibida em uma seleção a CONDIÇÃO deve retornar INTEIRAMENTE VERDADEIRA.
Analise este Exemplo
Seleção dos funcionários que trabalham no departamento 'A01' ou no departamento 'B01' SELECT * FROM departamentos WHERE deptosuperiorid='A01' OR deptosuperiorid='B01';
Quando for preciso comparar os valores de um campo com uma sequência precisa de valores (como no comando acima), podemos usar o operador IN.
Desse modo podemos escrever: SELECT * FROM departamentos WHERE deptosuperiorid IN ('A01','B01');
O operador IN compara o campo com a série de valores indicada entre os parenteses