Uma das utilidades principais do SQL é sua capacidade de cruzar grandes volumes de dados de duas ou mais fontes. Sem o SQL, este trabalho seria árduo para analistas e desenvolvedores porque teriam preocupações como realizar varreduras registro-por-registro.
Como exemplo, vamos usar duas tabelas consideradas como fontes de dados:
GRUPO_A - Com a coluna chamada ELEMENTO do tipo numérico
GRUPO_B - Também com uma coluna chamada ELEMENTO do tipo numérico
A partir destas tabelas, é possível realizar os seguintes relacionamentos:
1) Procurar elementos comuns as tabelas GRUPO_A e GRUPO_B:
SELECT
GRUPO_A.ELEMENTO
FROM
GRUPO_A
, GRUPO_B
WHERE
GRUPO_A.ELEMENTO = GRUPO_B.ELEMENTO
Nota: Os registros comuns aos grupos A e B são buscados pela cláusula WHERE com o uso do operador de igualdade "=".
2) Procurar elementos que existem apenas no GRUPO_A:
SELECT
GRUPO_A.ELEMENTO
FROM
GRUPO_A
, GRUPO_B
WHERE
GRUPO_A.ELEMENTO = GRUPO_B.ELEMENTO (+)
AND GRUPO_B.ELEMENTO IS NULL
Nota: Os registros apenas existentes no grupo A são buscados pela cláusula WHERE com o uso do operador de igualdade "=", com "(+)" para trazer tudo de A e de B apenas quando encontrar e o filtro "IS NULL" aplicado na coluna elemento de B para mostrar tudo de A sem correspondente em B.
3) Procurar elementos que existem apenas no GRUPO_B:
SELECT
GRUPO_B.ELEMENTO
FROM
GRUPO_B
, GRUPO_A
WHERE
GRUPO_B.ELEMENTO = GRUPO_A.ELEMENTO (+)
AND GRUPO_A.ELEMENTO IS NULL
Nota: Os registros apenas existentes no grupo B são buscados pela cláusula WHERE com o uso do operador de igualdade "="; mais o uso de "(+)" para trazer tudo de B e de A apenas quando encontrar; e o filtro "IS NULL" aplicado na coluna elemento de A para mostrar tudo de B sem correspondente em A.
Existem outras alternativas para relacionar dados com o SQL, mas todas estas requerem um pouco mais de escrita. Caso tenha curiosidade, procure saber mais sobre INNER JOIN, LEFT JOIN e RIGHT JOIN, EXISTS e NOT EXISTS como palavras do SQL.
Nenhum comentário:
Postar um comentário