Free CSS Button Css3Menu.com

Tutoriais » SQL » Projeção »
Definindo:
Este comando exibe as colunas indicadas no lugar do '*' no comando SQL.
Simbologia AR:
A [[ Lista de Campos ]]
Sintaxe:
Fazendo a projeção de campos da tabela funcionários:
SELECT idfuncionario, CONCAT(txprenomes,' ',txsobrenome) as txnomecompleto, deptoid, dtnascimento FROM funcionarios;
Podemos 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 projeção e depois criamos a tabela com o resultado, desta forma
CREATE TABLE func01 AS (SELECT idfuncionario, CONCAT(txprenomes,' ',txsobrenome) as txnomecompleto, deptoid, dtnascimento FROM funcionarios);
Notas:
  • Em Álgebra Relacional (na notação extendida) a operação de Projeção é escrita assim:
    <Tabela> [[ Lista de Campos da Tabela]]
    Exemplificando com o segundo comando de exemplo apresentado
    funcionarios [[ idfuncionario, CONCATENE(txprenomes,' ',txsobrenome)->txnomecompleto, deptoid, dtnascimento ]]
    Criando uma tabela:
    A = funcionarios [[ idfuncionario, CONCATENE(txprenomes,' ',txsobrenome)->txnomecompleto, deptoid, dtnascimento ]]
  • CUIDADO! Se para fazer a projeção é só trocar * pelos nomes dos campos então podemos 'combinar' comandos em SQL e escrever uma seleção e uma projeção em um comando?
    VERDADE!
    Porém, (Ah! Porém)... o comando fica sem referência com o que se quis fazer na álgebra relacional.
    'E daí? Está resolvendo uma pergunta e isso é o que interessa!'.
    Esta poderia ser a frase dos mais imediatistas (caras que partem para os programas sem gerar a especificação nem a documentação de um sistema)...
    Bem, para estes eu lembro que, atualmente, o que dá muita dor-de-cabeça para os gestores de projetos de SIs são os sistemas mal-documentados.
    A BOA documentação é feita ANTES do programa ser escrito. E TAMBÉM deve ser feita DEPOIS que o programa foi testado gerando o estado 'AS BUILD' do programa.
    Mas deixa eu parar de falar de Engenharia de Software.
  • Lembre-se que 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 idfuncionario, CONCAT(txprenomes,' ',txsobrenome) as txnomecompleto, deptoid, dtnascimento
                   FROM funcionarios);
    SELECT * FROM func01;

Tutoriais » SQL » Projeção »