LOGO UOL HOST

Receba por e-mail as novidades e publicações da Academia UOL HOST

Consultando Dados no SQL Server: Outras operações com dados (CRUD)

Wagner Crivelini

Confira a segunda parte do artigo e veja como criar outras operações

As operações de manipulação de dados são chamadas, geralmente, de CRUD, sigla que identifica as seguintes operações:

- C (Create) para inserção

- R (Read) para leitura

- U (Update) para atualização

- D (Delete) para exclusão

No artigo anterior, mostrei operações básicas de leitura de dados. Desta vez vou apresentar outras operações: inserção, atualização e exclusão.

Inserindo dados

Imagine que sua aplicação tenha um formulário no qual você possa cadastrar um novo produto.

Observando a tabela tblProduct no modelo acima, vemos que para cadastrar um novo produto precisamos informar três dados: o código do novo produto, o seu nome e o código do seu fornecedor (codSupplier).

A coisa parece muito simples, mas existem alguns detalhes a se observar:

1. O código do novo produto tem que ser diferente de todos os outros códigos cadastrados na tabela.

2. O nome do produto não deve ser igual a nenhum outro, exatamente por se tratar de um novo produto.

3. O código do fornecedor tem que ser obrigatoriamente um código que já esteja cadastrado na tabela tblSupplier.

Em geral, estas três condições são reforçadas pelas regras de integridade que são criadas dentro do banco de dados. As regras, neste caso, são as chaves primárias, chaves estrangeiras, índices únicos e campos “identidade”.

Estes são assuntos importantes na criação do banco, mas que não serão discutidos aqui. E para simplificar a criação dos exemplos apresentados consideramos que tais regras já existem no nosso banco.

Sendo assim, quando inserirmos o novo produto não precisaremos informar um código para o novo produto, porque entendemos que este campo foi definido com a propriedade IDENTITY e assim o banco vai gerar um novo automaticamente. Com esta simplificação, o nosso formulário seria reduzido a uma caixa de texto para se digitar o nome do novo produto e uma caixa de combinação para listar os códigos e nomes de fornecedores cadastrados.

Vamos, então, inserir um novo registro, em que o nome do produto seja “Abacaxi Pérola” e o código do fornecedor 25. Para isso executamos o comando SQL a seguir:

INSERT INTO tblProduct (name, codSupplier)

VALUES ('Abacaxi Pérola' , 25)

Outro modo de inserir dados em uma tabela é transferindo dados que já existam em outra tabela. Considere agora que vamos inserir esses dados manualmente (direto no banco de dados), mas conhecemos apenas o nome do fornecedor de abacaxis, que é a empresa “Frutas VIP”. Neste caso, precisamos ler os dados da tabela tblSupplier e inserir os dados na tabela tblProduct.

INSERT INTO tblProduct (name, codSupplier)

SELECT 'Abacaxi Pérola' as ProductName, x.codSupplier

FROM tblSupplier x

WHERE x.name = 'Frutas VIP'

O principal cuidado com esta sintaxe de INSERT é o mesmo que devemos ter com as próximas instruções de UPDATE e DELETE. É necessário escrever direitinho o texto usado como filtro dos dados, que no caso acima era o nome do produto. Se o filtro estiver errado, nenhum registro vai ser encontrado na tabela de origem e, consequentemente, nenhum registro novo será inserido na tabela de destino.

Por outro lado, se você não incluir nenhum filtro, omitindo a cláusula WHERE, todos os registros da tabela de origem serão selecionados e então todos eles serão inseridos na tabela de destino. O efeito disso pode ser catastrófico quando se trabalha com tabelas muito grandes.

Atualizando dados

Para alterar dados da tabela, usamos a instrução UPDATE. Se desejarmos, por exemplo, alterar o nome do produto “Abacaxi Pérola” para “Abacaxi Havaí”, basta executarmos a instrução a seguir.

UPDATE tblProduct

SET   name  = 'Abacaxi Havaí'

WHERE name  = 'Abacaxi Pérola'

Além do cuidado com a cláusula WHERE, citado anteriormente, devemos evitar alteração nos campos de código. Códigos, geralmente, são usados como chaves primárias ou chaves estrangeiras. As chaves primárias, por definição, nunca devem mudar. E as chaves estrangeiras se relacionam com chaves primárias de outras tabelas e, portanto, também não mudam.

Excluindo dados

A eliminação de registros é feita com a instrução DELETE. Esta instrução tem que ter sempre três cláusulas: DELETE, FROM e WHERE.

Em teoria, o WHERE é opcional e a instrução vai rodar mesmo que ele não seja especificado. Contudo, sua tabela estará vazia no fim da operação. Todos os registros serão eliminados!

O próximo exemplo mostra a sintaxe desta instrução.

DELETE

FROM tblProduct

WHERE name = 'Abacaxi Pérola'

Com este artigo, encerramos a visão geral sobre as operações CRUD no SQL Server. Os exemplos apresentados nesta série são introdutórios, mas saiba que a linguagem SQL é muito poderosa e versátil, razão pela qual ela domina o mercado de bancos de dados há várias décadas. Até a próxima!