Qual a principal vantagem de usar EXISTS em vez de INNER JOIN ao atualizar dados entre tabelas?
EXISTS permite verificar a existência de registros em outra tabela sem precisar retornar os dados dessa tabela, simplificando a query e potencialmente melhorando a performance.
Como o comando EXISTS decide quais registros da tabela de destino devem ser considerados?
Ele verifica se existe alguma correspondência na tabela fonte que satisfaça a condição especificada na subquery dentro do EXISTS.
O que o número 1 representa dentro da subquery do EXISTS (ex: SELECT 1 FROM …)?
O 1 é um valor arbitrário que indica “verdadeiro” ou “existe”. O importante é a existência de pelo menos uma linha que satisfaça a condição WHERE da subquery.
Em que situação o EXISTS não trará um registro da tabela de “VENDEDORES”, mesmo que ele exista na tabela “TABELA_DE_VENDEDORES_FONTE”?
Se a condição de correspondência (ex: V.MATRICULA = SUBSTR(TVF.MATRICULA, 3, 3)) não for satisfeita para esse vendedor na tabela fonte.
Qual é a principal diferença entre EXISTS e NOT EXISTS?
EXISTS verifica se existe pelo menos um registro que satisfaz a condição na subquery, enquanto NOT EXISTS verifica se não existe nenhum registro que satisfaça a condição.
Como o EXISTS se comporta em relação a valores NULL?
O EXISTS simplesmente verifica a existência de linhas que satisfaçam a condição, independentemente de haver valores NULL nas colunas envolvidas.
Em que tipo de cenário o uso de EXISTS é particularmente útil?
Em cenários onde você precisa verificar a existência de dados em outra tabela antes de realizar uma ação (como atualizar ou excluir registros), sem a necessidade de trazer os dados dessa tabela.
O EXISTS pode ser usado com múltiplas condições na cláusula WHERE dentro da subquery?
Sim, você pode usar múltiplas condições na cláusula WHERE para refinar ainda mais a busca por correspondências na tabela fonte.
Quando você usaria NOT EXISTS em vez de EXISTS?
Quando você precisa selecionar registros de uma tabela que não têm correspondência em outra tabela, ou seja, quando a ausência de uma correspondência é a condição para selecionar os dados.
Qual é o resultado de uma query que usa NOT EXISTS se a subquery não retorna nenhuma linha?
A query principal retornará todos os registros da tabela principal, pois a condição de “não existir correspondência” será verdadeira para todos os registros.
EXISTS e NOT EXISTS podem ser usados na mesma query? Se sim, como?
Sim, eles podem ser combinados para criar lógicas mais complexas. Por exemplo, você pode selecionar registros que satisfazem uma condição de existência e outra de não existência.
Qual é a relação entre NOT EXISTS e LEFT JOIN com WHERE coluna IS NULL?
Ambos podem ser usados para encontrar registros que não têm correspondência em outra tabela, mas NOT EXISTS geralmente é mais eficiente e legível para essa finalidade.
Qual a função do EXISTS em um comando UPDATE?
Garante que a atualização ocorra apenas para registros que existem em ambas as tabelas (a que está sendo atualizada e a tabela de origem dos dados).
Por que é importante usar uma subquery correlacionada ao usar UPDATE com EXISTS?
Para estabelecer uma relação entre as tabelas, permitindo que a subquery acesse os campos da tabela que está sendo atualizada e compare com os dados da tabela de origem.
Como o UPDATE com EXISTS ajuda a evitar erros ao atualizar dados com base em outra tabela?
Garante que apenas os registros que correspondem aos critérios especificados na condição WHERE e que existem em ambas as tabelas sejam atualizados, evitando a atualização de registros incorretos ou inexistentes.