Você está na página 1de 61

Treinamento sobre SQL

Como Usar o SQL


Os dois programas que voc mais utilizara
no SQL Server so: Enterprise Manager e
Query Analyzer.
No Enterprise Manager, voc pode
visualizar e fazer alteraes na base de
uma forma grfica
No Query Analizer, voc pode alterar a
base a partir de comandos(querys) 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 contm essa base
de dados
As tabelas do tipo System so as estruturais do SQL, e as do tipo
User so as criados pelos usurios. 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 querys
Para executar os comandos, aperte a tecla F5
Instruo Use
Sintaxe: Use <Nome do banco de dados>
A instruo 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.
Instruo 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 nveis 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 esto na tabela produto
Exerccio:
1. Faa um select que pegue os campos Codigo,
Nome e Endereco da tabela Cliente
2. Faa um select que pegue apenas o nome do
produto
3. Faa um select que pegue o nome e o fone da
tabela cliente
Ao terminar de fazer estes exemplos, de um clique
que os prximos slides mostram estes
exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER
SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 2
Resoluo exerccio 3
Select com Order By
Sintaxe: Select <campos> From <tabela> Order By <campo> <ordenao>
As Ordenaes possiveis so 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;
Exerccio:
1. Faa um select que pegue os campos Codigo,
Nome da tabela Produto ordenando pelo
Codigo do maior para o menor.
2. Faa 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 prximos slides mostram estes
exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER
SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 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 esto com o telefone Nulo.
Exerccio:
1. Faa um select count que pegue todos os
registros da tabela produto

Ao terminar de fazer estes exemplos, de um clique


que os prximos slides mostram estes
exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER
SOZINHO!!!
Resoluo exerccio 1
Clausulas de Comparao
So as clausulas usadas nos comandos que fazem a comparao de alguns
campos, elas so:
= Igual, pega todos os dados iguais ao informado
> Maior, pega todos os dados que so maiores que o informado
< Menor, pega todos os dados que so menores que o informado
>= Maior Igual, pega todos os dados que so maiores ou igual ao
informado
<= Menor Igual, pega todos os dados que so menores ou igual ao
informado
<> Diferente, pega todos os dados que so diferente do informado
In() Pega todos os dados que so iguais aos informados, por exemplo:
In(1, 2, 3), pegara todos que so 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 no
nulo
Select com Where
Sintaxe: Select <campos> From <Tabela> Where <campo> <clausula de
comparao> <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.
Exerccio:
1. Faa um select que pegue os campos Codigo, Nome
da tabela Produto em que o Codigo seja maior que 2
2. Faa um select que pegue os campos Nome da tabela
Cliente quando o Fone for nulo
3. Faa 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
prximos slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER
SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 2
Resoluo exerccio 3
Select com And
Sintaxe: Select <campos> From <Tabela> Where <campo> <clausula de
comparao> <valor a ser comparado> And <campo> <clausula de comparao>
<valor a ser comparado>
O And uma continuao do Where, quando voc quer criar mais que uma clausula
de comparao, 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 no seja nulo.
Como no existe registros nestas condies, ele no retornou nada.
Exerccio:
1. Faa um select que pegue os campos Codigo, Nome
da tabela Produto em que o Codigo seja maior que 2
2. Faa um select que pegue os campos Nome da tabela
Cliente quando o Fone for nulo
3. Faa 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
prximos slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS 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 informaes relacionadas em mais de uma tabela. Isso
possvel quando temos tabela com chave primria 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 no
existisse, a seleo 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 invs de digitar <tabela>.<campo>, voc digita
<apelido>.<campo>, sendo que este apelido pode ter no mnimo 1 letra.
Exerccio:
1. Faa um select que pegue os campos Codigo, Servico_Descricao
da tabela Orcamento e a somatria do campo Total da tabela
Orcamento_Produto, mostrando os registros de cada oramento.
2. Faa 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 oramento em 1 select apenas).
3. Faa um select que pegue todos os campos da tabela produto,
dos produtos contidos no oramento com Codigo = 1.
4. Faa um select que pegue o campo Nome da tabela Cliente, do
oramento com Codigo = 5
Ao terminar de fazer estes exemplos, de um clique que os prximos
slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 2
Resoluo exerccio 3
Resoluo exerccio 4
Informaes sobre manipulao de dados
Ao passar os valores nos comandos SQL, alguns detalhes devero 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 devero ser separados por virgula(,) entre
eles.
Ainda no caso do Insert, os valores tem que estar na mesma seqncia
que foram digitados os campos.
Em campos que os valores sero textos(varchar, text) o valor devera
ser passado entre apstrofos().
Caso o campo seja data, o valor devera ser passado entre apstrofos e
ser formatado no padro americano(mm/dd/yyyy).
Caso o valor seja um numero com casas decimais, ao invs de virgula
devera ser passado o ponto.(Ex: 1206.39)
Caso no 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 apstrofos)
Os campos marcados como Identity no podem ser adicionados ou
atualizados no Insert/Update, pois o SQL preenche este campo
automaticamente.
Instruo Insert
A instruo Insert permite fazer a incluso de registros em uma
tabela de um banco de dados
Aqui voc vai aprender 2 nveis do Insert
Insert Simples
Usado quando preciso inserir dados em que os valores ainda
no esto no banco, ou sero passados manualmente.
Insert Select
Usado para inserir dados atravs 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
Exerccio:
1. Insira um registro na tabela Produto com o campo
Nome como Lampada de Mercrio
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
prximos slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER
SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 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.
Exerccio
1. Insira na tabela Cliente_Teste o cliente com o Cdigo
1 da tabela Cliente
2. Insira na tabela Cliente_Teste o cliente com o Cdigo
2 da tabela cliente, mudando o nome do mesmo para
Moura Informtica.

Para conferir se o registro foi adicionado de um Select na


tabela correspondente.
Ao terminar de fazer estes exemplos, de um clique que os
prximos slides mostram estes exerccios j
resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER
SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 2
Instruo Update
A instruo Update permite fazer a alterao de registros em uma
tabela de um banco de dados
Aqui voc vai aprender 2 nveis do Update.
Update Simples
Usado quando preciso atualizar dados manualmente.
Update Select
Usado para atualizar dados atravs 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 Cdigo seja igual a 1.
possivel fazer um Update em que o resultado seja uma operao entre dois
campos. Ex: Update Tabela Set Campo3 = Campo1 + Campo2
Exerccios:
1. Altere o campo Fone da tabela Cliente para 91414846 onde o
campo Codigo seja igual a 2.
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 prximos
slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 2

OBS: ao fazer este Update, note que o SQL no 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.
Exerccios:
1. Atualize o campo Produto_Valor da tabela Orcamento para ser a
soma de todos os campos Total da tabela Orcamento_Item, para
aquele oramento, 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 prximos
slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER SOZINHO!!!
Resoluo exerccio 1
Instruo Delete
A instruo Delete permite fazer a excluso de registros em uma
tabela de um banco de dados
Aqui voc vai aprender 2 nveis do Delete.
Delete Simples
Usado quando preciso excluir os dados manualmente.
Delete Select
Usado para excluir dados atravs 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.
Exerccios:
Delete da tabela Cliente todos os registros com o campo Cdigo
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 prximos
slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER SOZINHO!!!
Resoluo exerccio 1
Resoluo exerccio 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.
Exerccios:
Delete os registros da tabela Cliente que no tenham Oramento
cadastrado. Voc ter que montar uma lgica 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 prximos
slides mostram estes exerccios j resolvidos.
MAS S CLIQUE APS TERMINAR DE FAZER SOZINHO!!!
Resoluo exerccio 1