Buscar

APOSTILADML00 LABBD

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 48 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 48 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 48 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SQL - DML
1
SELECT
 A estrutura básica de uma consulta em SQL consiste em três cláusulas: 
SELECT, FROM e WHERE
2
SELECT
 Corresponde à operação de PROJEÇÃO da álgebra relacional. Ela é 
usada para listar os atributos desejados como resultado de uma 
consulta
3
FROM
 É uma lista de relações a serem varridas na execução da expressão
 A princípio, para consultas, a utilização do SELECT e FROM são 
obrigatórios em qualquer consulta
4
WHERE
 Corresponde ao predicado de seleção da álgebra relacional. Consiste 
em um predicado envolvendo atributos das relações que aparecem na 
cláusula FROM.
 As cláusulas ainda podem ser ainda ser compostas com outras 
cláusulas utilizando operadores lógicos AND e OR
5
SELECT
 Seleção de colunas específicas
 Seleção de todas as colunas
6
SELECT
 Eliminação de Duplicações
 Utilização de pseudônimos (alias)
7
WHERE
 Objetivo: filtrar um conjunto de linhas de uma tabela ou um conjunto 
delas
 Operadores:
 =, <>, <, >, IS NULL, IN, BETWEEN, NOT, LIKE
8
Exemplo
9
1) Quais são os funcionários de Juiz de Fora?
2) Quais são os funcionários que possuem carteira de motorista?
3) Quais são os funcionários do sexo feminino?
4) Quais são os funcionários que o nome começa com a letra M?
5) Quais são os funcionários com idade superior a 40 anos?
Exemplo - Respostas
10
Exemplo
 Conjunção e Disjunção de condições
 1) Quais são os funcionários de Juiz de Fora que 
são do sexo masculino?
 2) Quais são os funcionários que tem carteira de 
habilitação e são do sexo feminino?
 3) Quais são os funcionários que recebem mais 
que R$ 750,00 e possuem mais de 30 anos de 
idade?
 4) Quais são os funcionários do sexo masculino 
OU funcionários que o nome começa com a letra 
J?
11
Exemplo - Respostas
12
ORDER BY
 Objetivo: ordenar o resultado de uma consulta
 A ordenação é feita pelas colunas indicadas na cláusula
 ASC  Ordenação crescente
 DESC  Ordenação decrescente
13
Exemplo
14
1) Ordene os registros pelo nome 
de maneira ascendente
2) Ordene os registros pelo código
3) Ordene os registros pela idade 
de maneira decrescente
Exemplo - Respostas
15
JOIN
 Objetivo: combinar linhas de tabelas diferentes, através de valores 
comuns em colunas correspondentes (basicamente a ligação ocorre 
através da chave estrangeira)
 No JOIN as colunas e os dados de ambas as tabelas que estão 
envolvidas são trazidas no resultado por isto ele é utilizado.
16
JOIN
 Como você construiria consultas que 
respondessem as perguntas abaixo:
 1) Quais os nomes dos departamentos que possuem 
empregados que ganham mais de R$ 1000,00?
 2) Qual o nome do funcionário e o nome do 
departamento que ele trabalha?
 3) Qual o preço de cada produto que o cliente Luiz 
Felipe comprou na nota fiscal número 000456?
 4) Quais os nomes dos alunos que obtiveram nota 
maior que 80 na disciplina DCC060?
17
JOIN
 O que se percebe na verdade, é que as informações requeridas estão 
em mais de uma tabela ao mesmo tempo, por isto a necessidade de 
se fazer a junção de tabelas para retornar os dados necessários. O 
JOIN mais comum é o INNER JOIN que simplesmente retorna todas as 
linhas que contém o mesmo valor para o campo que faz a ligação 
entre as duas tabelas.
18
INNER JOIN
 Retorna todas as linhas da relação R1 e da relação R2 que possuem o 
mesmo valor para o campo em que foi feito o JOIN
 1) Quais os nomes dos departamentos que possuem empregados que 
ganham mais que R$ 1000,00?
 2) Qual o nome do funcionário e o nome do departamento que ele 
trabalha?
19
Respostas (1)
20
Respostas (2)
21
LEFT JOIN
 Primeiramente um INNER JOIN é realizado. Depois, para cada linha da 
relação R1 que não satisfaz a condição do JOIN, é concatenada ainda 
as colunas da relação R2 porém com valores nulos. Em outras 
palavras, traz todos os registros de R1, os que satisfazem o JOIN e os 
que não satisfazem.
22
LEFT JOIN
 1) Retorne tantos os alunos que ingressaram no ano de 2005 que estão 
