AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 12619
Accepted
René Nyffenegger
René Nyffenegger
Asked: 2012-02-11 02:18:00 +0800 CST2012-02-11 02:18:00 +0800 CST 2012-02-11 02:18:00 +0800 CST

A que se refere o termo "projeção" em uma consulta SQL (ou definição de exibição)

  • 772

No documento da Oracle The Query Optimizer , em View Merging , encontrei as seguintes informações

A otimização de mesclagem de exibição se aplica a exibições que contêm apenas seleções, projeções e junções. Ou seja, as exibições mescláveis ​​não contêm operadores de conjunto, funções agregadas, DISTINCT, GROUP BY, CONNECT BY e assim por diante. (ênfase minha)

No entanto, só posso adivinhar a que tal projeção realmente se refere.

oracle select
  • 2 2 respostas
  • 35908 Views

2 respostas

  • Voted
  1. Best Answer
    ConcernedOfTunbridgeWells
    2012-02-11T02:23:59+08:002012-02-11T02:23:59+08:00

    Em Álgebra Relacional, projeção significa coletar um subconjunto de colunas para uso em operações, ou seja, uma projeção é a lista de colunas selecionadas.

    Em uma etapa do otimizador de consulta, a projeção se manifestará como um buffer ou área de spool de alguma descrição contendo um subconjunto das colunas da tabela ou operador subjacente, ou uma visão lógica baseada nessas colunas que é usada por operações subsequentes.

    Em uma exibição, uma projeção equivale à lista de colunas selecionadas na consulta subjacente à exibição.

    • 19
  2. user6612
    2012-02-11T18:00:15+08:002012-02-11T18:00:15+08:00

    A projeção refere-se a esse subconjunto do conjunto de todas as colunas encontradas em uma tabela, que você deseja retornar. Pode variar de 0** até o conjunto completo.

    Existem dois "conjuntos" em uma tabela que correspondem às duas dimensões de uma tabela. Cada tabela tem um conjunto de colunas e também um conjunto de linhas . Cada valor individual em uma tabela pode ser encontrado em uma interseção específica desses dois *conjuntos**. No entanto, seu valor não é encontrado ao "ir para" um endereço, como T60 , da maneira que você faria com o Excel.

    Não há ordem inerente às tabelas relacionais . Isso é importante lembrar. Em vez disso, para recuperar seu valor único, você selecionaria um subconjunto das colunas (um neste caso) e um subconjunto das linhas (um neste caso). Para selecionar um subconjunto de uma coluna de todas as disponíveis, basta saber seu nome, bem como o nome da tabela. O nome da coluna será exclusivo em sua tabela.

    Depois de escolher a coluna em que seu valor está, você precisará escolher a linha específica em que está. No entanto, as linhas não têm nomes como as colunas. A maneira como especificamos uma linha é . . . bem, nós não exatamente. . . Especificamos algo que sabemos sobre o valor que estamos procurando. Você tem que saber algo relacionado (literalmente) ao valor que está procurando. Se você puder especificar informações relacionadas suficientes, poderá reduzir o conjunto de linhas retornadas apenas para o que está procurando.

    Pense nisso como se um estudante universitário tivesse perdido sua mochila. Digamos que um cara perdeu. Ele liga para achados e perdidos, e a mulher que atende diz: "Sim, temos algumas dúzias de mochilas. Você pode descrevê-las?" Você diz "Bem, é azul?". Ao que ela responde "Você está me perguntando ou me dizendo", e depois diz "Eu tenho oito azuis, vou ter que fazer melhor do que isso, e você não parecia muito certo disso". Você diz "Vamos ver, umm, oh sim! Tinha meu livro de matemática 1010 nele." "Bom, agora você caiu para quatro." Então você se lembra que deveria encontrar sua namorada, Lucy, em 15 minutos, e isso desencadeou outra memória - da vez em que você estava entediado em Matemática 1010 e escreveu - em letras pequenas reais no fundo da mochila: "Eu amo Lúcia".Ricky ."

    A projeção pode ser comparada a dizer o que você perdeu - uma mochila. A seleção pode ser comparada à descrição de seus atributos : é azul, tem um livro de matemática 1010 dentro e tem "Eu amo Lucy" escrito na parte inferior.

    Você faz a mesma coisa com o SQL. Primeiro, que tipo de informação você deseja ver. Segundo, critérios que descrevem qual ou quais você deseja ver. Estes são chamados de predicados ou declarações de verdade . Elas são verdadeiras para um ou mais membros do conjunto. Se não forem, eles não retornarão nenhum valor.

    * As implementações de SQL de alguns fornecedores fornecem meios para quebrar essas regras, como tabelas aninhadas no Oracle. No entanto, as tabelas bidimensionais padrão ainda são a forma predominante.

    ** CJ Date escreveu um artigo muito interessante chamado "A Table With No Columns". Achei que valeu muito a pena ler, como faço a maioria de seus muitos artigos "Writings". Eu os recomendo!

    • 14

relate perguntas

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • ORDER BY usando prioridades personalizadas para colunas de texto

  • Interface sqlplus confortável? [fechado]

  • Como encontrar as instruções SQL mais recentes no banco de dados?

  • Como posso consultar nomes usando expressões regulares?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve