Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. • No Enterprise Manager, você pode visualizar e fazer alterações na base de uma forma gráfica • No Query Analizer, você pode alterar a base a partir de comandos(query’s) na linguagem SQL Enterprise Manager • • • • • Vá em Iniciar > Programas > Microsoft SQL Server > Enterprise Manager. Do lado esquerdo da tela, ira aparecer uma tela em arvore, você devera abrir a seguinte estrutura: Console Root > Microsoft SQL Servers > SQL Server Group > <Nome do Servidor> > Databases > Treinamento_<seu nome> Ao clicar no banco Treinamento_<seu nome>, no lado direito da tela, ira aparecer a lista de todas as tabelas que contém essa base de dados As tabelas do tipo System são as estruturais do SQL, e as do tipo User são as criados pelos usuários. Você sempre ira trabalhar com as tabelas do tipo User No banco Treinamento_<seu nome> existem as seguintes tabelas do tipo User: Cliente, Orcamento, Orcamento_Produto, Produto. Query Analyzer • Vá em Iniciar > Programas > Microsoft SQL Server > Query Analyzer • Ao abrir será mostrada a seguinte tela: Connect to SQL Server • Em SQL Server, você deve colocar o nome do servidor • Em Connect Using, selecione SQL Server authentication • Em Login Name digite “sa” • Clique em OK • Ira abrir uma tela para você digitar as query’s • Para executar os comandos, aperte a tecla F5 Instrução Use • Sintaxe: Use <Nome do banco de dados> • A instrução Use serve definir o banco de dados que sera utilizado. • Nesta apostila você ira utilizar um banco chamado Treinamento_<seu nome> • Depois de abrir o Query Analyzer, na tela digite use Treinamento_<seu nome> e execute o comando. • O SQL mostrara a mensagem “The command(s) completed successfully.”, o que indica que o comando foi executado e você já esta utilizando o banco que Treinamento_<seu nome>. Caso o SQL retorne um erro, verifique se a sintaxe esta correta. Instrução Select O comando mais usado no SQL é o Select, ele permite fazer consultas simples ou complexas nas tabelas de um banco de dados. Aqui você vai aprender 9 níveis do Select • Select Simples • Select com Order By • Select Count • Select com Where • Select com And • Select com Left Join • Select com Inner Join • Select com Group By • Select com Sum • Select com Having Select Simples • • • • Sintaxe: Select <campos> From <tabela> Um exemplo de Select Simples seria: Na parte de cima, o SQL mostra a sintaxe que você digitou. Neste exemplo, você esta selecionando os campos Codigo e Nome da tabela produto, o nome dos campos tem que estarem separados por “,”. Ao executar o comando, o SQL retorna os dados selecionados dos registros que estão na tabela produto Exercício: 1. Faça um select que pegue os campos Codigo, Nome e Endereco da tabela Cliente 2. Faça um select que pegue apenas o nome do produto 3. Faça um select que pegue o nome e o fone da tabela cliente Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Resolução exercício 3 Select com Order By • • • • Sintaxe: Select <campos> From <tabela> Order By <campo> <ordenação> As Ordenações possiveis são “Asc” (do menor para o maior) ou “Desc” (do maior para o menor) Um exemplo de Select com Order By seria: Neste exemplo, você esta selecionando os campos Codigo e Nome da tabela produto, ordenando ascendentemente pelo Nome; Exercício: 1. Faça um select que pegue os campos Codigo, Nome da tabela Produto ordenando pelo Codigo do maior para o menor. 2. Faça um select que pegue o campo Nome da tabela cliente ordenando pelo Nome do menor para o maior Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Select Count • • • • Sintaxe: Select Count(<campo>) From <tabela> O Count serve para retornar a quantidade de registros que foram selecionados, você pode usar o Count(*), que retorna a soma de todos os registros, ou o Count(<campo>) que retorna quantos registros tem aquele campo excluindo os nulos. Um exemplo de Select Count seria: Neste exemplo, você esta selecionando a quantidade de registros que tem na tabela Cliente. Select Count • • Um outro exemplo de Select Count seria: Neste exemplo, você esta selecionando a quantidade de registros que tem no campo Fone da tabela Cliente, mesmo tendo 3 clientes cadastrados, ele retorna 1, pois 2 clientes estão com o telefone Nulo. Exercício: 1. Faça um select count que pegue todos os registros da tabela produto Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Clausulas de Comparação São as clausulas usadas nos comandos que fazem a comparação de alguns campos, elas são: • = Igual, pega todos os dados iguais ao informado • > Maior, pega todos os dados que são maiores que o informado • < Menor, pega todos os dados que são menores que o informado • >= Maior Igual, pega todos os dados que são maiores ou igual ao informado • <= Menor Igual, pega todos os dados que são menores ou igual ao informado • <> Diferente, pega todos os dados que são diferente do informado • “In()“ Pega todos os dados que são iguais aos informados, por exemplo: In(1, 2, 3), pegara todos que são iguais a “1”, ou a “2” ou a “3” • “Is Null” Pega todos os registros em que o campo comparado é nulo • “Not Is Null” Pega todos os registros em que o campo comparado não é nulo Select com Where • • • Sintaxe: Select <campos> From <Tabela> Where <campo> <clausula de comparação> <valor a ser comparado> Um exemplo de Select com Where seria: Neste exemplo, você esta selecionando os campos Codigo e Nome da tabela produto, em que o campo Codigo seja Maior ou Igual a 3 Select com Where • Um outro exemplo de select com where seria: • Neste exemplo, você esta selecionando os campos Codigo e Nome da tabela produto, em que o campo Codigo seja igual a 2, ou a 3, ou a 5. Exercício: 1. Faça um select que pegue os campos Codigo, Nome da tabela Produto em que o Codigo seja maior que 2 2. Faça um select que pegue os campos Nome da tabela Cliente quando o Fone for nulo 3. Faça um select que pegue o nome e o fone da tabela cliente quando o Codigo for 1 ou 2 Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Resolução exercício 3 • • • • • Select com And Sintaxe: Select <campos> From <Tabela> Where <campo> <clausula de comparação> <valor a ser comparado> And <campo> <clausula de comparação> <valor a ser comparado> O And é uma continuação do Where, quando você quer criar mais que uma clausula de comparação, a primeira clausula você coloca com Where e as demais com And Um exemplo de Select com And seria: Neste exemplo, você esta selecionando os campos Codigo e Nome da tabela Cliente, em que o campo Codigo seja Maior que 1 e o Fone não seja nulo. Como não existe registros nestas condições, ele não retornou nada. Exercício: 1. Faça um select que pegue os campos Codigo, Nome da tabela Produto em que o Codigo seja maior que 2 2. Faça um select que pegue os campos Nome da tabela Cliente quando o Fone for nulo 3. Faça um select que pegue o nome e o fone da tabela cliente quando o Codigo for 1 ou 2 Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! • • • • Select com INNER JOIN Sintaxe: Select <campos> From <Tabela1> T1 Inner Join <Tabela2> T2 On <t2.chave_estrangeira> = <t1.chave_primaria> O Inner Join possibilita trazer informações relacionadas em mais de uma tabela. Isso é possível quando temos tabela com chave primária e tabelas “filho” com chaves estrangeiras. Um exemplo de Select com Inner Join seria: Neste exemplo, você esta selecionando os campos Codigo, Servico_Descricao da Tabela Orcamento e os campos Produto, Qtde e Total da Tabela Orcamento_Produto. Continua ... • • Select com INNER JOIN O Inner Join traz apenas os registros que coincidirem nas tabelas comparadas. No exemplo anterior, vimos que o campo Codigo da tabela Orcamento era 1, e na tabela Orcamento_Item tinha o campo Orcamento com valor 1. Caso um deles não existisse, a seleção deste registro seria anulada. Perceba que a tabel Orcamento foi chamada pelo apelido O e Orcamento_Produto pelo apelido OP. Estes apelidos facilitam na hora de escrever o Inner Join, o Where e o Order By, pois ao invés de digitar <tabela>.<campo>, você digita <apelido>.<campo>, sendo que este apelido pode ter no mínimo 1 letra. Exercício: 1. Faça um select que pegue os campos Codigo, Servico_Descricao da tabela Orcamento e a somatória do campo Total da tabela Orcamento_Produto, mostrando os registros de cada orçamento. 2. Faça um select que pegue os campos Codigo, Servico_Descricao da tabela Orcamento e o campo Nome da tabela Cliente. (Mostrar o nome dos clientes de cada orçamento em 1 select apenas). 3. Faça um select que pegue todos os campos da tabela produto, dos produtos contidos no orçamento com Codigo = 1. 4. Faça um select que pegue o campo Nome da tabela Cliente, do orçamento com Codigo = 5 Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Resolução exercício 3 Resolução exercício 4 Informações sobre manipulação de dados • Ao passar os valores nos comandos SQL, alguns detalhes deverão ser observados: – Cada valor devera ter um campo correspondente. (Ex: Insert Into Tabela(Campo1, Campo2) Values(‘Valor 1’, 1206.39) – No caso do Insert, os valores deverão ser separados por virgula(,) entre eles. – Ainda no caso do Insert, os valores tem que estar na mesma seqüência que foram digitados os campos. – Em campos que os valores serão textos(varchar, text) o valor devera ser passado entre apóstrofos(‘’). – Caso o campo seja data, o valor devera ser passado entre apóstrofos e ser formatado no padrão americano(mm/dd/yyyy). – Caso o valor seja um numero com casas decimais, ao invés de virgula devera ser passado o ponto.(Ex: 1206.39) – Caso não precise ser inserido valor em algum campo ou for preciso atualizar o campo para um valor inexistente, devera passado o valor dele como Null(sem apóstrofos) – Os campos marcados como Identity não podem ser adicionados ou atualizados no Insert/Update, pois o SQL preenche este campo automaticamente. Instrução Insert • • • • A instrução Insert permite fazer a inclusão de registros em uma tabela de um banco de dados Aqui você vai aprender 2 níveis do Insert Insert Simples Usado quando é preciso inserir dados em que os valores ainda não estão no banco, ou serão passados manualmente. Insert Select Usado para inserir dados através de resultados de uma consulta Insert Simples • • • • Sintaxe: Insert Into <tabela>(<campos>) Values(<valores>) Um exemplo de Insert Simples seria: Ao executar o comando, o SQL retorna a quantidade de registros afetados (cada Insert Simples é um registro afetado) Neste exemplo estamos inserindo um registro na tabela Produto com o campo Nome igual a Luminaria p/ fluorescente Plus Exercício: 1. Insira um registro na tabela Produto com o campo Nome como “Lampada de Mercúrio” 2. Insira um registro na tabela Cliente com os seus dados. Para conferir se o registro foi adicionado de um Select na tabela correspondente. Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Insert Select • • • • Sintaxe: Insert Into <tabela>(<campos>) Select <campos> From <tabela> Um exemplo de Insert Select seria: Ao executar o comando, o SQL retorna a quantidade de registros afetados (cada registro encontrado no Select é um registro afetado) No Insert Select, você pode misturar campos de uma consulta com campos fixos, como no exemplo. Exercício 1. 2. Insira na tabela Cliente_Teste o cliente com o Código 1 da tabela Cliente Insira na tabela Cliente_Teste o cliente com o Código 2 da tabela cliente, mudando o nome do mesmo para Moura Informática. Para conferir se o registro foi adicionado de um Select na tabela correspondente. Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Instrução Update • • • • A instrução Update permite fazer a alteração de registros em uma tabela de um banco de dados Aqui você vai aprender 2 níveis do Update. Update Simples Usado quando é preciso atualizar dados manualmente. Update Select Usado para atualizar dados através de resultados de uma consulta Update Simples • • • • • Sintaxe: Update <tabela> Set <campo> = <valor> Um exemplo de Update Simples seria: Ao executar o comando, o SQL retorna a quantidade de registros afetados (cada linha atualizada é um registro afetado) Neste exemplo estamos atualizando um registro na tabela Cliente com o campo Fone igual a 91863541 onde o campo Código seja igual a 1. É possivel fazer um Update em que o resultado seja uma operação entre dois campos. Ex: Update Tabela Set Campo3 = Campo1 + Campo2 Exercícios: 1. 2. Altere o campo Fone da tabela Cliente para 91414846 onde o campo Codigo seja igual a 2. Altere o campo Servico_Valor da tabela Orcamento para 152,68 e o campo Valor_Total para a soma dos campos Servico_Valor e Produto_Valor onde o campo Codigo seja igual a 1. Para conferir se o registro foi atualizado de um Select na tabela correspondente. Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 OBS: ao fazer este Update, note que o SQL não altera o campo Valor_Total para a soma do valor atualizado no campo Servico_Valor. Update Select • • • • Sintaxe: Update <tabela> Set <campo> = (Select <campo> From <tabela 2> Where <tabela>.<campo> = <tabela2>.<campo>) Um exemplo de Update Select seria: Ao executar o comando, o SQL retorna a quantidade de registros afetados (cada linha atualizada é um registro afetado) Neste exemplo estamos atualizando um registro na tabela Orcamento em que o campo Cliente_Fone da tabela seja igualado ao campo Fone da tabela Cliente. Exercícios: 1. Atualize o campo Produto_Valor da tabela Orcamento para ser a soma de todos os campos Total da tabela Orcamento_Item, para aquele orçamento, com o campo Codigo da tabela Orcamento sendo igual a 6. Para conferir se o registro foi atualizado de um Select na tabela correspondente. Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Instrução Delete • • • • A instrução Delete permite fazer a exclusão de registros em uma tabela de um banco de dados Aqui você vai aprender 2 níveis do Delete. Delete Simples Usado quando é preciso excluir os dados manualmente. Delete Select Usado para excluir dados através de resultados de uma consulta Delete Simples • • • • Sintaxe: Delete From <tabela> Um exemplo de Delete Simples seria: Ao executar o comando, o SQL retorna a quantidade de registros afetados (cada linha excluida é um registro afetado) Neste exemplo estamos deletando um registro na tabela Orcamento em que o campo Codigo da tabela seja igual a 6. Exercícios: • • Delete da tabela Cliente todos os registros com o campo Código maior que 3 Delete da tabela Orcamento todos os registros em que o campo Codigo seja igual a 3, 4 e 5. Para conferir se o registro foi atualizado de um Select na tabela correspondente. Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1 Resolução exercício 2 Delete Select • • • • Sintaxe: Delete From <tabela> Where <campo> In (Select <campo> From <tabela2>) Um exemplo de Delete Select seria: Ao executar o comando, o SQL retorna a quantidade de registros afetados (cada linha deletada é um registro afetado) Neste exemplo estamos excluindo registros na tabela Orcamento_Produto em que o campo Codigo da tabela Orcamento seja Nulo, ao ser relacionado com a tabela Orcamento_Produto. Exercícios: • Delete os registros da tabela Cliente que não tenham Orçamento cadastrado. Você terá que montar uma lógica para criar este comando, o exemplo dado no slide anterior poderá te ajudar. Para conferir se o registro foi atualizado de um Select na tabela correspondente. Ao terminar de fazer estes exemplos, de um clique que os próximos slides mostram estes exercícios já resolvidos. MAS SÓ CLIQUE APÓS TERMINAR DE FAZER SOZINHO!!! Resolução exercício 1