quinta-feira, 28 de janeiro de 2010

Uso de comandos Transaction SQL

Comandos – SELECT, INSERT e UPDATE

Comando SELECT permite selecionar registros em uma tabela. A sintaxe do comando é a clausula SELECT seguida dos campos dos campos que devem ser retornados na consulta. Se houver mais de um campo é necessário separá-los por vírgula. Caso seja necessário retornar mais todos os campos de uma tabela pode ser utilizado um caráter curinga “*” após a clausula SELECT. Depois de definir os campos deve acrescentar a clausula FROM e em seguida o nome da tabela em que estão os dados. Por exemplo:

•Essa consulta retorna o nome, profissão e cidade de todos os empregados cadastrados na tabela, inclusive aqueles em que os valores não foram preenchidos.

SELECT nome, profissão, cidade FROM Empregados

Essa consulta retorna registros de todos os empregados, com todos os campos, cadastrados na tabela empregados.

SELECT * FROM Empregados

O comando SELECT pode ser usando com operadores (+, *, /, -) entres os campos.

SELECT (vlr_hora * 0,10) as “vlr_Hora_Recalculada” FROM Horas

•Se em uma consulta não for necessários retornar todos os registros pode ser usado a clausula WHERE seguido do nome do campo mais ( = ou > ou <>) e a condição logo em seguida. Por exemplo, se quisermos selecionar todos os empregados que moram em belo horizonte.

1-SELECT * FROM Empregados WHERE cidade = “belo horizonte”

2-SELECT nome, profissão, cidade, idade FROM Empregados WHERE cidade = “belo horizonte”

•Em casos onde é necessário fazer a consulta em mais de uma tabela pode se usar um alias (apelido) para tabela. Por exemplo, se quisermos consultar o nome dos empregados que trabalharam mais oitos horas. O uso de alias para as tabelas é necessário para o caso de existir duas ou mais tabela com o nome de campos iguais.

SELECT e.nome FROM Empregados e, Horas h WHERE h.vlr_horas > 8

•Em certas consultas é necessário que seja retorna registros diferentes. Neste caso podemos usar a clausula DISTINCT.

SELECT DISTINCT nome, profissão, cidade, idade FROM Empregados
WHERE cidade = 'belo horizonte'


•Em algumas situações precisamos retorna certa quantidade de registros. Por exemplo, uma consulta que retorna os cem primeiros empregados da tabela empregados.

SELECT TOP 100 nome, profissão, cidade, idade FROM Empregados WHERE cidade = 'belo horizonte'

O comando UPDATE permite realizar alterações em dados na tabela. A sintaxe deste comando é UPDATE seguido do nome tabela e depois a clausula SET e o campo que se deseja atualizar, caso seja mais do que um campo eles devem ser separados por vírgula. Uma condição que identifica os registros a serem atualizados deve ser informada. Se a condição for omitida todos os registros sofrerão atualização. Por exemplo, se quiser atualizar a cidade para São Paulo de todos os empregados que o nome é igual a Antonio Carlos da Silva seria:

UPDATE Empregados
SET cidade = 'São Paulo'
WHERE nome = 'Antonio Carlos da Silva'

O comando INSERT permite inserir dados em uma tabela do banco de dados. A sintaxe deste comando é o comando INSERT seguido do nome da tabela, depois o nome dos campos entre parênteses separados por vírgula e em seguida a clausula VALUES e os valores entre parênteses e separados por vírgula. É muito importante que a quantidade de campos e valores sejam iguais. Por exemplo, queremos inserir um novo empregado na tabela Empregado e os dados dele são o seguinte, nome: “Marcos da Silva” Profissão: Professor Cidade: Belo Horizonte Idade: 28. A inserção ficaria da seguinte maneira:

INSERT INTO Empregados (nome, profissão, cidade, idade)
VALUES ('Marcos da Silva', 'Professor', 'Belo Horizonte', 28)