matriculados na disciplina DCC060 quanto os que não estão.
 2) Retorne tantos os empregados que estão alocados para o projeto 
‘GED’ quanto os que não estão.
23
Respostas (1)
24
Respostas (2)
25
Esta consulta já não é tão trivial, pois exige além de um LEFT 
JOIN um INNER JOIN e a informação que precisa retornar está 
espalhada entre 3 tabelas diferentes
Respostas (2) - Continuação
26
RIGHT JOIN
 Primeiramente um INNER JOIN é realizado. Depois, para cada linha da 
relação R2 que não satisfaz a condição do JOIN, é concatenada ainda 
as colunas da relação R1 porém com valores nulos. Em outras 
palavras, traz todos os registros de R2, os que satisfazem o JOIN e os 
que não satisfazem. É o caminho inverso do LEFT JOIN
27
RIGHT JOIN
 1) Retorne todos os nomes dos produtos que foram e os que não foram 
vendidos no dia 01/12/2006.
28
Respostas (1)
29
Respostas (1) - Continuação
30
Funções de Agregação
 Objetivo: Calcular um determinado valor 
sobre um conjunto de linhas, como por 
exemplo, média, valor máximo, mínimo, 
quantas linhas foram retornadas e etc.
 Funções mais comuns:
 COUNT
 AVG
 MAX
 MIN
 SUM
31
COUNT
 Retorna a quantidade de linhas do grupo
 COUNT(*)  inclui todas as linhas (mesmo as repetidas caso haja)
 COUNT(coluna)  retorna o número de linhas com valores não nulos da 
coluna especificada
 COUNT(DISTINCT coluna)  retorna o número de linhas com valores 
distintos naquela coluna
32
COUNT
 1) Quantos são os empregados que trabalham 
no departamento financeiro? 
 2) Quantas notas fiscais foram geradas entre 
01/11/2006 e 30/11/2006?
 3) Quantos departamentos possui a empresa?
 4) Quantos alunos estão matriculados na 
disciplina DCC009 no período letivo 3-2006?
33
Respostas - COUNT
34
MAX
 Retorna o valor máximo da coluna dentro do grupo
 1) Qual o maior salário do departamento Recursos Humanos?
 2) Qual o maior salário da empresa?
 3) Qual a nota fiscal de maior valor que já foi lançada?
 4) Qual foi a maior nota na disciplina DCC060 em toda a história?
35
MAX - Respostas
36
MIN
 Retorna o valor mínimo da coluna dentro do grupo
 Qual o menor salário do departamento Recursos Humanos?
 Qual o menor salário da empresa?
 Qual a nota fiscal de menor valor que já foi lançada?
 Qual foi a menor nota na disciplina DCC060 em toda a história?
37
MIN - Respostas
38
SUM
 Retorna o somatório da coluna dentro do grupo
 1) Qual o valor da folha de pagamento do departamento Pessoal?
 2) Qual o valor das notas fiscais que foi faturado no dia 01/12/2006?
39
SUM - Respostas
40
AVG
 Retorna a média da coluna dentro do grupo
 1) Qual a média de idade do departamento de Informática?
 2) Qual foi o valor médio faturado no mês de novembro pela empresa?
41
AVG – Respostas
42
GROUP BY
 Agrupar valores vindos de funções de agregação por alguma coluna 
em especial. Por exemplo, quantos funcionários existem por 
departamento. Qual a média de idade por departamento. Quanto foi 
faturado por dia no mês de novembro. Questões como estas são 
respondidas através das funções de agregação porém utilizando ainda 
a cláusula GROUP BY
43
GROUP BY
 Um detalhe que nunca deve ser esquecido, cada coluna que aparecer 
na cláusula SELECT excetuando-se as funções de agregação devem 
obrigatoriamente aparecer na cláusula GROUP BY
44
GROUP BY
 1)Quantos funcionários existem em cada departamento da empresa?
 2) Qual a média de idade dos funcionários por departamento da 
empresa?
 3) Qual foram os valores faturados em cada dia do mês em todo o ano 
na empresa?
 4) Qual foi a média das notas dos alunos em cada disciplina do 
período letivo 3-2006?
45
GROUP BY - Respostas
46
HAVING
 Restringir os valores vindos de funções de 
agregação e cláusulas GROUP BY.
 1) Quais são os departamentos que possuem 
média salarial acima de R$ 2000,00?
 2) Quais são as disciplinas onde a média de notas 
dos alunos no período letivo 3-2006 foi acima de 
60?
 3) Quais foram os dias que o faturamento 
ultrapassou o valor de R$ 1000,00 no mês de 
julho?
47
HAVING – Respostas
48

Outros materiais