PostgreSQL Subquery

PostgreSQL Subquery

Uma subconsência (aninhada) faz parte da consulta principal. Esta subparte está incorporada à cláusula "onde" na declaração. Uma subconsulta é usada, todo o possível "selecione", delete ", etc. declarações com alguns operadores básicos como>,<, and, =, etc. One thing that competes for this command from others is that it doesn't support the use of the “ORDER BY” command inside the subquery because we use a subquery to make the query easier, whereas the use of this clause can make it more complex. However, we can use “order by” clause in the main command. The syntax of the subquery varies for every other statement. The examples used in this guide will be favorable in explaining the respective syntaxes.

Subconstração e o comando select

Considere uma tabela chamada tecnologia. A tabela é criada usando as instruções "Criar" e "Inserir". A tabela tem 4 atributos (coluna). Exibir o conteúdo da tabela usando a instrução SELECT.

>> selecione * da tecnologia;

Aplicaremos uma subconsulta a esta tabela. Esta subconsulta está relacionada ao uso da instrução "Selecionar". A subconsulta trabalha nessa situação quando você precisa aplicar mais de uma condição em uma única tabela. A consulta principal seleciona uma parte da tabela, enquanto a subconsência seleciona a tabela de restos. O conceito ficará claro depois de entender o exemplo de um exemplo. A instrução SELECT é usada de várias maneiras em uma subconsulta. Todos os métodos possíveis são explicados aqui um por um. Vamos começar os exemplos.

>> Selecione T1.Nome, T1.ano, (selecione min (id) de T2 onde T1.id = t2.id) subquery1 da tecnologia T1;

A explicação dessa consulta exigia o conceito de criação de objetos. Na consulta, fica claro que os nomes das colunas da tabela são acessados ​​através da carta de referência, conhecida como objeto na maioria dos lugares. O primeiro comando selecionado, o comando principal, busca dois nomes de colunas e o ano através de "T1", enquanto a 3ª coluna depende da subconsulta. Outro comando selecionado é usado para buscar o ID da tabela de tecnologia, cujo nome é definido como "Subquery1". Aqui, uma condição é aplicada; Os IDs são exibidos na tabela resultante se a condição for satisfeita. Outra visão da tabela é criada que é buscada por "T2". Em primeiro lugar, a comparação é feita entre os IDs de T1 e T2. Quando os dois IDs forem iguais, exiba -os no resultado com as outras duas colunas. Em outras palavras, toda a coluna de identificação será selecionada porque a coluna é a mesma em ambas as tabelas.

Movendo -se para o próximo exemplo "selecione", este exemplo é simples em comparação com o último, pois não há uso de nenhum objeto de acesso adicional. Como sabemos que primeiro, o sub-quadro é executado pelo sistema. No sub-quadro, a condição é aplicada em uma coluna da tabela, onde o número do modelo deve ser maior que 3. Quando o sistema obtém os fatores resultantes do sub-quadro, a consulta principal implementá-la em si mesma. Por exemplo, todos os outros dados das colunas serão exibidos de acordo com o resultante do sub-quadro, respectivamente.

>> Selecione * FRA TECNOLOGIA QUANDO ID EN (SELECT ID FROM TECNOLOGIA QUANDO MODELOS> 3);

Você pode ver que uma única linha é removida da tabela que não estava cumprindo a condição. Uma coisa que você deve ter em sua mente é a questão de que usamos o sub-quadro aqui, a condição pode ser aplicada com a cláusula "onde" diretamente na instrução SELECT. A resposta é que o sub-quadro divide a consulta complexa em partes isoladas. As medidas de precisão aumentam a nés vezes mais em sub-quaria do que usar um único comando.

Agora mudamos para outra mesa chamada “amostra1”. A tabela possui três colunas; um é idade. Aplicaremos uma instrução simples de seleção primeiro para calcular a idade média da pessoa, porque essa idade média será usada mais adiante na tabela.

>> selecione * da amostra1; >> Selecione AVG (idade) da amostra1;

AVG (nome da coluna) é uma função interna de Postgres. Aqui, uma subconsulta é usada; A consulta exibirá pessoas com uma idade maior que a idade média calculada. A subconsência atingirá a idade média da idade da coluna.

>> Selecione * da amostra1 onde idade> (selecione AVG (idade) da amostra1);

2 linhas são selecionadas, pois essas idades eram maiores que a idade média.

Subcoa com o uso da declaração de inserção

Até agora, usamos sub-quadro em uma única tabela. Mas agora, há um exemplo de uso da consulta principal em uma mesa e a sub-quadra no outro. Para esse fim, usamos duas mesas aqui. Um é o software e o outro é um sistema. Busque o registro através da instrução SELECT para ambas as tabelas.

>> selecione * do software;

Agora vamos aplicar a sub-estoração às mesas dadas.

Selecione a instrução como a consulta principal também pode ser usada neste caso. Mas neste exemplo, "inserção" é usado. Esta declaração adicionará uma linha em uma tabela sobre o valor na linha de outra tabela usando uma cláusula "onde".

>> Insira no software (id, nome) Selecione ID, nome do sistema onde o sistema.id> 5 e sistema.nome = 'windows';

O "sistema”Os valores da tabela são inseridos na tabela de" software ", combinando com o ID e os nomes das tabelas. Cada coluna da tabela diferente é especificada através do nome da tabela. A subcorapeia depende do “Selecione”Declaração aqui para buscar o registro em duas colunas da tabela.

Alterar a tabela com a subconsulta

Agora considere outro nome de tabela, “Sample1”, com nomes, IDs e idades de pessoas. E a outra tabela é a mesma introduzida no exemplo anterior “sistema”.

A consulta de atualização é usada para alterar a tabela substituindo a anterior pela nova dada no comando. Considerando que, no caso da subconsência, o valor não é dado diretamente. É buscado na subconsulta aplicada na segunda tabela.

>> ATUALIZA.id = amostra1.eu ia);

Este comando “amostra1”A tabela é atualizada selecionando o nome da tabela" Sistema ", onde os dois IDs são iguais. A tabela de amostra resultante mostra as duas linhas. Como o ID e o nome foram selecionados, a coluna de idade permaneceu intacta.

Declaração de subcisões e exclusão

Uma declaração de exclusão é usada para remover os valores de uma tabela de outra. Como usamos as duas mesas tabelas, os valores usados ​​para atualizar outra tabela serão excluídos.

>> Exclua do sistema onde existe (selecione o nome da amostra1 onde o sistema.id = amostra1.eu ia );

Quando buscamos a mesa após a exclusão, podemos ver que uma única linha é deixada usando o 'Selecione' declaração.

Conclusão

““PostgreSQL Subquery”É uma característica importante desta plataforma para manter as consultas facilmente compreensíveis. Neste artigo, discutimos o uso da subconsência em cada perspectiva de comandos selecionados, inseridos, atualizados e excluídos. Espero que esse esforço o ajude enquanto usa comandos em PostGresql.