SIAD - Laboratoare

Previzualizare laborator:

Extras din laborator:

Sistemul Oracle furnizeaza functii care permit manipularea cu usurinta a informatiei din baza de date si conversia diferitelor tipuri de date.

Functii pentru manipularea caracterelor - accepta argumente de tip caracter si poate returna atat caractere cat si valori numerice:

- LOWER(sir)- transforma caracterele sirului in litere mici;

- UPPER(sir) - transforma caracterele sirului in majuscule;

- INITCAP(sir) -transforma primul caracter al fiecarui cuvant din sir in majuscula ;

- CONCAT(sir1,sir2) - concateneaza cele doua siruri; e echivalent cu operatorul de concatenare(||);

- SUBSTR(sir,m[,n]) - extrage din sirul de caractere un subsir de lungime m incepand de la pozitia n;

- LENGTH(sir) - returneaza lungimea unui sir de caractere;

- INSTR(sir1,sir2[,n[,m]]) - returneaza pozitia celei de-a m-a aparitii a lui sir2 in sir1 incepand cu pozitia n

- (implicit m=n=1), iar daca nu se gaseste intoarce valoarea 0;

- REPLACE(sir,a[,b]) - inlocuieste in sirul de caractere secventa a prin secventa b, iar daca lipseste b, atunci

- are loc stergerea lui a;

- LTRIM(sir) / RTRIM(sir) - sterge spatiile libere din stanga sirului de caractere, respectiv din dreapta lui;

- LPAD(sir1,n,sir2) / RPAD(sir1,n,sir2) - sir1 este completat la stanga, respectiv la dreapta, pana la lungimea

- n, prin sir2;

- SOUNDEX(sir) - reprezentarea fonetica a sirului de caractere.

Functii aritmetice - pentru manipularea numerelor (utilizate in clauza SELECT sau in conditia clauzei WHERE)- accepta argumente numerice si returneaza valori numerice:

- ABS(n) - valoarea absoluta a numarului;

- CEIL(n) - cel mai mic intreg mai mare sau egal cu n;

- FLOOR(n) - cel mai mare intreg mai mic sau egal cu n;

- MOD(m,n) - restul impartirii lui m prin n;

- SQRT(m) - radacina patrata din m (null, daca m<0);

- ROUND(n[,m]) - numarul n este rotunjit la m pozitii zecimale;

- TRUNC(n[,m]) - numarul n este trunchiat la m pozitii zecimale;

- LN(x) - implementeaza functia logaritmica ln(x)(logaritm natural);

- EXP(x) - implementeaza functia exponentiala;

- POWER(m,n) - implementeaza functia putere (m la puterea n);

- SIGN(n) - implementeaza functia semn asociata lui n;

- GREATEST(m,n) - cel mai mare dintre numerele m si n;

- LEAST(m,n) - cel mai mic dintre numerele m si n.

Exemple:

- LOWER('SQL Course') -> sql course

- UPPER('SQL Course') -> SQL COURSE

- INITCASE('SQL Course') -> Sql Course

- SELECT 'The job title for '||INITCAP(ename)||' is '||LOWER(job) AS "EMPLOYEE DETAILS"FROM emp;

- SELECT empno,ename,deptno FROM emp WHERE ename='blake';

- SELECT empno,ename,deptno FROM emp WHERE LOWER(ename)='blake';

- SELECT empno, INITCAP(ename), deptno FROM emp WHERE LOWER(ename) = 'blake';

Functii Rezultat

CONCAT('Good', 'String') GoodString

SUBSTR('String',1,3) Str

LENGTH('String') 6

INSTR('String', 'r') 3

LPAD(sal,10,'*') ******5000

ROUND(45.926, 2) 45.93

TRUNC(45.926, 2) 45.92

MOD(1600, 300) 100

- SELECT ename, CONCAT (ename, job), LENGTH(ename), INSTR(ename, 'A') FROM emp WHERE SUBSTR(job,1,5) = 'SALES';

- SELECT ename, CONCAT(ename, job), LENGTH(ename), INSTR(ename, 'A') FROM emp WHERE SUBSTR(ename, -1, 1) = 'N';

- SELECT ename, sal, comm, MOD(sal, comm) FROM emp WHERE job = 'SALESMAN';

Functii pentru manipularea datelor calendaristice - accepta argumente de tip data calendaristica si returneaza tot date calendaristice, cu exceptia functiei MONTHS_BETWEEN, care returneaza un numar.

Oracle pastreaza datele intr-un format numeric intern (7 bytes): secol, an, luna, zi, ora, minut, secunda. Formatul implicit extern pentru data calendaristica este un sir de forma 'DD-MON-YY'. SYSDATE este o functie care returneaza data curenta a sistemului. DUAL este un tabel virtual (fictiv) folosit pentru a vizualiza SYSDATE.

Ex: afisarea datei curente folosind tabelul DUAL:

SELECT SYSDATE FROM SYS.DUAL;

Deoarece Oracle pastreaza datele ca numere, pot fi realizate calcule folosind operatori aritmetici (+,-). Pot fi adunate sau scazute atat numere, cat si date calendaristice. Se pot realiza urmatoarele operatii:

Operatia Rezultat Descriere

date + number Date Adauga un numar de zile la o data

date - number Date Scade un numar de zile dintr-o data

date - date Numar de zile Scade o data din alta

date + number/24 Date Adauga un numar de ore unei date

