Buscar

08 SQL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Linguagem SQL
Banco de Dados
Linguagem SQL
Linguagem SQL
A linguagem SQL tem cinco vertentes 
�DDL - Data Definition Language – Linguagem de definição de dados 
� Criar (CREATE) tabelas;
� Remover (DROP) tabelas;
� Alterar (ALTER) tabelas;
� Descrever restrições de integridade(CONSTRAINTS-PK e FK)
�DML - Data Manipulation Language – Linguagem de Manipulação de 
Dados
� Atualização da Base de Dados (Instruções INSERT, DELETE e UPDATE)
� Realiza a inserção, alteração e a exclusão de dados nas tabelas.
� Criando Tabelas
CREATE TABLE NOME_TABELA
(COLUNA1 TIPO,
COLUNA2 TIPO,
COLUNA3 TIPO,
Linguagem SQL
COLUNA3 TIPO,
.
.
.
COLUNAN TIPO
);
INSERT INTO Nome-Tabela [(col1, col2,..., coln)] []-> opcional 
VALUES ( conteudo1, conteúdo2,..., conteúdoN)
Exemplo: 
INSERT INTO CATEGORIAS ( CODIGODACATEGORIA, 
NOMEDACATEGORIA, DESCRICAO, FIGURA)
VALUES ( 99, 'CATEGORIA 99' , 'DESCRIÇÃO 99‘, ' ' );
Linguagem SQL
VALUES ( 99, 'CATEGORIA 99' , 'DESCRIÇÃO 99‘, ' ' );
� O número de colunas do SELECT tem que ser o mesmo que o da 
declaração INSERT ou, como nosso exemplo, o mesmo número de 
colunas contidas na tabela, se as colunas não forem mencionadas.
� O tipo e o tamanho dos dados selecionados têm que ser compatíveis com 
as especificações das colunas na tabela de destino. Por exemplo, 
números podem ser incluídos em uma coluna de tipo caractere, mas o 
contrário não é aceito.
�Eliminando Linhas
DELETE FROM Nome-da-Tabela [Where condição];
Exemplo:
DELETE FROM CATEGORIAS
WHERE CÓDIGODACATEGORIA = 99;
�Alterando conteúdo de Linhas
Linguagem SQL
�Alterando conteúdo de Linhas
UPDATE Nome-da-Tabela 
SET coluna = (valor, resultado de operacao)
[Where condição];
Exemplo:
UPDATE CATEGORIAS
SET DESCRICAODACATEGORIA = ‘TESTE DE ALTERACAO”
WHERE CÓDIGODACATEGORIA = 99;
ROLLBACK; 
Com esta declaração recuperamos de volta as linhas que havíamos 
excluído, e os dados alterados voltaram a ser exatamente o que 
eram antes da alteração. Se tivéssemos eliminado as tabelas por 
inteiro, elas também seriam recuperadas.
Linguagem SQL
COMMIT;
O comando COMMIT efetiva a transação corrente. Todas as 
modificações efetuadas pela transação se tornam visíveis para os 
outros, e existe a garantia de permanecerem se ocorrer uma falha.
Comando SELECT
Permite recuperar informações existentes nas tabelas.
SELECT [DISTINCT] Colunas, Expressões, [AS nome-atributo] 
{ O que se quer exibir}
[FROM Tabelas] { Onde estão as informações a serem exibidas}
Linguagem SQL
[FROM Tabelas] { Onde estão as informações a serem exibidas}
[WHERE condição] {Filtros e Relacionamentos}
[GROP BY Colunas] { Colunas que queremos grupar}
[ HAVING BY Condição para as colunas grupadas]
[ORDER BY attr_name1 [ASC | DESC ]] { Ordem de exibição}
�Informando filtros para as seleções:
SELECT COLUNAS FROM TABELA WHERE CONDIÇÃO
Operadores Aritméticos:
+ Soma
Linguagem SQL
+ Soma
- Subtração
* Mutiplicação
/ Divisão
�Informando filtros para as seleções:
Operadores Relacionais:
= Igual a < Menor que
<> Não igual a Is null É nulo
Linguagem SQL
<> Não igual a Is null É nulo
Between...and Entre >= Maior ou igual a
In Na lista <= Menor ou igual a
> Maior que Like Parecido
Os principais operadores especiais são:
�IS
�NULL ou IS NOT NULL;
�BETWEEN;
�LIKE;
OPERADORES 
ESPECIAIS
�LIKE;
�IN.
OPERADORES 
ESPECIAIS
BETWEEN determina um intervalo para a consulta.
Semelhante ao >= e <=
OPERADORES 
ESPECIAIS
OPERADORES 
ESPECIAIS
OPERADORES 
ESPECIAIS
�Funções para manipulação de datas no SQL Server 
�Dia : DAY(Data);
�Mês: MONTH(Data);
�Ano : YEAR(Data);
�Data Corrente : GETDATE() 
�Dia da Semana: WEEKDAY() 1-Domingo, 2-Segunda,....., 7-Sábado
Linguagem SQL
�Dia da Semana: WEEKDAY() 1-Domingo, 2-Segunda,....., 7-Sábado
�Diferença entre duas datas é calculada em dias;
�Exercícios
� Liste NOME (Nome e Sobrenome) e a Data de Nascimento de todos os 
funcionários;
Linguagem SQL
� Liste o Nome da Empresa e o telefone de todas as transportadoras;
�Exercícios
� Liste NOME (Nome e Sobrenome) e a Data de Nascimento de todos os 
funcionários;
Select nome||’ ‘||Sobrenome, datadenascimento
From funcionarios;
Linguagem SQL
From funcionarios;
� Liste o Nome da Empresa e o telefone de todas as transportadoras;
Select nomedaempresa, telefone from transportadoras;
� Liste da tabela de produtos Nome do produto e o valor armazenado em 
estoque(Qtd em Estoque*Preço);
� Liste da tabela produtos contendo código, nome, preço unitário e preço 
Linguagem SQL
� Liste da tabela produtos contendo código, nome, preço unitário e preço 
unitário reajustado em 30%;
� Liste da tabela de produtos Nome do produto e o valor armazenado em 
estoque(Qtd em Estoque*Preço);
Select nomedoproduto, unidadesemestoque * precounitario
From produtos
� Liste da tabela produtos contendo código, nome, preço unitário e preço 
Linguagem SQL
� Liste da tabela produtos contendo código, nome, preço unitário e preço 
unitário reajustado em 30%;
Select codigodoproduto, nomedoproduto, precounitario, 
precounitario * 1.30
from produtos;
� Liste o nome e o endereço de todos os funcionários que moram nos 
EUA;
� Liste o código, nome e preço unitário de todos os produtos cujo preço 
Linguagem SQL
� Liste o código, nome e preço unitário de todos os produtos cujo preço 
unitário seja superior a 50.00;
� Liste o nome e o endereço de todos os funcionários que moram nos 
EUA;
Select nome, endereco from funcionarios
Where pais = ‘EUA’;
Liste o código, nome e preço unitário de todos os produtos cujo preço 
Linguagem SQL
� Liste o código, nome e preço unitário de todos os produtos cujo preço 
unitário seja superior a 50.00;
Select codigodoproduto, nomedoproduto, precounirario
From produtos 
Where precounitario > 50;
� Liste o Código e o Nome dos produtos que atingiram o ponto de 
reposição(Unidade em Estoque inferior ou igual ao nível de reposição; 
� Liste o Código e o Nome dos produtos que atingiram o ponto de 
Linguagem SQL
� Liste o Código e o Nome dos produtos que atingiram o ponto de 
reposição(Unidade em Estoque inferior ou igual ao nível de reposição, 
bem como a diferença a ser adquirida para suprir esta falta;
� Liste o Código e o Nome dos produtos que atingiram o ponto de 
reposição(Unidade em Estoque inferior ou igual ao nível de reposição; 
Select codigodoproduto, nomedoproduto from produtos
where unidadesemestoque < niveldereposicao;
� Liste o Código e o Nome dos produtos que atingiram o ponto de 
Linguagem SQL
� Liste o Código e o Nome dos produtos que atingiram o ponto de 
reposição(Unidade em Estoque inferior ou igual ao nível de reposição, 
bem como a diferença a ser adquirida para suprir esta falta;
Select codigodoproduto, nomedoproduto ,
(niveldereposicao –unidadesemestoque ) + 1
from produtos where unidadesemestoque < niveldereposicao;
� Liste todos os Pedidos que tenham sido feitos no mês de janeiro de 
1997; 
� Liste o nome e o endereço dos clientes que estejam localizados em 
Linguagem SQL
� Liste o nome e o endereço dos clientes que estejam localizados em 
madrid;
� Liste todos os Pedidos que tenham sido feitos no mês de janeiro de 
2008; 
Select * from pedidos 
where to_char(datadopedido, ‘MM-YYYY’) = ’01-2008’;
� Liste o nome e o endereço dos clientes que estejam localizados em 
Linguagem SQL
� Liste o nome e o endereço dos clientes que estejam localizados em 
madrid;
Select nomedaempresa, endereco
From clientes
Where cidade = ‘Madrid’
� Liste os produtos que tenham preço unitário entre 50,00 e 70,00
� Liste todos os pedidos efetuadosdurante o ano de 2008; 
Linguagem SQL
� Liste o nome e o endereço das empresas que tenham seu nome iniciado 
pela letra ‘B;
� Liste os produtos que tenham preço unitário entre 50,00 e 70,00
Select * from produtos 
Where precounitario between 50 and 70;
� Liste todos os pedidos efetuados durante o ano de 2008; 
Select numerodopedido from pedidos
Where to_char(datadopedido, ‘YYYY’) = ‘2008’;
Linguagem SQL
Where to_char(datadopedido, ‘YYYY’) = ‘2008’;
� Liste o nome e o endereço das empresas que tenham seu nome iniciado 
pela letra ‘B;
Select nomedaempresa , endereco from clientes
Where nomedaempresa like ‘B%’
�Atividades para próxima semana:
�Liste os pedidos com frete menor que 100 reais;
�Liste os fornecedores que estão localizados no Brasil, 
Japão e Espanha;
�Liste o nome do fornecedor e o país de todos os 
fornecedores cujo o país for igual 
Linguagem SQL
fornecedores cujo o país for igual 
‘Brasil','Itália','Canadá');
� Liste o nome dos produtos que tem como código do 
fornecedor igual 10;
� Liste todos pedidos realizados com o funcionário de 
nome “Nancy”;
Para realizar a união de tabelas (JOIN), basta acrescentarmos após a 
cláusula FROM do comando SELECT as tabelas que queremos unir. 
Devemos colocar na cláusula WHERE a condição de união das tabelas, 
ou seja, as respectivas chaves primária e estrangeira. Sintaxe:
SELECT
Tabela1.coluna1,
Linguagem SQL
Tabela1.coluna1,
Tabela1.coluna2,
Tabela2.coluna1,
Tabela2.coluna2
FROM Tabela1, Tabela2
WHERE Tabela1.chave_primaria = Tabela2.chave_estrangeira
Obs.: Sempre que utilizamos mais de uma tabela em um select, é realizado 
um produto cartesiano entre as tabelas, isso é, uma combinação das linha 
de uma tabela com todas as linhas da outra tabela.
Pelo que vimos em aulas passadas, o nome das chaves primárias e o 
nome das chaves estrangeiras que são correspondentes são iguais, por 
esse motivo, a comparação entre as colunas, que garante a vinculação 
correta entre as linhas, deve ser possível diferença as tabelas ais quais as 
colunas pertencem. Veja como ficaria o select apresentado anteriormente
SELECT
Linguagem SQL
SELECT
Tabela1.coluna1,
Tabela1.coluna2,
Tabela2.coluna1,
Tabela2.coluna2
FROM Tabela1 T1, Tabela2 T2
WHERE T1.chave_primaria = T2.chave_estrangeira
� Exemplo:
� Liste todos pedidos realizados com o funcionário de nome “Nancy”;
Select *
From pedidos p, funcionarios f
Where p.codigodofuncionario = f.codigodofuncionario 
Linguagem SQL
Where p.codigodofuncionario = f.codigodofuncionario 
And nomedofuncionario = ‘Nancy’;
� Exercícios
� Liste o número do pedido e o nome da transportadora que fez a 
entrega;
select numerodopedido, nomedaempresa
From pedidos p, transportadoras t
Linguagem SQL
From pedidos p, transportadoras t
Where p.codigodatransportadora = t.codigodatransportadora
� Exercícios
� Liste os fornecedores e as categorias que eles fornecem;
Linguagem SQL
� Funções Agregadas
Avg(argumento) Retorna a média dos valores do argumento 
Max(argumento) Retorna o maior valor do argumento 
Min(argumento) Retorna o menor valor do argumento 
Linguagem SQL
Min(argumento) Retorna o menor valor do argumento 
Sum(argumento) Retorna o somatório dos valores do argumento 
Count(argumento) Retorna a número de linhas do argumento 
� Exercícios:
� Liste a quantidade de pedidos dos mês de janeiro de 2008;
� Liste o maior preço, o menor preço e a média dos preços dos 
produtos;
� Liste a maior data e a menor data dos pedidos;
� Liste a quantidade de clientes com endereço em “São Paulo”;
Linguagem SQL
Liste a quantidade de clientes com endereço em “São Paulo”;
� Liste a quantidade de clientes na “Argentina”;
� Liste o numero do pedido e valor de cada pedido;
Cláusula GROUP BY: 
Grupamento de colunas – Sumários – Não 
SELECT COLUNAS 
FROM TABELA 
WHERE CONDIÇÃO 
Linguagem SQL
WHERE CONDIÇÃO 
GROUP BY CAMPOS
� Liste a quantidade de Clientes por país; 
Select pais, count(*)
From clientes
Group by pais
� Liste a quantidade de pedidos no mês de Janeiro de 2007;
Linguagem SQL
� Liste a quantidade de pedidos no mês de Janeiro de 2007;
Select count(*), to_char(datadopedido, ‘mm/yyyy’)
From clientes
Group by to_char(datadopedido, ‘mm/yyyy’)
� Media de fretes por país; 
Select avg(frete), pais
From clientes
Group by pais;
� Exercícios:
� Liste a quantidade de pedidos feitos por funcionários;
� Liste a quantidade de clientes por país e cidade; 
� Liste o Código do Fornecedor, o código da Categoria, a média de 
preço, o preço máximo e mínimo da tabela de produtos grupados 
por fornecedor e categoria; 
Linguagem SQL
por fornecedor e categoria; 
� Liste a quantidade de pedidos da tabela pedidos solicitados por 
ano,mês da data do pedido;
Dúvidas!?

Outros materiais