Escolar Documentos
Profissional Documentos
Cultura Documentos
commit - os dados passam para o servidor rollback - retira os dados do servidor comando ddl - fecha sessao insert into departments (60, 'Estatistica', 'Leiria', 'Portugal'); (so aparece os insert - sem fazer commit o update n aparece) update departmentss set city='Madrid_Oest' where id=30;(so aparece o update- sem fazer commit o insert n aparece) update employees set job='Analista' where id=7499; update departments set city='Madrid_este' where id=30; delete from employees where id=7499; se actualizar ou delete a linha que se esta a trabalhar a janela bloqueia quando duas sessoes se auto bloqueia existe um block
1)entre duas datas:(select) dias- datafinal-datainicial meses- months_between (sysdate, data) anos- months_between (sysdate, data)/12 2)comparar com campo texto:(where) =texto:- upper(marca)='BMW' parte de texto:- upper(marca) like 'B%' poder ter varios valores:- upper(marca) in('BMW', 'MERCEDES', . . .)
3)comparar com numeros:(where) =numero:- salario >=<!= 1000 numintervalo:- salario between 1000 and 1500 4)Manipular datas: -(select)obter ano de uma data: - to_char(data, 'yyyy') (Where) -compar mes de uma data com o mes actual:- to_char(data_venda,'MM-YYYY')=to_char (sysdate, 'MM_YYYY') -ir buscar dados de uma tabela nos ultimos 20 dias:- data_venda>sysdate-20 ou s ysdate-data_vendas<20 -comprar ano de uma data com o ano 2012:- to_char(data, 'YYYY')='2012' -idade superior a 20:-months_between(sysdate, data_nasc)/12>20
Regra para select: quando se manipula dados de varias tabela obrigatorio: - ligar a s tabelas na clausula where
o quando obrigatorio: se utilizam - todos funoes os campos de grupo do select (MAX,MIN,AVG,SUM,COUNT) n associados a uma func ao de grupo tem de estar no group by condioes com funoes de grupo sao feitas na clausula: - Having
em potugues um calculo por um determinado campo implica colocar esse campo na clausula: - group by
quando se utilizam consultas: -comprar um valor um valor medio select * from employees where salario = ou >(select MAX(salario)ou AVG(salario) from employees);
-pacientes que (no) realizaram consultas (NOT in implica sempre uma sub c onsulta) select *
from pacientes where idp not in (select idp) from consulta); -paciente que realizaram mais consultas (na sua-sempre sub consulta ) ci dade select p.idP, p.nome, p.cidade from consulta c, paciente p where c.idP=p.idP Group by p.idP, p.nome, p.cidade having count(*)=(select MAX(count(*)) from consulta c, paciente p2 where c.idP=p2.idP and p2.cidade=p.cidade Group by p2.idP, p.nome, p2.cidade);