Sunteți pe pagina 1din 8

Universitatea Liberă Internațională din Moldova

Facultatea Informatică, Inginerie, Design


Catedra Tehnologii informaționale și Calculatoare
Disciplina: Baze de Date (SQL)

Lucrare de laborator Nr.4

Tema : utilizarea funcțiilor de diverse tipuri pentru scrierea interogărilor.

A efectuat student gr.TIR-26 Guminiuc Victor

A verificat profesor Mititelu Vitalii

Chișinău 2018
1. Scopul lucrarii
Utilizarea funcțiilor de diverse tipuri pentru scrierea interogărilor.

2. Sarcina
1. Scrieți o interogare care afișează data curentă. Numiți această coloană Date.
2. Pentru fiecare angajat afișați pe ecran câmpurile Ang_ID, Nume, Salariu și Salariu Nou. Ultimul câmp conține
salariul majorat cu 15%.
3. Adăugați câmpul Diferență, care conține diferența dintre salariul nou și cel vechi.
4. Scrieți o interogare care afișează câmpul Nume, unde prima literă este mare, iar celelalte- mici și lungimea
numelui (câmpul Lungime) pentru angajații, numele cărora începe cu J, A sau M. Sortați angajații după nume.
5. Pentru fiecare angajat afișați pe ecran Nume и calculați numărul de luni de la data primirii la serviciu până la
data de azi și numiți-o LUNI_LUCRATE. Sortați datele după ultimul câmp. Rotunjiți numărul lunilor până la cel mai
apropiat număr întreg.
6. Scrieți o interogare care pentru fiecare înregistrare efectuează (numiți-o Salariu Visat):
<angajat.nume> primește lunar <salariul>, dar dorește <salariu de 3 ori mai mare>
7. Scrieți o interogare care afișează pe ecran câmpurile Nume și salariu pentru toți angajații. Formatați câmpul
Salariu, ca să fie format din 15 simboluri, completând simbolurile insuficiente cu simbolul $ în stânga. Numiți-l
SALARIU.
8. Pentru fiecare angajat afișați pe ecran câmpurile Nume, Dată_Ang și salariu modificat, care va arăta prima zi
de luni (Monday) după 6 luni de lucru. Numiți-l REVIZUIRE. Formatați data, ca să fie în formatul Monday, the
Thirty-First of July, 2000.
9. Afișați pe ecran câmpurile Nume, Dată_Ang și ziua săptămânii, în care angajatul a început a lucra la noi.
Numiți acest câmp ZI. Sortați rezultatele după zilele săptămânii, începând cu luni.
10. Scrieți o interogare, care afișează câmpurile Nume și Imp_Proc pentru angajați. Dacă la acesta nu este
completat impozitul, scrieți FĂRĂ IMPOZIT. Numiți-l IMPOZ.
11. Scrieți o interogare, care afișează câmpul Nume și salariul său anual cu steluțe (fiecare steluță înseamnă o mie
de dolari). Numiți-l ANGAJAȚII_ȘI_SALARIILE_LOR.
12. Utilizând funcția DECODE, scrieți o interogare, care arată calificarea fiecărui angajat, pe baza câmpului
Func_ID în modul următor (dacă la Dvs. sunt alte funcții, se permite de utilizat valorile Dvs.):
Funcție Calificare
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
None of the above 0
13. Scrieți aceiași interogare cu ajutorul instrucțiunii CASE.

3. Teorie
Exista doua tipuri de functii in SQL. Functii care manipuleaza un singur rand (single-row) si functii care manipuleaza un grup de
randuri (multiple-row).

 Functiile single-row sunt:


 Functii pentru tipul character
 Functii pentru tipul numeric
 Functii pentru data calendaristica
 Functii de conversie dintr-un tip de data in altul
 Functii generate : NVL
Functii pentru tipul caracter
Sunt de doua tipuri:
 Functii de conversie
 LOWER ( column/expresie) -converteste la litere mici o valoare alfanumerica
 UPPER (column/expresie) - converteste la litera mare
 INITCAP (column/expresie) - converteste prima literamare restul mici
