Consultas de ação

Explicamos detalhadamente as sentenças delete, insert into e update, para a realização de consultas nos bancos de dados.

Por Claudio


Publicado em: 29/10/07
Valorize este artigo:
As consultas de ação são aquelas que não devolvem nenhum registro, são as encarregadas de ações como adicionar, excluir e modificar registros. Tanto as sentenças de atualização como as de exclusão desencadeiarão (segundo o motor de dados) as atualizações em cascata, exclusões em cascata, restrições e valores padrões definidos para os diferentes campos ou tabelas afetadas pela consulta.

DELETE

Cria uma consulta de eliminação que elimina os registros de uma ou mais das tabelas listadas na cláusula FROM que satisfaçam a cláusula WHERE. Esta consulta elimina os registros completos, não é possível eliminar o conteúdo de algum campo em concreto. Sua sintaxe é:

   DELETE FROM Tabela WHERE criterio

Uma vez eliminados os registros utilizando uma consulta de exclusão, não se poderá desfazer a operação. Se desejar saber que registros foram eliminados, primeiro examine os resultados de uma consulta de seleção que utilize o mesmo critério e depois execute a consulta de exclusão. Mantenha cópias de segurança (back ups) de seus dados em todo momento. Se eliminar os registros errados poderá recuperá-los a través das cópias de segurança.

DELETE
FROM
   Empregados
WHERE
   Cargo = 'Vendedor'

INSERT INTO

Agrega um registro em uma tabela. É conhecida como uma consulta de dados adicionados. Esta consulta pode ser de dois tipos: Inserir um único registro ou Inserir em uma tabela os registros contidos em outra tabela.

Para inserir um único Registro:

Neste caso a sintaxe é a seguinte:

    INSERT INTO Tabela (campo1, campo2, ..., campoN)
   VALUES (valor1, valor2, ..., valorN)

Esta consulta grana no campo1 o valor1, no campo2 e valor2 e assim, sucessivamente.

Para selecionar registros e inseri-los em uma tabela nova

Neste caso, a sintaxe é a seguinte:

   SELECT campo1, campo2, ..., campoN INTO novatabela
   FROM tabelaorigem [WHERE criterios]

Pode-se utilizar as consultas de criação de tabela para arquivar registros, fazer cópias de segurança das tabelas ou fazer cópias para exportar a outro banco de dados ou utilizar em informes que mostrem os dados de um período de tempo concreto. Por exemplo, se poderia criar um informe de Vendas mensais por região executando a mesma consulta de criação de tabela a cada mês.

Para inserir Registros de outra Tabela:

Neste caso, a sintaxe é:

   INSERT INTO Tabela [IN base_externa] (campo1, campo2, , campoN)
   SELECT TabelaOrigem.campo1, TabelaOrigem.campo2,,TabelaOrigem.campoN FROM Tabela Origem

Neste caso se selecionarão os campos 1,2,..., n da tabela origem e se gravarão nos campos 1,2,.., n da Tabela. A condição SELECT pode incluir a cláusula WHERE para filtrar os registros a copiar. Se Tabela e Tabela Origem possuem a mesma estrutura podemos simplificar a sintaxe a:

   INSERT INTO Tabela SELECT Tabela Origem.* FROM Tabela Origem

Desta forma os campos de Tabela Origem se gravarão em Tabela, para realizar esta operação é necessário que todos os campos de Tabela Origem estejam contidos com igual nome em Tabela. Com outras palavras que Tabela possua todos os campos de Tabela Origem (igual nome e igual tipo).

Neste tipo de consulta há que ter especial atenção com os campos contadores ou auto-numéricos visto que ao inserir um valor em um campo deste tipo se escreve o valor que contenha seu campo homólogo na tabela origem, não incrementando-se como lhe corresponde.

Pode-se utilizar a instrução INSERT INTO para agregar um registro único a uma tabela, utilizando a sintaxe da consulta de adição de registro único tal e como se mostrou anteriormente. Nesse caso, seu código especifica o nome e o valor de cada campo do registro. Deve especificar cada um dos campos do registro ao que se vai atribuir um valor assim como o valor para tal campo. Quando não se especifica tal campo, se insere o valor pré-determinado ou Null. Os registros se agregam no final da tabela.

Também se pode utilizar INSERT INTO para agregar um conjunto de registros pertencentes a outra tabela ou consulta utilizando a cláusula SELECT... FROM como se mostrou anteriormente na sintaxe da consulta de adição de múltiplos registros. Neste caso, a cláusula SELECT especifica os campos que se vão agregar na tabela destino especificada.

A tabela destino ou origem pode especificar uma tabela ou uma consulta. Se a tabela destino contiver uma chave principal, há que certificar-se que é a única, e com valores não nulos; se não for assim, não se agregarão os registros. Se se agregam registros a uma tabela com um campo Contador, não se deve incluir o campo Contador na consulta. Pode-se empregar a cláusula IN para agregar registros a uma tabela em outro banco de dados.

Pode-se averiguar os registros que se agregarão na consulta executando primeiro uma consulta de seleção que utilize o mesmo critério de seleção e ver o resultado. Uma consulta de adição copia os registros de uma ou mais tabelas em outra. As tabelas que contém os registros que se vão agregar não se verão afetadas pela consulta de adição. Ao invés de agregar registros existentes em outra tabela, pode-se especificar os valores de cada campo em um novo registro utilizando a cláusula VALUES. Se se omite a lista de campos, a cláusula VALUES deve incluir um valor para cada campo da tabela, de outra forma falhará INSERT.

Exemplos

INSERT INTO
    Clientes
SELECT
    ClientesAntigos.*
FROM
    ClientesNovos

SELECT
    Empregados.*
INTO Programadores
FROM
   Empregados
WHERE
   Categoria = 'Programador'

Esta consulta cria uma tabela nova chamada programadores com a mesma estrutura que a tabela empregado e copia aqueles registros cujo campo categoria seja programador

INSERT INTO
   Empregados (Nome, Sobrenome, Cargo)
VALUES
   (
     'Luis', 'Sánchez', 'Estagiario'
    )

INSERT INTO
    Empregados
SELECT
   Vendedores.*
FROM
   Vendedores
WHERE
    Cidade = 'Madri'

UPDATE

Cria uma consulta de atualização que muda os valores dos campos de uma tabela especificada baseando-se em um critério específico. Sua sintaxe é:

   UPDATE Tabela SET Campo1=Valor1, Campo2=Valor2, CampoN=ValorN
   WHERE Criterio

UPDATE é especialmente útil quando se deseja mudar um grande número de registros ou quando estes se encontram em múltiplas tabelas. Pode mudar vários campos de uma só vez. O exemplo seguinte incrementa os valores Quantidade pedidos em um 10 por cento e os valores Transporte em um 3 por cento para aqueles que se tiverem enviado ao Reino Unido.:

UPDATE
    Pedidos
SET
    Pedido = Pedidos * 1.1,
   Transporte = Transporte * 1.03
WHERE
    PaisEnvio = 'ES'

UPDATE não gera nenhum resultado. Para saber que registros mudarão, há que examinar primeiro o resultado de uma consulta de seleção que utilize o mesmo critério e depois executar a consulta de atualização.

UPDATE
   Empregados
SET
   Grau = 5
WHERE
   Grau = 2

UPDATE
   Produtos
SET
   Preco = Preco * 1.1
WHERE
    Provedor = 8
   AND
    Familia = 3

Se em uma consulta de atualização suprimimos a cláusula WHERE todos os registros da tabela assinalada serão atualizados.

UPDATE
    Empregados
SET
   Salario = Salario * 1.1






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato