Académique Documents
Professionnel Documents
Culture Documents
FROM teste;
Select nota
From teste
Where nota>2;
CONCATENARE “||”
Select nota
From teste
Select nota
From teste
Select *
From teste
Where nume like '_a%'; // “_” any single char; “%” any string
Select *
From teste
Where nume like '%\_N%' escape '\' // use “\” for “_”
Select *
From teste
select (319/29)+12
from math
delete
from TESTE
where NUME='George'
select initcap(lower(upper(nume)))
from teste
from teste
select length(nume)
from teste
select rpad(lpad(nume,10,'*'),15,'#')
from teste
select trim(leading 'v' from lower(nume)), trim(trailing 'a' from lower(nume)), trim (both 'a' from
lower(nume))
from teste; //eliminia primul sau/si ultimiul caracter ’a’ daca este prezent
select substr(nume,length(nume),1)
select substr(nume,1,1)
select substr(lower(nume),instr(lower(nume),'a'),10)
from teste
select substr(lower(nume),1,instr(lower(nume),'a')-1)
from teste
select substr(lower(nume),1,instr(lower(nume),'a')-1) ||
substr(lower(nume),instr(lower(nume),'a')+1,10)
from teste
select replace(lower(nume),'a')
select *
from teste
select mod(5,3)
from teste
select next_day(sysdate,'Sunday')
select last_day(sysdate)
from math
from math
select nvl(nume,'None'),nota
from teste //daca nota!=NULL atunci nota+1 else daca este NULL – -1
from teste //null daca lungimile sunt egale, sau length(nume) daca nu sunt egale
from teste //daca nume, prenume – null atunci ‘De completat’ altfel nume sau prenume not null
Case
else 'Admis'
end as ADMITERE
from TESTE; //daca nota este mai mica de 5 – RESPINS else ADMIS
select nume,prenume,
decode(nota,4,'Respins','ADMIS') as Admitere
from teste natural join clase; //selecteaza din 2 tabele unde clasa PK
from teste cross join clase; //combina randurile intre cele 2 table
from teste join clase using (clasa); //la fel natural join doar ca clasa specificat PK
select nume,prenume,t.clasa,profil,diriginte
from teste t join clase c on (t.clasa = c.clasa); //la fel join ... using
SELECT nume,prenume,premiul
SELECT nume,prenume,nota,clasa,premiul,diriginte,profil
from teste
from teste t
left outer join clase c on (t.clasa=c.clasa); //afisieaza null daca nu a facut leg cu tabelul clase
from teste t
right outer join clase c on (t.clasa=c.clasa); //afisizea null pt profesorii fara elevi
from teste t
full outer join clase c on (t.clasa=c.clasa); //afisieaza toate din ambele chiar daca e null
select e.nume,e.prenume,e.clasa,f.prenume
from teste e
from profesori
from profesori
from profesori
select e.nume,e.prenume,c.profil,c.diriginte
select e.nume,e.prenume,e.nota, a.premiul, e.clasa, c.nume || ' ' || c.prenume as Diriginte, p.materie
as "Materie diriginte"
select sum(nota)
select avg(nota),clasa
from elev
select max(avg(nota))
from elev
select avg(nota)
from elev
group by clasa
from elev
group by clasa
having count(clasa)>1
order by clasa;
select avg(nota),clasa,grupa
from elev
select avg(nota),clasa,grupa
from elev
select avg(nota),clasa,grupa,limba
from elev
from teste
union
select nume
from elev
where nota>
(select nota
from elev
from elev
where nota>
(select avg(nota)
select nume,prenume,nota,clasa
from elev
where nota in
(select nota
from elev
//afiseaza elevi care au aceeasi nota cu macar unul din elevii din 12B
select nume,prenume,nota,clasa
from elev
(select nota
from elev
where clasa='12B'); //afiseaza elevii care au nota mai mare decat macar un elev din 12B
select nume,prenume,nota,clasa
from elev
(select nota
from elev
where clasa='12B'); //elevii care nota mai mare decat orice elev din 12B
select nume,prenume,nota,clasa
from elev
where (grupa,limba) in
(select grupa,limba
from elev
select nume,prenume,nota,clasa
from elev a
(select avg(b.nota)
from elev b
where b.clasa=a.clasa); //elevii care media mai mare decat media clase sale
select nume,prenume,clasa
from elev a
(select *
from elev b
select nume,prenume,clasa
from elev a
(select b.id_frate
from elev b
where b.id_frate is not null); //similar afiseaza doar pe cei care au frate
with rude as
from elev
select nume,prenume
from elev
where id_elev in
(select *
select table_name
select nume,prenume,nota
from elev
where lower(nume) like '%a%'; //insereaza mai multe randuri din alt tabel
update employees_copy
update employees_copy
set phone_number=
(select phone_number
from employees
update employees_copy e
from departments d
select employee_id
from employees_copy
where employee_id=206
) //valori de default
insert into test (nota,utilizator)
insert all
when lower(last_name) like '%a%' then
into emp1 values
(EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COM
MISSION_PCT,MANAGER_ID,DEPARTMENT_ID,BONUS)
when lower(last_name) like '%b%' then
into emp2
values(EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,
COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID,BONUS)
select
EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMI
SSION_PCT,MANAGER_ID,DEPARTMENT_ID,BONUS
from employees ;
//introduce in tabele daca conditia este indeplinnita (first doar primul gasit)
//table extern
select table_name,status
(time_with_offset TIMESTAMP WITH LOCAl TIME ZONE); //converteste deodata in fusul orar local
values (interval '120' Month(3),interval '3-6' year to Month); //insereaza 120 de luni si 3 ani si 6 luni
values (interval '25' day(2),interval '4 10:30:10' day to second ); //insereaza intervale de timp
select sysdate+durata_1,sysdate+durata_2
add (nota number default '2',nume varchar(20) default 'Necunoscut'); //adauga coloane si default lor
modify (nume varchar(10) default 'Ion'); //modifica tipul de date si valoarea de default
select *
versions_operation as "Operation",
versions_starttime as "Start_Date",
from emp1
(lasta_name varchar2(20),
(lasta_name varchar2(20),
client_number number,
sau
(firs_name varchar2(20),
client_number number,
select *
from user_constraints
sau
select *
from user_cons_columns;
select constraint_name,table_name,constraint_type,status
from user_constraints
from emp e
where e.employee_id in (select c.employee_id from emp c where c.employee_id between 101 and 124);
//creeaza un view
from emp
or
select rownum,first_name
select first_name
increment by 1
start with 1
maxvalue 5000
nocache
select employee_id.nextval,first_name
from emp;
alter sequence employee_id
increment by 1
maxvalue 99999
or
grant select
on alice.departments
on emlpoyees to scott
with grant option; //ii permite lui scott sa dea privilegiul mai departe
revoke select,inserit
from employees
from wf_countries
select table_name
FROM user_tables;
select min(nume),min(prenume)
from elev;
select nume,prenume,to_char(nota,'$999.99')
from elev
where nota between 7 and 10;
select nume,prenume,coalesce(clasa,grupa,'-1')
from elev;
select e.nume,e.prenume,c.nume,c.prenume
from elev e
full outer join clasa c on (e.clasa=c.clasa);
select clasa,avg(nota)
from elev
group by clasa
having avg(nota)>6
order by avg(nota);
with media as
(select clasa,avg(nota) as med
from elev
group by clasa)
with media as
(select clasa,avg(nota) as med
from elev
group by clasa)
select max(med)
from media;
Or
select clasa,avg(nota)
from elev
group by clasa
having avg(nota) >= all
(select avg(nota)
from elev
group by clasa);
Or
select max(avg(nota))
from elev
group by clasa;
select clasa,limba,avg(nota)
from elev
group by (clasa,limba);
select clasa,limba,avg(nota)
from elev
group by CUBE(clasa,limba);
select clasa,limba,avg(nota),
case grouping(clasa)
when 1 then 'Yes'
else 'No'
end as "Dupa clasa",
case grouping(limba)
when 1 then 'Yes'
else 'No'
end as "Dupa limba"
from elev
group by CUBE(clasa,limba);
select clasa,limba,grupa,avg(nota)
from elev
group by grouping sets ((clasa,limba),grupa);
select e.constraint_name,e.column_name,e.position,c.constraint_type
from user_cons_columns e,user_constraints c
where e.table_name='JOB_HISTORY' and e.table_name=c.table_name;
select LAST_NUMBER
from user_sequences
where sequence_name ='CT_SEQ';
select table_name,comments
from dictionary
where regexp_count(lower(table_name),'(priv)')>0;
select employee_id,department_name
from employees,departments;