Qual a diferença entre uma subconsulta e uma view?
Qual a diferença entre uma subconsulta e uma view?
Oi, Kevin, tudo bem?
Obrigada por compartilhar isso com a gente, sinto muito que os exemplos abordados pelo instrutor não tenham ficado tão claros. Receber seu feedback é muito importante para a melhoria dos conteúdos da plataforma, agradeço sua iniciativa em trazer esse ponto no fórum.
Uma subconsulta é uma consulta aninhada dentro de outra consulta. Quando rodamos um script SQL que contém uma subconsulta, esta é executada primeiro e, em seguida, seu resultado é usado como "entrada" na consulta principal. Elas são geralmente usadas para recuperar informações de uma tabela com base em uma condição específica presente na consulta externa.
Na aula, vimos o seguinte código:
SELECT * FROM tabela_de_clientes WHERE BAIRRO
IN (SELECT DISTINCT BAIRRO FROM tabela_de_vendedores);
O segundo SELECT
, de cima para baixo, é uma subconsulta. A partir do seu resultado (que serão todos os nomes dos bairros presentes na tabela de vendedores), executamos um novo SELECT
que irá apresentar todos os clientes que moram nestes mesmos bairros.
Enquanto isso, uma view pode ser interpretada como uma tabela virtual, ou seja, uma tabela que não existe de forma concreta em nosso banco de dados. Seu intuito é simplificar, por exemplo, consultas rotineiras. Imagine um caso hipotético em que você precisa realizar diariamente uma busca que possui 20 linhas de comando. Para otimizar esse procedimento, podemos criar uma view que armazenará essa consulta e que terá um nome próprio. Sempre que precisarmos realizar a busca armazenada na view, podemos simplesmente consultá-la pelo nome, o que nos proporciona o mesmo resultado de antes, porém com menos comandos a serem digitados!
Para criar uma view, usamos uma sintaxe parecida com esta:
CREATE view nome_da_view AS
SELECT * FROM tabela
A partir disso, teremos uma visualização personalizada com base em determinada consulta. A view criada poderá ser acessada e manipulada conforme as nossas necessidades!
Kevin, espero ter ajudado com a explicação sobre subconsultas e views, estarei aqui para conversarmos caso surjam novas dúvidas sobre esse assunto ou sobre outros estudos.
Um forte abraço :)