• Sem categoria

Trabalhando com Datas e Horas e cálculos com SQL

Para as pessoas que tinham a curiosidade de saber como trabalhar com Datas, Horas, Cálculos utilizando o SQL aí vai uns exemplos rápidos e práticos para uso dessa prática:

# Funções Agredadas

SELECT CEIL(1.2)  #arredonda p/ cima

SELECT FLOOR(1.9) #arredonda p/ baixo

SELECT ROUND(1.5) #arred dependendo
                  #da cada decimal
                  # < 4 pra baixo
		  # 5 ou > pra cima

SELECT RAND()  # gera numero aleatório
	       # entre 0 e 1

# para conseguir numeros inteiros
# multiplique e combine com arredondamento	       

SELECT CEIL( RAND() * 10 )

# select floor(preco) 


#retorna o maior valor
SELECT MAX(preco) FROM produto 

#retorna o menor valor
SELECT MIN(preco) FROM produto 

#retorna a média aritmética
SELECT AVG(preco) FROM produto

#ex. a média de preço das camisetas
SELECT AVG(preco) FROM produto
WHERE descricao LIKE "%camiseta%"

#retorna a soma dos valores
SELECT SUM(estoque) FROM produto

#retorna a qtd de REGISTROS p/ a condição
SELECT COUNT(*) FROM produto
WHERE descricao LIKE "%camisa%"

#quantos tipos de produtos custam até 50
SELECT COUNT(*) FROM produto
WHERE preco <= 50

#data do dia
SELECT CURDATE()  #data corrente (atual)

#hora atual
SELECT CURTIME()

#pegar apenas o ano de uma data
SELECT YEAR(CURDATE())

SELECT YEAR('1980-08-02')

#select year(data_nascimento)    #coluna

# month()   day()

#retorna o nome do dia para a data inform
SELECT DAYNAME('1980-08-02')

#quantos dias se passaram entre as datas
SELECT DATEDIFF('2013-02-10','2013-01-01')

#quanto tempo (h-m-s) se passou entre as horas
SELECT TIMEDIFF("21:30:00", "18:00:00")


#### SUBCONSULTAS #####

# 1. Todos os dados do produto mais caro

SELECT * FROM produto
WHERE preco = ( 
	SELECT MAX(preco) FROM produto
	)

# 2. A descrição e preço do produto
# com menor estoque disponível

SELECT descricao, preco FROM produto
WHERE estoque = (
	SELECT MIN(estoque) FROM produto
	)
	
# 3. nome dos produtos com preço acima 
# da média de preços

SELECT descricao, preco FROM produto
WHERE preco > (
	SELECT AVG(preco) FROM produto
	)
ORDER BY preco DESC



### CONSULTA EM MÚLTIPLAS TABELAS ###
# banco LIVRARIA2

# 1. O titulo e o gênero de cada livro

SELECT titulo, descricao 
FROM livro, genero
WHERE livro.idgenero = genero.idgenero

# 2. o nome do autor de cada livro

SELECT titulo, nome
FROM livro, autor, escreve
WHERE livro.idlivro = escreve.idlivro
AND   escreve.idautor = autor.idautor

#AND nome like "J.K%"

#AND preco > 30

# 3. qual autor escreve livros de aventura

SELECT DISTINCT nome 
FROM genero, livro, escreve, autor
WHERE genero.idgenero = livro.idgenero
AND   livro.idlivro = escreve.idlivro
AND   escreve.idautor = autor.idautor
AND   descricao LIKE "aventura";

# distinct elimina duplicação nos results

Você pode gostar...

%d blogueiros gostam disto: