Olá pessoal, voltamos com nosso curso básico de SQL Server. Nesta parte, iremos continuar vendo os comandos DML, desta vez veremos o SELECT. Confiram:

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, NOMECLIENTEENDERECOCLIENTE, 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.

Estou disponibilizando a quem se interessar o script de todo este artigo, com os assuntos abordados aqui. O script está comentado para melhor entendimento. Quem quiser baixar, só clicar aqui.

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!