>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

Quais são as vantagens e desvantagens de uma associação ou subconsulta?


Uma subconsulta é uma consulta dentro de outra consulta. Uma subconsulta também pode conter outra subconsulta. Essas são chamadas de subconsultas "aninhadas". Uma junção ocorre quando duas ou mais tabelas são referenciadas na cláusula "De" da consulta. Diferentes mecanismos de banco de dados podem otimizar subconsultas e junções de maneira diferente. Por exemplo, o otimizador do DB2 transformará uma subconsulta em uma junção se determinados critérios forem atendidos. Em alguns casos, uma junção produz melhor desempenho do que uma subconsulta.

O que faz uma subconsulta


Uma subconsulta é uma instrução "SELECT" dentro da cláusula "WHERE" ou "HAVING" de uma instrução externa "INSERT", "UPDATE", "MERGE" ou "DELETE". A subconsulta também é chamada de "consulta interna" ou "seleção interna". A subconsulta pode ter uma cláusula "FROM" com uma ou mais tabelas e opcionalmente pode ter uma cláusula "WHERE", "GROUP BY" ou "HAVING". Está sempre entre parênteses.

Vantagens e desvantagens das subconsultas


As subconsultas são vantajosas porque estruturam a consulta para isolar cada parte da instrução, executam a mesma operação que normalmente exigiria junções e uniões complexas e são mais fáceis de ler. As subconsultas foram a base para o nome "Structured Query Language" (SQL) por causa de sua estrutura de fácil leitura. Uma desvantagem é que você não pode modificar uma tabela e selecionar na mesma tabela dentro de uma subconsulta na mesma instrução SQL. As subconsultas também podem levar mais tempo para serem executadas do que uma junção devido à forma como o otimizador de banco de dados as processa.

O que faz uma associação


A maioria das subconsultas pode ser reescrita como junções, e a maioria das junções pode ser reescrita como subconsultas. Uma junção define duas ou mais tabelas por uma coluna relacionada. As tabelas geralmente são unidas em chaves primárias e estrangeiras. Por exemplo, uma tabela de funcionários pode ter uma chave primária de uma coluna de ID de funcionário, enquanto uma tabela de quadro de horários também tem uma coluna de ID de funcionário que é uma chave estrangeira para a tabela de funcionários. A junção SQL pode ser escrita como "WHERE employee.empid =timesheet.empid" ou "FROM employee JOIN timesheet ON (employee.empid =timesheet.empid)".

Vantagens e desvantagens das associações


A principal vantagem de uma junção é que ela é executada mais rapidamente. O aumento de desempenho pode não ser percebido pelo usuário final. No entanto, como as colunas são especificamente nomeadas, indexadas e otimizadas pelo mecanismo de banco de dados, o tempo de recuperação quase sempre será mais rápido que o de uma subconsulta. Existem também junções internas e externas, junções esquerda e direita, junções completas e junções cruzadas. Uma desvantagem do uso de junções é que elas não são tão fáceis de ler quanto as subconsultas. Outra desvantagem é que pode ser confuso saber qual junção é o tipo apropriado de junção a ser usado para produzir o conjunto de resultados desejado correto.