Documente Academic
Documente Profesional
Documente Cultură
Interogarea datelor
Comandă LMD Descriere
SELECT regăseşte date din una sau mai multe tabele Clauze în SELECT Descriere
restricţionează liniile care se returnează pe baza unui
INSERT adaugă o înregistrare nouă într-o tabelă WHERE condiţie criteriu specificat în condiţia de selecţie
UPDATE modifică valori asociate coloanelor unei tabele structurează rezultatul într-o manieră ierarhică
clauze de ordonare ierarhică (asemănător cu o organigramă)
realizează fie modificări ale datelor, fie adăugări de înregistrări
MERGE dintr-o altă tabelă, în funcţie de o condiţie de potrivire grupează liniile în scopul identificării valorilor comune
GROUP BY coloane_grupare grupurilor (valori agregate calculate prin funcţii de grup)
DELETE şterge înregistrări dintr-o tabelă
restricţionează grupurile create prin clauza GROUP BY
HAVING condiţie pe baza unei condiţii asupra funcţiilor de grup
ORDER BY coloane_ordonare sortează liniile (implicit ascendent)
1 2
1
Limbajul SQL-Oracle
Rezolvaţi!
Interogarea datelor
5 6
2
Limbajul SQL-Oracle Limbajul SQL-Oracle
Interogarea datelor Funcţii SQL
Funcţii SQL care manipulează şiruri de caractere
Tabela DUAL Sintaxă Descriere Rezultat
tabelă existentă în orice BD Oracle UPPER (s) / LOWER (s) şir de caractere
are o singură coloană: DUMMY de tip VARCHAR2(1) INITCAP (s) şir de caractere
are o singură linie, conţinând valoarea x CONCAT (s1,s2) şir de caractere
utilizată pentru testarea unor comenzi SELECT care nu fac referiri LPAD (s1,n,s2) / RPAD (s1,n,s2) şir de caractere
neapărat la o tabelă dintr-o BD
LTRIM (s1,s2) / RTRIM (s1,s2) şir de caractere
SELECT 1000* 1.5 TRIM (info s1 FROM s2) şir de caractere
FROM dual;
LENGTH (s) număr
3
Limbajul SQL-Oracle
Ce afişează comanda următoare?
Funcţii SQL
13 14
15 16
4
Limbajul SQL-Oracle Limbajul SQL-Oracle
Funcţii SQL Funcţii SQL
Funcţii SQL care manipulează date calendaristice SELECT SYSDATE, ROUND(SYSDATE,'MM'), ROUND(SYSDATE,'YY'),
TRUNC(SYSDATE,'MM'), TRUNC(SYSDATE,'YY')
Sintaxă Descriere Rezultat FROM dual;
SYSDATE dată calendaristică SYSDATE ROUND(SYSDATE,'MM') ROUND(SYSDATE,'YY')
----------- ------------------- -------------------
ROUND (d,i) dată calendaristică
21.11.2013 01.12.2013 01.01.2014
TRUNC (d,i) dată calendaristică
TRUNC(SYSDATE,'MM') TRUNC(SYSDATE,'YY')
NEXT_DAY (d,s) dată calendaristică ------------------- -------------------
01.11.2013 01.01.2013
LAST_DAY (d) dată calendaristică
ADD_MONTHS(SYSDATE,4) MONTHS_BETWEEN(ADD_MONTHS(SYSD
--------------------- ------------------------------
21.03.2014 02:19:10 4
19 20
5
Limbajul SQL-Oracle Limbajul SQL-Oracle
Funcţii SQL Funcţii SQL
SELECT nume, salariul+comision "Venit total"
FROM angajati
SELECT 14+NULL-4, NVL(NULL,0), 14-NVL(NULL,0)-4 WHERE comision IS NULL;
FROM dual;
NUME Venit total
14+NULL-4 NVL(NULL,0) 14-NVL(NULL,0)-4 ------------------------- -----------
---------- ----------- ---------------- King
0 10 Kochhar
...
23 24
6
Limbajul SQL-Oracle Limbajul SQL-Oracle
Funcţii SQL Funcţii SQL
SELECT denumire_produs, categorie, pret_lista,
SELECT denumire_produs, categorie, pret_lista,
CASE LOWER(categorie)
DECODE(LOWER(categorie),'hardware4' ,0.2,'hardware2' ,0.15,0)
WHEN 'hardware4' THEN 0.2
* pret_lista Majorare_pret
WHEN 'hardware2' THEN 0.15
FROM produse
ELSE 0
WHERE LOWER(categorie) LIKE 'h%' ;
END * pret_lista Majorare_pret
FROM produse DENUMIRE_PRODUS CATEGORIE PRET_LISTA MAJORARE_PRET
WHERE LOWER(categorie) LIKE 'h%' ; --------------------- ------------------- ---------- -------------
DIMM - 128 MB hardware4 305,00 61
DENUMIRE_PRODUS CATEGORIE PRET_LISTA MAJORARE_PRET DIMM - 16 MB hardware2 124,00 24,8
--------------------- ------------------- ---------- ------------- .......
DIMM - 128 MB hardware4 305,00 61
DIMM - 16 MB hardware2 124,00 24,8
.......
25 26
TO_CHAR(198,'$999,999.99')
--------------------------
$198.00
27 28
7
Limbajul SQL-Oracle Limbajul SQL-Oracle
Funcţii SQL Funcţii SQL
TO_CHAR(SYSDATE,'DD-MON-YYYYHH
------------------------------
21-NOI-2013 01:11:02
29 30
MAX(e)
SELECT COUNT(comision)
AVG(e)
FROM angajati;
COUNT(COMISION)
---------------
35
31 32
8
Rezolvaţi! CURSUL 9...
Afişaţi pentru fiecare angajat identificat prin nume numărul total
de comenzi intermediate, precum şi valoarea acestora.
Limbaje relaţionale pentru definirea şi manipularea
datelor. Limbajul SQL. (continuare)
33