Exemple: Se afiseaza numele angajatilor din departamentul 10 si numarul de saptamani cat acestia au lucrat de la angajare.

SELECT ename, (SYSDATE-hiredate)/7 "Saptamani lucrate"

FROM emp

WHERE deptno=10;

Functii pentru date:

FUNCTIE DESCRIERE Tip

SYSDATE Data si ora curenta Date

MONTHS_BETWEEN(d1,d2) Numarul de luni dintre doua date Number

ADD_MONTHS(d,n) Adauga o luna calendaristica la o data Date

NEXT_DAY(d) Ziua urmatoare datei specificate Date

LAST_DAY(d) Ultima zi a unei luni Date

ROUND(d[,'fmt']) Data ,,rotunjita" Date

TRUNC(d[,'fmt']) Data ,,trunchiata" Date

- MONTHS_BETWEEN(d1,d2)- returneaza numarul de luni dintre d1(data1) si d2(data2). Rezultatul poate fi o valoare pozitiva sau negativa. Partea zecimala (in cazul in care apare) reprezinta o parte dintr-o luna.

- ADD_MONTHS(d,n)- adauga n luni calendaristice la o data d; n trebuie sa fie intreg si poate fi negativ.

- NEXT_DAY(d,'char')- gaseste data urmatoarei zile specificate a saptamanii ('char') care urmeaza datei (d); char poate fi un numar reprezentand o zi sau un sir de caractere.

- LAST_DAY(d)- gaseste data ultimei zile a lunii care contine data d.

- ROUND(d[,'fmt'])- returneaza data d rotunjita la elementul specificat de formatul fmt. Daca fmt este omis, data d e rotunjita la cea mai apropiata data.

- TRUNC(d[,'fmt'])- returneaza data d trunchiata la formatul specificat prin fmt . Daca fmt e omis, data d e trunchiata la cea mai apropiata valoare.

Exemple:

- MONTHS_BETWEEN('01-SEP-95','11-JAN-94') 19,6774194

- ADD_MONTHS('11-JAN-94',6) '11-JUL-94'

- NEXT_DAY('01-SEP-95','FRIDAY') '08-SEP-95'

- LAST_DAY('01-SEP-95') '30-SEP-95'

- ROUND('25-JUL-95','MONTH') 01-AUG-95

- ROUND('25-JUL-95','YEAR') 01-JAN-96

- TRUNC('25-JUL-95','MONTH') 01-JUL-95

- TRUNC('25-JUL-95','YEAR') 01-JAN-95

1. Sa se afiseze pentru toti angajatii care lucreaza de mai putin de 200 de luni, codul, data angajarii, numarul de luni lucrate, ultimele 6 luni revazute, prima vineri dupa data angajarii si ultima zi a lunii in care a fost angajat.

SELECT empno, hiredate,

MONTHS_BETWEEN(SYSDATE, hiredate) "DURATA ANGAJARII",

ADD_MONTHS(hiredate, 6) REVIEW,

NEXT_DAY(hiredate, 'FRIDAY'), LAST_DAY(hiredate)

FROM emp

WHERE MONTHS_BETWEEN (SYSDATE, hiredate)<200;

2. Sa se afiseze codul angajatilor, data angajarii si luna folosind functiile ROUND si TRUNC pentru cei care lucreaza din 1987.

SELECT empno, hiredate,

ROUND(hiredate, 'MONTH'), TRUNC(hiredate, 'MONTH')

FROM emp

WHERE hiredate like '%87';

Functii grup

Functiile grup opereaza pe ,,multimi" de linii si returneaza un rezultat pe grup. Aceste ,,multimi" de linii pot fi reprezentate de intregul tabel sau de tabelul impartit in grupuri. Sistemul Oracle accepta urmatoarele functii grup: COUNT, MIN, MAX, AVG, VARIANCE, STDDEV.

Functia Descriere

AVG([DISTINCT|ALL]n) Calculeaza valoarea medie a lui n, ignorand valorile

nule(null).

COUNT({*|[DISTINCT|ALL]expr}) Determina numarul de linii, unde expr e diferit de

null. Numara toate randurile selectate folosind *,

incluzand duplicatele si randurile cu valori null.

MAX([DISTINCT|ALL]expr) Determina valoarea maxima a expr, ignorand

randurile null.

MIN([DISTINCT|ALL]expr) Determina valoarea minima a expr, ignorand

randurile null.

STDDEV([DISTINCT|ALL]x) Determina deviatia standard a expr, ignorand

randurile null.

SUM([DISTINCT|ALL]n)

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • SIAD - Laboratoare
    • laborator2
      • Laborator2.doc
    • laborator3
      • CUBE.sql
      • CUBE.xls
      • Laborator3.doc
    • laborator4
      • lab4_sql.sql
      • Laborator4.doc
    • laborator5
      • lab5.sql
      • Laborator5.doc
    • laborator6
      • lab6.sql
Alte informații:
Tipuri fișiere:
doc, xls, sql
Diacritice:
Da
Nota:
9/10 (6 voturi)
Nr fișiere:
9 fisiere
Pagini (total):
20 pagini
Imagini extrase:
19 imagini
Nr cuvinte:
5 201 cuvinte
Nr caractere:
27 633 caractere
Marime:
209.82KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Inteligența Artificială
Tag-uri:
sql, date, sistem
Predat:
la facultate
Materie:
Inteligența Artificială
Sus!