Como usar select em uma instrução de atualização

Os designers do Structured Query Language (SQL) criou uma ferramenta poderosa para gerenciar dados com apenas alguns comandos simples. Uma das mais poderosas construções ocorre quando os comandos estão aninhados. A Select, Update ou o comando Excluir usa um ou mais adicional selecionar os comandos para limitar o seu funcionamento. Como exemplo, uma atualização sobre a tabela cliente ocorre somente quando as vendas totais agregados de vários registros de vendas totais mais de US $ 250. Siga estes passos para criar vários comandos Atualizar aninhadas.

Coisas que você precisa

  • banco de dados SQL, tais como Oracle, Sybase, Microsoft SQL Server ou MySQL
  • compreensão básica de comandos SQL e editor de consulta
  • Abra o editor de consulta SQL e criar um novo banco de dados chamado SampleDB. Escolha este banco de dados para a sessão de consulta.

    Criar banco de dados SampleDB;

    Use SampleDB;

    Estes exemplos foram criados usando o editor de consulta no prazo de Gerenciamento Microsoft SQL Server 2008 Studio Express.

  • Criar duas tabelas, clientes e vendas, e em seguida, adicione alguns registros de ambas as tabelas utilizando o seguinte script.

    Criar tabela CLIENTES

    (Chave primária int CustomerID,

    Nome VARCHAR (50),

    varchar Status (10));

    Inserir valores de clientes (1, `John Smith`, `New`);

    inserir valores de clientes (2, `Mary Jones`, `New`);

    Inserir valores de clientes (3, `Fred Adams`, `New`);

    Criar Vendas Tabela

    (SalesID int chave primária,

    Cliente int Referências Clientes,

    int montante);

    inserir valores de vendas (1, 1, 500);

    inserir valores de vendas (2, 1, 250);

    inserir em valores de venda (3, 3, 50);



  • Criar uma consulta aninhada, combinando uma atualização com uma instrução SELECT que define o estatuto do cliente para o Active para aqueles clientes que têm actividade na tabela de vendas.

    atualização clientes

    Definir status = "Active"

    onde Cliente Em

    (Escolha do Cliente A partir de Vendas);

    Esta é uma declaração de atualização SQL padrão que define o campo de status para Ativo para um conjunto selecionado de registros na tabela de cliente. Em uma consulta aninhada, onde cláusula inclui uma ou mais instruções SELECT entre parênteses (). Cada instrução SELECT retorna uma lista de valores que podem ser comparados a um campo na tabela. Neste caso, somente os registros de clientes que têm IDs de clientes encontrados na tabela de Venda será actualizado.

  • Criar uma segunda consulta aninhada usando uma instrução SELECT que agrega os totais de vendas.

    atualização clientes

    Definir status = `premium`

    onde Cliente Em

    (Selecione Cliente de Vendas

    grupo pelo Cliente

    Tendo sum (Amount)> 250);

    Ao analisar consultas aninhadas, comece com as instruções SELECT encontrados na cláusula WHERE. Neste caso, a tabela de vendas é agregado por código do cliente (Grupo por Cliente) com o total de vendas (Sum (valor)). Apenas aqueles com vendas totais superiores a US $ 250 são escolhidos. Esta lista é então usada para filtrar quais registros de clientes são atualizados (cliente 1).

  • Criar mais uma consulta aninhada que seleciona registros de clientes que não são encontrados na tabela de vendas.

    atualização clientes

    Definir status = `inativa`

    onde Cliente Not In

    (Escolha do Cliente A partir de Vendas);

    Esta primeira consulta seleciona uma lista de IDs de clientes encontrados na tabela de vendas (1 e 3) e, em seguida, atualiza os não constantes na lista (cliente 2).

dicas avisos

  • Como as consultas aninhadas executar duas pesquisas separadas, o tempo de execução, por vezes, torna-se um problema.
De esta maneira? Compartilhar em redes sociais:

LiveInternet