O comando DELETE permite excluir registros de uma tabela. A sintaxe desse do comando DELETE é a seguinte: primeiro insere o comando DELETE seguido da clausula FROM e depois o nome da tabela e uma condição que identifica os registros que devem ser excluídos. Por exemplo, se quisermos excluir todos os registros em que a cidade é igual a Belo Horizonte na tabela Empregado, seria:

DELETE FROM Empregados
WHERE cidade = “Belo Horizonte”

quarta-feira, 13 de janeiro de 2010

Importando dados para o SQL Server Integration Services

O Microsoft SQL Server 2005/2008 possui uma ferramenta para integração de dados de diversas fontes. Essa ferramenta é chamada de SQL Server Integration Services (SSIS) que tem seu uso principalmente na área de Business Intelligence (BI) para realizar de processos ETL (Extration, Transformation e Load). Mas o SSIS pode ser usado para outras operações que não estejam ligadas a área de BI como, por exemplo, importar dados de um banco de dados Microsoft Access para um banco de dados transacional do SQL Server. Portanto o objetivo deste tutorial é mostrar como importar dada uma fonte, que neste caso será uma planilha do Microsoft Excel, para um banco de dados SQL Server 2005/2008. Para elaboração deste tutorial foi usado o Microsoft SQL Server 2008, porém todas as operações realizadas aqui podem ser feitas na versão 2005.

Organização dos dados

O SQL Server Integration Services permite importar dados de diversas fontes de dados e uma dela são as planilhas do Excel. Os dados devem está organizados e não possuir formatação alguma. A figura abaixo apresenta o exemplo de uma planilha que é possível importar os dados para um banco de dados no SQL Server 2005/2008.





Observe na figura acima que a primeira linha de cada coluna possui a descrição da mesma. É importante manter este padrão porque após a importação para o banco de dados esse nomes serão os mesmos usados nas colunas da tabela onde os dados ficarão.

Ferramentas usadas


Como este tutorial tem objetivo de apresentar o uso do SQL Server Integration Services estaremos criando um projeto no SQL Server Business Intelligence Development Studio. Também é necessário que o SQL Server 2005/2008 esteja instalado e exista permissão para criação de banco de dados.

Criando o projeto


Para criar um projeto no SQL Server Business Intelligence Development Studio clique em iniciar/Programas/ Microsoft SQL Server/ SQL Server Business Intelligence Development Studio.



Introdução



Nota: O caminho pode para acessar o SQL Server Business Intelligence Development Studio pode variar de acordo com a versão instalada.
Crie um novo projeto do tipo Integration Services Project, coloque o nome de ImportarDadosExcel e clique em OK.




Após a realização do procedimento anterior será criado o projeto de com a estrutura apresentada na figura seguinte.



O SSIS permite criação pacotes para executar operações sobre os dados. Essas operações podem ser Extração, transformação e carga. Neste tutorial estaremos apenas realizando a carga de dados de uma planilha do Microsoft Excel para uma tabela no banco de dados do SQL Server.
Observado a figura anterior em que está apresentado o ambiente do projeto criado temos algumas partes importantes. No lado esquerdo temos o Solution Explorer que apresenta toda a estrutura do projeto. Expandindo a árvore podemos ver o nó SSIS Package que o pacote que realizará a carga de dados. Um pacote no SSIS é a estrutura mais importante para realização de tarefas. Ele é composto de Fluxo de controle (Control Flow) e Fluxo de dados (Data Flow) principalmente. O fluxo de controle é responsável por criar um fluxo entre as tarefas a ser realizadas em um banco de dados, ou seja, não envolve fluxo de dados e sim alterações estruturais como criação de tabelas, execução de scripts, organização de índices, entre outros. O controle de dados é de responsabilidade do Data Flow é ele que conecta na fonte de origem e destino, permite também realizar classificação dos dados, uso de merges, entre outros.
Usando o assistente de importação e exportação
Neste tutorial estaremos usando o assistente de importação e exportação de dados do SSIS para criar um fluxo de controle e um fluxo de dados automaticamente. Para usar o assistente leve o cursor do mouse até SSIS Package no Solution Explorer e clique com o botão direito e acione SSIS Import and Export Wizard e janela do assistente será aberta de acordo com a figura seguinte.





