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;