? Programadores e administradores de banco de dados usam o Structured Query Language para criar bancos de dados de computador e relatar as informações neles. Uma instrução SQL pode conter testes condicionais complexas para selecionar conjuntos específicos de dados de tabelas em um banco de dados . Uma subconsulta correlacionada tem dois testes, um aninhado dentro de outro ; cada teste depende do resultado do outro. SQL
A maioria dos bancos de dados relacionais modernas incorporam SQL para adicionar e atualizar dados , a criação de estruturas e coleta de informações. SQL é baseada em teorias sobre dados desenvolvidos na década de 1970 e , desde então, continuamente refinados . Ele consiste em um conjunto de instruções , incluindo SELECT, INSERT, CREATE e DELETE, seguido de várias cláusulas que especificam os dados que está sendo gerenciados e opções, tais como classificação e agrupamento . O uso generalizado de bancos de dados é devido à flexibilidade e sofisticação do SQL , que permite que as organizações para analisar os grupos complexos de dados de muitas maneiras
consultas e subconsultas
Um comando SQL. para recuperar dados é chamada de consulta , normalmente , os programadores usar a instrução SELECT para consultas , embora muitas das regras para a busca de dados também se aplicam a inserir, excluir e UPDATE. Uma consulta SELECT simples pode exibir o conteúdo de uma tabela de dados , tais como a seguinte declaração :
SELECT * FROM estoque;
Esta consulta lista todos os registros em uma tabela chamada "inventário ". você faz resultados de uma consulta mais específica , adicionando testes condicionais , como nesta declaração :
SELECT * FROM inventário ONDE warehouse_code = ' chicago5 ';
esta consulta mostra apenas os registros de inventário de um armazém código, chicago5
. uma subconsulta é uma consulta dentro de outra consulta . Os seguintes registros de inventário listas de indicação para aqueles itens de armazéns em uma determinada região :
SELECT * FROM inventário ONDE warehouse_code IN (SELECT warehouse_code DE ONDE armazéns região = ' midwest ' ) ;
Note que esta consulta tem duas instruções SELECT , um que exibe registros de inventário , e outra que oferece a consulta principal com os códigos de armazém.
subconsulta correlacionada
um correlacionados subconsulta, duas consultas principais e subordinadas puxar os dados da mesma tabela . A consulta interna desempenha uma função agregada, como uma estatística , e alimenta esta informação para consulta externa , que a utiliza como base de comparação. Por exemplo, este subconsulta correlacionada produz uma lista de registros de estoque para os itens com preços superiores a média de um armazém. A consulta externa passa as informações de armazém para a consulta interna , ea consulta interna envia o preço médio de volta para a consulta externa :
Selecione part_number , preço, warehouse_code DE inventário i1 ONDE preço > (SELECT AVG (preço ) FROM inventário i2 ONDE warehouse_code.i1 = warehouse_code.i2 ); " . i2 "
as duas consultas usar aliases de tabela " i1 " e, embora eles se referem à mesma mesa, usando aliases permite que as consultas para tratá-lo como duas entidades separadas .
problemas de desempenho
Para subconsultas correlacionadas , SQL executa a consulta interna uma vez para cada registro na consulta externa. Como tamanhos de mesa tornaram-se maiores , o processo é mais demorado. Se você achar que uma subconsulta correlacionada leva uma enorme quantidade de tempo para ser concluído, considerar o uso de uma alternativa , como o carregamento de uma tabela temporária com resultados intermediários , então o processamento da tabela temporária diretamente contra a mesa principal com uma subconsulta simples. Embora menos elegante , pode ser significativamente mais rápido .