Leia o conteúdo da tela do assistente (SQL Server Import and Export Wizard) e clique em Next. A próxima tela deve ser inserida as informações do tipo da fonte de dados de e a sua localização. No nosso caso, será uma planilha do Excel (Customers) que faz parte dos exemplos do SQL Server. Caso não possua esta planilha no diretório C:\Arquivos de programas\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Basic Package\Sample Data\Customers.xls é porque os exemplos do SQL Sever não estão instalados. Esses exemplos podem ser obtidos na internet ou pode ser usada outra planilha. Marque a opção First row column name essa opção diz para o SSIS usar a primeira linha da planilha como nome das colunas da tabela para onde os dados serão importados. A figura seguinte mostra como deve ficar a tela.




Após completar está etapa clique em Next para ir para a tela onde deve ser informado o destino dos dados importados da planilha.
Nesta tela deve ser informado que será o destino que neste caso é um banco de dados do SQL Server 2008. O servidor onde a instancia do SQL Server está localizada e o tipo de autenticação usada para conectar na instancia devem ser informados. E finalmente o banco de dados de destino. Existe possibilidade de criar um novo banco ou de usar um existente. A figura seguinte mostra como deve ficar as configurações na tela.




A próxima tela deve ser especificada se os dados de origem serão copiados de uma tabela(Copy data from one or more tables or views) ou se será realizado uma consulta (write a query to specify the data to transfer). Escolha a segunda opção conforme a figura seguinte.




Na tela seguinte informe a consulta que deve ser realizado na planilha. Neste caso queremos todos os campos e todos os dados da planilha. Então use: SELECT * FROM [Customers$]. Para verificar se a sintaxe da consulta está correta clique em Prase. A figura seguinte mostra como essa tela deve ficar.



Na tela seguinte é apresentado a fonte e o destino dos dados, altere o nome do destino. Depois disto clique em Edit Mapping para alterar nome e tipo das colunas. A figura seguinte mostra como deve ficar esta tela.




A tela seguinte mostra todas as etapas que serão realizadas para importar os dados. Veja na figura seguinte.





Após clicar em Finish os dados serão importados para o banco de dados especificado no destino e uma tela de sucesso será apresentada.




Se todo processo ocorrer corretamente uma tela semelhante acima. Clique em Close para votar na tela do projeto e um fluxo para importação de dados será criado. Selecionado a aba Control Flow na tela do projeto é possível visualizar o fluxo de controle. A primeira tarefa Preparation SQL Task 1 é a tarefa responsável pela criação da tabela no banco de dados e a tarefa seguinte Data Flow Task 1 é responsável por realizar a carga dos dados da planilha para a tabela no banco de dados. A figura abaixo apresenta as tarefas.




Para visualizar como os dados são carregados para o banco de dados clique duas vezes em cima da tarefa Data Flow Task 1. Após realizar esta operação a tela mudará para representação dos fluxos no Data Flow. Nesta tela temos o Source-Query que é responsável por realizar um consulta aos dados na origem (SELECT * FROM [Customers$]). Destination-Pessoas é responsável por inserir os dados no destino que no nosso caso é uma tabela no banco SSIS do SQL Server 2008. A figura abaixa apresenta a representação na tela do projeto.



Agora para completar só falta executar o pacote criado com o assistente do SSIS. Para isto pressione F5 ou clique em Start Debugging. Se tudo ocorrer corretamente à tela abaixo será apresenta, onde todas as tarefas do fluxo estão com a cor verde. Confira no banco de dados se os dados foram importados corretamente.




Conclusão

Neste tutorial foi apresentada uma forma simples de criar um pacote usando o assistente do SSIS para importar dados de uma planilha do Excel com rapidez e eficiência.