MySQL MariaDB

Subconsultas MySQL

Subconsultas MySQL
Uma subconsulta é uma consulta SQL dentro de uma consulta maior que é recursiva ou uma subconsulta é considerada uma consulta interna. Em contraste, uma consulta externa é denominada como a consulta que inclui a subconsulta. Uma subconsulta do MySQL pode ser incorporada nas consultas, incluindo SELECT, INSERT, UPDATE ou DELETE. Além disso, em outra subconsulta, uma subconsulta pode ser aninhada. A subconsulta de frase deve ser fechada entre colchetes onde quer que seja usada. Ensinaremos como e quando usar a subconsulta MySQL para compor consultas complicadas e descrever a ideia da subconsulta associada. Abra o shell da linha de comando em seu desktop e escreva sua senha para começar a usá-lo. Pressione Enter e continue.

Subconsulta em registros de tabela única:

Crie uma tabela chamada 'animais' nos dados do banco de dados.'Adicione o seguinte registro de animais diferentes com propriedades diferentes, conforme exibido. Busque este registro usando a consulta SELECT da seguinte maneira:

>> SELECIONE * DOS dados.animais;

Exemplo 01:

Vamos recuperar os registros limitados desta tabela usando as subconsultas. Usando a consulta abaixo, sabemos que a subconsulta será executada primeiro e sua saída será usada na consulta principal como entrada. Uma subconsulta é simplesmente buscar a idade em que o preço do animal é 2500. A idade de um animal cujo preço é 2500 é 4 na tabela. A consulta principal irá selecionar todos os registros da tabela onde a idade é maior que 4, e o resultado é dado abaixo.

>> SELECIONE * DOS dados.animais WHERE Idade> (SELECIONE Idade DOS dados.animais ONDE Preço = '2500');

Exemplo 02:

Vamos usar a mesma tabela em diferentes situações. Neste exemplo, usaremos alguma função em vez da cláusula WHERE na subconsulta. Estivemos tomando a média de todos os preços dados para animais. O preço médio será 3189. A consulta principal irá selecionar todos os registros de animais com um preço superior a 3189. Você obterá o resultado abaixo.

>> SELECIONE * DOS dados.animais ONDE Preço> (SELECIONE AVG (Preço) DOS dados.animais);

Exemplo 03:

Vamos usar a cláusula IN na consulta SELECT principal. Em primeiro lugar, a subconsulta buscará preços superiores a 2500. Depois disso, a consulta principal irá selecionar todos os registros da tabela 'animais' onde o preço se encontra no resultado da subconsulta.

>> SELECIONE * DOS dados.animais ONDE Preço EM (SELECIONE Preço DE dados.animais ONDE Preço> 2500);

Exemplo 04:

Temos usado a subconsulta para buscar o nome do animal cujo preço é 7000. Como esse animal é uma vaca, é por isso que o nome 'vaca' será retornado para a consulta principal. Na consulta principal, todos os registros serão recuperados da tabela onde o nome do animal é 'vaca.'Como temos apenas dois registros para' vaca 'animal, é por isso que temos a saída abaixo.

>> SELECIONE * DOS dados.animais WHERE Nome = (SELECIONE o nome DOS dados.animais ONDE Preço = '7000');

Subconsulta em vários registros de tabela:

Assuma as duas tabelas abaixo, 'aluno' e 'professor', em seu banco de dados. Vamos tentar alguns exemplos de subconsultas usando essas duas tabelas.

>> SELECIONE * DOS dados.aluna;
>> SELECIONE * DOS dados.professor;

Exemplo 01:

Iremos buscar dados de uma tabela usando a subconsulta e usá-los como entrada para a consulta principal. Isso significa que essas duas tabelas podem se relacionar de alguma maneira. No exemplo abaixo, usamos a subconsulta para buscar o nome do aluno na tabela 'aluno' onde o nome do professor é 'Samina.'Esta consulta irá retornar' Samina 'para a tabela de consulta principal' professor.'A consulta principal irá então selecionar todos os registros relacionados ao nome do professor' Samina.'Como temos dois registros para este nome, portanto, temos este resultado.

>> SELECIONE * DOS dados.professor WHERE TeachName = (SELECIONE TeachName FROM dados.aluno ONDE TeachName = 'Samina');

Exemplo 02:

Para elaborar a subconsulta no caso de tabelas diferentes, tente este exemplo. Temos uma subconsulta que busca o nome do professor da tabela aluno. O nome deve ter 'i' em qualquer posição em seu valor. Isso significa que todos os nomes na coluna TeachName tendo 'i' em seu valor serão selecionados e retornados para a consulta principal. A consulta principal irá selecionar todos os registros da tabela 'professor' onde o nome do professor está na saída retornada pela subconsulta. Como a subconsulta retornou 4 nomes de professores, por isso teremos um registro de todos esses nomes que residem na tabela 'professor.'

>> SELECIONE * DOS dados.professor WHERE TeachName IN (SELECIONE TeachName FROM dados.aluno ONDE TeachName LIKE '% i%');

Exemplo 03:

Considere as duas tabelas abaixo, 'pedido' e 'pedido1'.

>> SELECIONE * DOS dados.pedido;
>> SELECIONE * DOS dados.pedido1;

Vamos tentar uma cláusula ANY neste exemplo para elaborar uma subconsulta. A subconsulta irá selecionar o 'id' da tabela 'pedido1', onde a coluna 'Status' tem um valor de 'Não pago.'O' id 'pode ser mais de 1. Isso significa que mais de 1 valor seria retornado para a consulta principal para obter os resultados de 'ordem' da tabela. Neste caso, qualquer 'id' pode ser usado. Temos o resultado abaixo para esta consulta.

>> SELECIONE Item, Vendas, ID DE dados.pedido WHERE id = ANY (SELECT id FROM data.pedido1 ONDE Status = 'Não pago');

Exemplo 04:

Suponha que você tenha os dados abaixo na tabela 'pedido1' antes de aplicar qualquer consulta.

>> SELECIONE * DOS dados.pedido1;

Vamos aplicar a consulta dentro de uma consulta para excluir alguns registros da tabela 'pedido1'. Em primeiro lugar, a subconsulta irá selecionar o valor 'Status' da tabela 'pedido' onde o item é 'Livro.'A subconsulta retorna' Pago 'como o valor. Agora, a consulta principal excluirá as linhas da tabela 'pedido1' onde o valor da coluna 'Status' é 'Pago.'

>> DELETE FROM data.order1 WHERE Status = (SELECT Status FROM data.pedido ONDE item = 'Livro');

Após a verificação, temos agora os registros abaixo permaneceram na tabela 'pedido1' após a execução da consulta.

>> SELECIONE * DOS dados.pedido1;

Conclusão:

Você trabalhou de forma eficiente com muitas subconsultas em todos os exemplos acima. Esperamos que tudo esteja claro e limpo agora.

Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...
Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...