SQL Server 2005 – Parte 4 – Comandos DML – Insert e Select

Olá pessoal, voltamos com nosso curso básico de SQL Server. Nesta parte, iremos aprender o que são os Comandos DML, e falaremos sobre dois deles, o Insert e o Select, seguidos de alguns exemplos que ilustram o uso dos comandos. Acompanhem:

Comandos DML – Os comandos Data Manipulation Language, ou apenas DML são utilizados para realizar inclusões, consultas, exclusões e alterações de dados presentes em registros. Por estes comandos, estas tarefas podem ser executadas em vários registros de diversas tabelas ao mesmo tempo.

Os DML responsáveis pelas funções citadas acima são INSERT, SELECT, UPDATE e DELETE, respectivamente. Como dito anteriormente, neste artigo irei falar sobre os dois primeiros mostrando os conceitos e alguns exemplos práticos no SQL Server.

Insert – Usamos o comando Insert para incluir dados em uma ou mais colunas de uma tabela. Este comando tem a seguinte sintaxe:

INSERT [INTO] NomedaTabela [(nomesdascolunas)] VALUES (Valores)

Os valores entre colchetes, são opcionais, ou seja, você pode usar somente

INSERT NomedaTabela VALUES (Valores)

Os valores descritos junto ao comando INSERT são transformados em uma ou mais linhas da tabela. Os nomes das colunas nas quais os dados serão inseridos devem ser separados por vírgulas.

As colunas que não foram declaradas no comando INSERT podem apresentar um valor padrão, caso essa definição seja configurada pelo usuário, ou o valor NULL.

Vamos tomar como exemplo a tabela de clientes abaixo:

Para fazê-la, precisamos fazer o uso da instrução INSERT, como mostra a imagem a seguir:

Se você perceber, na imagem da tabela há 4 registros e na imagem acima, do Insert, tem apenas 3. Já explico o porque disso.

Existem dois tipos de INSERT, o posicional e o declarativo. O posicional deve ser usado quando precisamos incluir dados de acordo com a ordem física das colunas. O Insert da imagem acima é um exemplo disso. Já o Insert declarativo deve ser usado quando desejamos incluir dados na tabela de modo que possamos escolher a ordem dos valores a serem inclusos. Neste tipo de Insert, que nosso 4º que está faltando, nossa instrução fica como a imagem abaixo:

Neste exemplo, o resultado será o mesmo, já que usei a mesma ordem do Insert posicional, mais fica a dica se você quiser alterar a ordem e ver o resultado. Para ver os resultados, você terá que usar a instrução SELECT, instrução essa que abordarei a partir de agora.

Select – O Select é o principal comando usado em SQL para realizar consultas a dados pertencentes a uma tabela. Por meio desse simples comando, podemos retornar dados para outros comandos SQL e também para outras aplicações.

Para exibir todas as colunas da tabela Clientes, uso SELECT * FROM CLIENTES, já para exibir algumas colunas, devemos substituir o uso do asterisco pelos respectivos nomes das colunas, como por exemplo SELECT  NomeCliente, EnderecoCliente FROM CLIENTES.

Usando Alias o nome de uma coluna pode ser substituído por uma espécie de apelido, criado para facilitar sua visualização ao usuário. Esse apelido é chamado de Alias. Vamos tomar como exemplo novamente nossa tabela de clientes abaixo:

Os nomes das colunas são, na ordem que aparece acima, CODCLIENTE, NOMECLIENTE, ENDERECOCLIENTE, FONECLIENTE, EMAILCLIENTE, SALARIOCLIENTE e DATACLIENTE. Para que elas fiquem com um nome melhor apresentável ao usuário, como na imagem acima, faça a seguinte instrução:

Não é necessário usar a cláusula AS para obter o resultado desejado. Entretanto, como boas práticas, diversos usuários preferem manter essa cláusula para facilitar a identificação do alias. Podemos omitir o AS ou trocá-lo por um sinal de igual.

Como você pode perceber na imagem, quando queremos dar um nome composto ao Alias, temos que colocá-los entre colchetes.

Coluna Virtual – Podemos também criar uma coluna virtual usando o Select, ou seja, podemos exibir uma coluna não disponível fisicamente na tabela. No exemplo abaixo, a coluna Tipo de Cliente não faz parte do banco de dados, mais por meio do Select, podemos defini-la como existente:

Exibindo um cálculo – Nem sempre é necessário gravar o resultado de um cálculo para que esse valor seja exibido na tabela. Por exemplo, imaginemos que o salário dos clientes possui um aumento de 10%. Desejamos visualizar esse aumento, mais não inseri-los no banco. Para isso, faça o seguinte:

Dessa forma, obtemos uma rápida visualização de quanto seria o aumento aos clientes, sem precisar gravar esses dados no banco.

Uso da Cláusula Distinct – Por meio dessa cláusula, é exibido apenas uma vez os dados repetidos de determinada tabela. Como você pode perceber na imagem acima, já tenho uma coluna duplicada propositalmente, que é a cliente Andressa. No exemplo abaixo, tenho na tabela Clientes as colunas duplicadas, me gerando assim o dobro dos dados de que preciso visualizar:

No exemplo, são apenas 8, mais imagine o cenário em uma grande empresa com milhares (até milhões) de dados repetidos. Seria um grande desperdício de tempo e produtividade visualizarmos vários dados repetidos. Para isso, usamos a cláusula Distinct, por meio da seguinte instrução:

Que irá me retornar apenas 3 resultados:

Copiando dados de uma tabela a outra – Caso as estruturas de duas tabelas sejam similares ou diferentes, podemos copiar os dados de uma para outra por meio dos seguintes comandos.

Insert com Select quando as tabelas são iguais – Para fazer este exemplo, vamos criar uma outra tabela, com a mesma estrutura de colunas da tabela de Clientes. Crie a tabela a seguir:

Logicamente esta tabela está sem dados, pois acabou de ser criada. Para que copiemos os dados da tabela Clientes, é mais simples do que você imagina:

Com apenas duas linhas de instruções SQL, consigo copiar os dados de uma tabela em outra vazia.

Insert com Select quando as tabelas são diferentes – Vamos supor que temos duas tabelas distintas, Clientes e Funcionarios, com números de colunas diferentes:

Embora a tabela Clientes contenha dados, nem todas as colunas de Funcionario podem ser encontradas na Cliente. Para que seja possível copiar dados de Clientes para Funcionario, devemos usar o comando SELECT de colunas virtuais, como mostra a imagem abaixo:

Desta forma, usando colunas virtuais, consigo copiar os dados existentes da tabela Clientes para a tabela Funcionário.

Caso as colunas da tabela Funcionario aceitem valores nulos (NULL), podemos escrever a instrução de outra forma, como mostra a imagem:

Agora vamos supor o contrário, ou seja, agora a tabela Funcionario que terá menos dados que a tabela Clientes:

Neste caso devemos fazer como mostra a imagem a seguir:

Desta forma, terminamos aqui mais uma parte de nossa série de artigos.

Na próxima parte, continuaremos falando dos comandos DML, abordando o UPDATE e o DELETE. Aguardem!

Quaisquer dúvidas, postem.

Abraços.

Até o próximo artigo!

3 comentários em “SQL Server 2005 – Parte 4 – Comandos DML – Insert e Select

Expresse sua opinião!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s