Quais são as subconsultas correlacionadas?

Programadores e administradores de banco de dados usam linguagem de consulta estruturada para criar bancos de dados de computadores e relatar as informações neles contidas. Uma instrução SQL pode conter testes condicionais complexos para selecionar conjuntos específicos de dados das tabelas em um banco de dados. Uma subconsulta correlacionada possui dois testes, um aninhado no outro; Cada teste depende do resultado do outro.

SQL

Os bancos de dados relacionais mais modernos incorporam SQL para adicionar e atualizar dados, criar estruturas e coletar informações. O SQL é baseado em teorias sobre os dados desenvolvidos na década de 1970 e é refinado continuamente desde então. Consiste em um conjunto de estados, incluindo SELECT, INSERT, CREATE e DELETE, seguidos por várias cláusulas que especificam os dados e opções gerenciados, como classificação e agrupamento. O uso generalizado de bancos de dados se deve à flexibilidade e sofisticação do SQL; Ele permite que as organizações analisem grupos de dados complexos de várias maneiras.

Consultas e subconsultas

Um comando SQL para recuperar dados é chamado de consulta. Normalmente, os programadores usam a instrução SELECT de consultas, embora muitas das regras para pesquisa de dados também se apliquem a INSERT, DELETE e UPDATE. Uma simples consulta SELECT pode exibir o conteúdo de uma tabela de dados, como a seguinte instrução:

SELECT * FROM inventário;

Esta consulta mostra todos os registros em uma tabela chamada “Inventário”. Você pode obter resultados de uma consulta mais específica adicionando testes condicionais, como nesta instrução “inventário”.:

SELECT * FROM inventário WHERE warehouse_code = ‘chicago5’;

Esta declaração mostra seus registros de inventário de um código de depósito, chicago5.

Uma subconsulta é uma consulta dentro de outra consulta. A declaração a seguir lista os registros de inventário dos itens em que os depósitos estão em uma determinada região:

SELECT * FROM inventário WHERE warehouse_code IN (SELECT warehouse_code FROM armazéns WHERE region = ‘midwest’);

Observe que esta consulta possui duas instruções SELECT, uma que mostra os registros do inventário e outra que estabelece a consulta principal com os códigos de depósito.

Subconsulta correlacionada

Em uma subconsulta correlacionada, as consultas principal e subordinada extraem dados da mesma tabela. A consulta interna executa uma função agregada, como uma estatística e alimenta essas informações para a consulta externa, que as utiliza como base de uma comparação. Por exemplo, essa subconsulta correlacionada produz uma lista de registros de inventário para itens com preços acima da média de um depósito. A consulta externa passa as informações de depósito para a consulta interna e a consulta interna envia o preço médio de volta à consulta externa:

SELECT part_number, price, warehouse_code FROM inventário i1 ONDE preço> (SELECT AVG (price) FROM inventário i2 ONDE warehouse_code.i1 = warehouse_code.i2);

As duas consultas usam as tabelas de alias “I1” e “I2”. Embora se refiram à mesma tabela, o uso do alias permite que as consultas sejam tratadas como duas entidades separadas.

Desvantagens da operação

Para subconsultas correlacionadas, o SQL avalia a consulta interna uma vez para cada registro na consulta externa. Quando os tamanhos das tabelas aumentam, o processo leva mais tempo. Se você achar que uma subconsulta correlacionada leva um tempo excessivo para concluir, considere usar uma alternativa, como carregar uma tabela temporária com resultados intermediários e, em seguida, processe a tabela temporária diretamente na tabela principal com uma subconsulta simples. Embora menos elegante, pode ser muito mais rápido.

Referências

 

Você pode estar interessado:

Deixe um comentário