|
Tutoriais » SQL » Seleção » Definindo: Este comando executa um filtro em uma tabela exibindo as tuplas (todos os campos) que atendem a uma condição. 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. O sub-comando WHERE pode ser emitido, quando isso acontece a condição é validada como verdadeira para todas as tuplas. Podemos usar esta característica para listar todas as tuplas de uma tabela com este comando:
SELECT * FROM departamentos;
Se quisermos apenas algumas tuplas usamos o WHERE, desse modo:
SELECT * FROM funcionarios WHERE id_depto='A01';
Podemos usar operadores lógicos para combinar condições na seleção. para a tupla se exibida deve retornar verdadeira para a condição como um todo.Seleção dos funcionários que trabalham no departamento 'A01' ou no departamento 'B01'
SELECT * FROM departamentos WHERE id_depto_superior='A01' or id_depto_superior='B01';
Quando queremos fazer uma comparação de um campo com uma sequencia precisa de valores (como no comando acima), podemos usar o operador IN.Desse modo podemos escrever:
SELECT * FROM departamentos WHERE id_depto_superior IN ('A01','B01');
O operador IN compara o campo com a série de valores indicada entre os parentesesPodemos criar uma tabela no banco de dados com o comando create table, copiando a estrutura de uma tabela e as tuplas que são resultado de um comando SQL Por exemplo, fazemos uma seleção e depois criamos a tabela com o resultado, desta forma
CREATE TABLE depto01 AS (SELECT * FROM departamentos WHERE id_depto_superior IN ('A01','B01'));
CREATE TABLE depto02 AS (SELECT * FROM departamentos WHERE id_depto_superior IN ('D01','B01'));
Estas tabelas ficam GRAVADAS no disco rígido e passam a constar no dicionário de dados da base.Podemos também criar uma tabela 'temporária' (fica em memória RAM somente enquanto se executa a sessão de conexão com o SGBD). Este 'tipo de tabela' é implementado em vários SGBDs. Criando uma tabela temporária e a seguir mostrando seu conteúdo
CREATE TEMPORARY TABLE func01 AS (SELECT * FROM funcionarios WHERE dt_contratacao<'2000-01-01');
SELECT * FROM func01;
|