Functii de manipulare a caracterelor
 CONCAT(column/expresie, column/expresie)- concateneaza doua coloane. Este echivalent cu ||.
 SUBSTR (column/expresie, m [,n]) – returneaza caractere din sir incepand de la pozitia m, n caractere. Daca n este
omis va returna incepand de la m pana la sfarsitul sirului.
 LENGTH (column/expresie) – returneaza numarul de caractere.
 INSTR (column/expresie, m) – returneaza pozitia caracterului specificat in sirul dat de expresie.
 LPAD ( column/expresie, n,'string') – aliniaza la dreapta pe lungimea n, introducand sirul ‘string’ pe lungimea ramasa
din partea stanga.
Functii de conversie a sirurilor de caractere:
Functia Rezultatul
LOWER('SQL Curs') sql curs

UPPER('SQL Curs') SQL CURS

INITCAP('SQL Curs') Sql Curs


Functii pentru date numerice
 ROUND - rotunjeste o valoare , specificata zecimal.
 TRUNC - truncheaza o valoare specificata zecimal.
 MOD - returneaza restul impartirii a doua numere
Functii pentru date calendaristice
Oracle stocheaza data intr-un format intern numeric: secol, an, luna, zi, ora, minute si secunde. Implicit formatul pentru data este :
DD_MON_YY. SYSDATE este o functie care returneaza data si ora curenta.

Dual este o tabela care apartine user-ului SYS si poate fi accesata de toti utilizatorii. Afisarea datei curente folosind tabela dual :

Adunand sau scazand o valoare numerica dintr-o data calendaristica rezultatul va fi tot o data calendaristica. Deoarece tipul data
este stocat ca si tipul numeric, putem utiliza operatori aritmetici cum ar fi adunarea si scaderea. Putem aduna sau scadea un numar
dintr-o data.

Functii utilizate pentru tipul Date


 MONTHS_BETWEEN(date1,date2): returneaza numarul de luni dintre doua date.
 ADD_MONTHS(date, n): aduna un numar n de luni la o data, n trebuie sa fie intreg si pozitiv.
 NEXT_DAY(date,'sir') - returneaza urmatoarea zi dintr-o data specificata, sir poate fi un numar reprezentand o zi sau un
sir de caractere.
 LAST_DAY(date) - returneaza ultima zi dintr-o luna.
 ROUND(date[,’fmt’]) - returneaza data rotunjita la unitatile specificate in formatul fmt. Daca formatul fmt este
omis, data este rotunjita la data cea mai apropiata.
 TRUNC(date[,’fmt’]) - truncheaza o data dupa formatul specificat fmt, daca formatul este omis se truncheaza la zi.

Functii de conversie

In asignari, Oracle poate converti automat urmatoarele tipuri de date:

De la La
VARCHAR2 sau CHAR NUMBER
VARCHAR2 sau CHAR DATE
NUMBER VARCHAR2
DATE VARCHAR2

Asignarea reuseste daca serverul Oracle poate converti tipul de date al valorii folosite in asignare la tipul variabilei
asignate.

Pentru evaluarea expresiilor Oracle poate converti automat urmatoarele tipuri de date:

De la La
VARCHAR2 sau CHAR NUMBER
VARCHAR2 sau CHAR DATE

In general, cand este necesara o conversie de tip de date, in locurile in care regulile de conversie folosite in asignari nu
pot fi folosite, serverul Oracle foloseste regulile pentru expresii.
4. Mersul lucrarii

ex.1 ex.2

ex.3
ex.4

ex.5

ex.6
ex.7 ex.8

ex.9
ex.10

ex.11
ex.12
-13

5. Concluzii
In lucrarea de laborator nr 3 am folosit functiile :CURDATE(), UPPER(), LOWER(), LENGTH(), LPAD(),
NULLIF(), REPLACE(), DATE(); ce amplifica restrictia și sortarea datelor:

S-ar putea să vă placă și