Os designers de Structured Query Language (SQL) criou uma ferramenta poderosa para gerenciar dados com apenas alguns comandos simples. Uma das construções mais poderosos ocorre quando os comandos estão aninhados . Um comando Select, Update ou Delete utiliza um ou mais Select adicional comandos para limitar o seu funcionamento. Como exemplo, uma atualização na tabela Cliente ocorre somente quando as vendas totais agregados de vários recordes de vendas total de mais de US $ 250. Siga estes passos para criar vários comandos de atualização aninhadas. Coisas que você precisa
banco de dados SQL , tais como Oracle, Sybase, Microsoft SQL Server ou MySQL
Conhecimento básico dos comandos SQL e editor de consultas
Show Mais instruções
1
Abra o editor de consultas SQL e criar um novo banco de dados chamado SampleDB . . Escolha esta base de dados para a sessão de consulta
Criar banco de dados SampleDB ;
Use SampleDB ;
Estes exemplos foram criados usando o editor de consultas no Microsoft SQL Server 2008 Management Studio Express.
2
Criar duas tabelas, clientes e vendas , e em seguida, adicione alguns registros de ambas as tabelas usando o seguinte script.
CREATE TABLE clientes
(CustomerID int chave primária,
Nome varchar ( 50) ,
Estado varchar (10 ) );
Insira em clientes Valores (1, ' John Smith' , 'Novo' ) ;
inserir Clientes Values (2, ' Mary Jones ', ' Novo ');
Insira em clientes Valores ( 3 ', Fred Adams ', ' Novo ');
Criar Mesa Vendas
( SalesID int chave primária , Baratos
CustomerID int Referências Clientes ,
valor int);
inserir valores de vendas ( 1, 1, 500 );
inserir valores de vendas ( 2, 1, 250) ;
inserir valores de vendas ( 3, 3, 50);
3
Criar uma consulta aninhada , combinando uma atualização com uma instrução SELECT que define o status do cliente para o Active para aqueles clientes que têm atividade na tabela de vendas .
atualização clientes
Set
status = "Active"
onde CustomerID Em
( Selecione Cliente de Vendas );
Esta é uma instrução Update SQL padrão que define o campo de status para ativo para um selecionado conjunto de registros na tabela Cliente . Em uma consulta aninhada, a cláusula WHERE inclui uma ou mais instruções SELECT entre parênteses () . Cada instrução SELECT retorna uma lista de valores que podem ser comparadas a um campo na tabela. Neste caso, apenas os registros de clientes que têm IDs de clientes encontrados na tabela de vendas será atualizada.
4
Crie uma segunda consulta aninhada usando uma instrução SELECT que agrega totais de vendas .
atualização clientes
Definir status =
' premium ' onde CustomerID Em
( Selecione Cliente de Vendas
grupo por CustomerID
Tendo soma (Valor ) > 250 );
ao analisar consultas aninhadas , comece com as instruções Select encontradas na cláusula WHERE. Neste caso , a tabela de vendas é agregado por código do cliente (Grupo por Cliente ) para o total dos valores de alienação ( Sum (Valor ) ) . Apenas aqueles com vendas totais superiores a US $ 250 são escolhidos . Esta lista é usada para filtrar quais registros de clientes são atualizados ( cliente 1).
5
Criar uma consulta mais aninhada que seleciona registros de clientes que não são encontrados na tabela de vendas .
atualização clientes
Definir status = ' inativo ' em
onde CustomerID Not In
( Selecione Cliente de Vendas );
Esta consulta seleciona primeiro de uma lista de identificações de clientes encontrados na tabela de vendas (1 e 3 ) e em seguida, atualiza os não constantes na lista ( cliente 2).