Fundamentos de Banco de Dados
Prof. Gale
2º. Semestre 2008
 SELECT
[ALL | DISTINCT] coluna1
[,coluna2]
FROM
tabela1
[, tabela2]
[WHERE
"condições"]
[GROUP BY "colunas"]
[HAVING
"condições"]
[ORDER BY "colunas" [ASC | DESC] ]
Operadores e cláusulas de Comparação
= igual
<> diferente
!= diferente
> maior que
!> não maior (menor ou igual)
< menor que
!< não menor (maior ou igual)
>= maior ou igual
<= menor ou igual
* todos
ORDER BY define a ordem
ORDER BY DESC em ordem decrescente
WHERE onde
BETWEEN entre. Pertence ao intervalo declarado.
NOT BETWEEN não pertence ao intervalo declarado.
GROUP BY agrupar
IS NULL testa valores nulos. Verifica, por exemplo, se colunas não contém nenhum valor
armazenado. Com conteúdo nulo.
IS NOT NULL testa valores não nulos. Sem conteúdo nulo.
LIKE o predicado LIKE procura por strings que se encontram dentro de um determinado
padrão. Este predicado só pode ser usado com tipos de dados CHAR ou VARCHAR.
IN permite comparar o valor de uma coluna com um conjunto de valores. Normalmente,
utilizamos o IN para substituir uma série de comparações seguidas da cláusula OR.
NOT IN Não pertence ao conjunto declarado
Agrupando e resumindo Dados
AVG
COUNT
COUNT(*)
Média de valores de uma expressão
Número de valores em uma expressão
Número de registros selecionados
MAX
Maior valor de uma expressão
Min
Menor valor de uma expressão
SUM
Soma dos valores
STDEV
Desvio padrão de todos os valores
STDEVP
Desvio padrão da população
VAR
Variância estática da seleção
VARP
Variância estática da população
 Trabalhando com Data
 As principais são: NOW, DATEPART, DATEADD
e DATEDIFF.
 Um detalhe importante é que as funções de data
trabalham referenciando unidades de data. As mais
comuns são:
. year(ano);
. month(mês);
. day(dia).
Sql – Agrupando e resumindo
Dados
•
Group by
• Utilizado para gerar valores de
resumo para uma coluna específica
• Group by com a cláusula
HAVING
• Cláusula Having  where do
group by
Sql – Agrupando e resumindo
Dados
Select productid,Sum(quantity)
As total from orderhist
Group by productid
Select productid,orderid,quantity
From orderhist
Productid
Orderid
quantity
1
1
5
1
2
10
2
1
10
2
2
25
3
1
15
3
2
30
Productid
total
1
15
2
35
3
45
Select productid,Sum(quantity)
As total from orderhist
Where productid = 2
Group by productid
Productid
total
2
35
Sql – Agrupando e resumindo
Dados
Select productid,Sum(quantity)
As total from orderhist
Group by productid
Having Sum(quantity) > 30
Select productid,orderid,quantity
From orderhist
Productid
Orderid
Productid
Total
1
15
2
35
3
45
quantity
1
1
5
1
2
10
2
1
10
2
2
25
3
1
15
3
2
30
Sql – Agrupando e resumindo
Dados
•
Compute
•
Compute By
Geram registros adicionais
em um formato não relacional
Select productid,orderid,quantity
from orderhist
order by productid,orderid
compute SUM(quantity)
Sql – Agrupando e resumindo
Dados
Select productid,orderid,quantity
from orderhist
order by productid,orderid
compute SUM(quantity) by productid
compute SUM(quantity)
NOW ( )
A função NOW retorna a data e a hora atuais do sistema.
SELECT NOW ( )
DATEPART ( unidade , data )
A função DATEPART retorna a parte especificada de uma data como um inteiro. Observe os
exemplos:
SELECT DATEPART ( YEAR , '02/01/2008' )
Reposta: 2008
SELECT DATEPART ( MONTH , '02/01/2008' )
Reposta: 2
SELECT DATEPART ( DAY , '02/01/2008' )
Reposta: 1
DATEADD ( unidade , numero_unid,data )
A função DATEADD retorna uma nova data através da soma do número de unidades
especificadas pelo valor unidade a uma data. Observe os exemplos:
SELECT DATEADD ( DAY ,6, '02/01/2008' )
Reposta: 2008-02-07
SELECT DATEADD ( MONTH ,6, '02/01/2008' )
Reposta: 2008-08-01
SELECT DATEADD ( YEAR ,6, '02/01/2008' )
Reposta: 2014-02-01
DATEDIFF ( unidade , data1,data2 )
A função DATEDIFF calcula a diferença entre as datas data2 e data1 , retornando o
resultado como um inteiro, cuja unidade é definida pelo valor unidade . Observe
os exemplos:
SELECT DATEDIFF ( DAY , '02/01/2008' , '05/25/2008' )
Reposta: 114 (dias)
SELECT DATEDIFF ( MONTH , '02/01/2008' , '05/25/2008' )
Reposta: 3 (meses)
SELECT DATEDIFF ( YEAR , '02/01/2008' , '05/25/2010' )
Reposta: 2 (anos)
Dessa forma, a expressão SQL que retorna o número de dias vivido por você até
hoje é:
SELECT DATEDIFF(DAY, suadata, GETDATE())
Onde suadata deve ser substituída pela sua data de nascimento.
Data Formatada
 SELECT DATE_FORMAT('2008-06-25
22:23:00', '%d/%m/%Y %H:%i:%s');
Download

Aula 3