Exercícios - Cálculos e Manipulação de Datas
Por: Rodrigo Betschkowski • 3/3/2017 • Trabalho acadêmico • 771 Palavras (4 Páginas) • 262 Visualizações
/* Exercícios - Cálculos e Manipulação de Datas */
/* 1 - Elabore uma consulta que retorne o tempo (em anos, meses e dias) que ocorreu a(s) últimas vendas do vendedor "Mariana Costa" */
select age (dt_venda)
from vendas, funcionarios
where vendas.codfunc=funcionarios.codfunc and nome='Mariana Costa';
/* 2 - Elabore uma consulta que retorne como ficaria o valor dos itens de código 2 e 3 (tabela itens) se sofressem um reajuste de 5%. A consulta deve retornar o valor reajustado e o código do item */
select codigo, (valor*0.05)+valor
from itens
where codigo=3 or codigo=2;
/* 3 - Elabore uma consulta que retorne a data atual */
select current_date;
/* 4 - Escreva uma consulta que retorne a data atual no formato dia-mês-ano */
select to_char (current_date, 'DD/MM/YYYY')
/* 5 - Elabore uma consulta que retorne os meses (por extenso e na língua portuguesa) em que o vendedor "Cristian Tavares" realizou vendas em 2011 */
select to_char (dt_venda, 'TMmonth')
from funcionarios, vendas
where funcionarios.codfunc=vendas.codfunc and nome='Cristian Tavares' and dt_venda between '2011-01-01' and '2011-12-31';
/* 6 - Acrescente 5 dias à data de vencimento de todos os registros da tabela contas_receber */
update contas_receber
set data_vencimento=data_vencimento+5;
/* 7 - Escreva uma consulta que mostre o nome e o endereço dos funcionários em uma única coluna e separados por um hífen. Dê o nome de "Funcionários" a essa coluna */
select (nome|| ' - ' || endereco) as Funcionarios
from funcionarios
/* 8 - Apresente o nome de todos clientes em caixa alta */
select upper (nome)
from clientes
/* 9 - Mostre a primeira letra do nome de cada cliente e também o nome completo */
SELECT SUBSTRING (nome FROM 0 FOR 2),nome
from clientes
/* 10 - Elabore uma consulta que informe o número de caracteres de cada nome de cliente. Informe também o nome dos clientes */
select nome, char_length(nome)
from clientes
/* 11 - Elabore uma consulta que informe o número de bits que cada nome de cliente ocupa em memória */
select bit_length(nome),nome
from clientes;
/* 12 - Incluir o seguinte telefone para "Maria Silveira": 99811212 */
update fones_clientes
set num_telefone='99811212'
where cliente in (
select codcliente
from clientes
where nome='Maria Silveira');
/* 13 - Liste em ordem alfabética o nome e o(s) telefone(s) dos clientes */
select nome,num_telefone
from clientes c, fones_clientes fn
where c.codcliente=fn.cliente
order by nome asc
/* OU utilizando JOIN */
/* INNER JOIN = somente resultados com relação / LEFT JOIN = TODOS resultados da primeira tabela, inclusive sem relação a segunda / RIGTH JOIN = TODOS resultados da segunda tabela, inclusive sem relação a primeira */
select nome,num_telefone
from clientes
inner join fones_clientes
on clientes.codcliente=fones_clientes.cliente
order by nome asc
/* 14 - Considere que os celulares da operadora "XX" tem prefixo 99. Liste os nomes e os
celulares dos clientes que possuem celulares dessa operadora */
select nome as "Nome do Cliente",num_telefone as "Número do Celular"
from clientes c, fones_clientes fn
where c.codcliente=fn.cliente and substring (num_telefone FROM 0 FOR 3)='99';
...