Documente Academic
Documente Profesional
Documente Cultură
MODULUL 2
Programarea bazelor de date
Sumar
1. Programare SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Bibliografie şi webografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
2
1. Programare SQL
Programare SQL
• Funcții
• Operatori
• Subinterogări
• Gruparea datelor
• Sortarea datelor
• Subinterogări
• Relaționarea tabelelor
• Interogări multiple (join)
• Constrângeri
3
1. Programare SQL
Funcții
4
1. Programare SQL
Funcțiile de grup
5
1. Programare SQL
1. Funcția COUNT
Sintaxa:
COUNT (expresie)
6
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
D3 Personal
SELECT COUNT (id_angajat)
D4 Administrativ
FROM angajați;
7
1. Programare SQL
2. Funcția MIN
Sintaxa:
MIN (nume_coloană)
8
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
D3 Personal
SELECT MIN(salariul)
D4 Administrativ
FROM angajați;
9
1. Programare SQL
3. Funcția MAX
Sintaxa:
MAX (nume_coloană)
10
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
D3 Personal
SELECT MAX(salariul)
D4 Administrativ
FROM angajați;
11
1. Programare SQL
4. Funcția SUM
Sintaxa:
SUM (nume_coloană)
12
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
D3 Personal
SELECT SUM(salariul)
D4 Administrativ
FROM angajați;
13
1. Programare SQL
5. Funcția AVG
Sintaxa:
AVG (nume_coloană)
14
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
D3 Personal
SELECT AVG(salariul)
D4 Administrativ
FROM angajați;
15
1. Programare SQL
Funcțiile singulare
Pentru a testa funcțiile singulare poate fi utilizată tabela DUAL, care conţine o singură
coloană numită DUMMY şi o singură linie în care va fi afișat efectul funcției testate.
16
1. Programare SQL
Funcții care operează asupra şirurilor de caractere
• LENGTH
• LOWER
• UPPER
• INITCAP
• CONCAT
• SUBSTR
• INSTR
• LPAD
• RPAD
• TRIM
• REPALCE
17
1. Programare SQL
1. Funcția LENGTH
Sintaxa:
LENGTH(șir)
Exemplu:
18
1. Programare SQL
2. Funcția LOWER
Sintaxa:
LOWER(șir)
Exemplu:
19
1. Programare SQL
3. Funcția UPPER
Sintaxa:
UPPER(șir)
Exemplu:
20
1. Programare SQL
4. Funcția INITCAP
• convertește în literă mare prima literă din fiecare cuvânt din şirul șir
Sintaxa:
INITCAP(șir)
Exemplu:
21
1. Programare SQL
5. Funcția CONCAT
Sintaxa:
CONCAT(șir1, șir2)
Exemplu:
22
1. Programare SQL
6. Funcția SUBSTR
• extrage din șir, începând din poziţia poz cel mult nr caractere
Sintaxa:
SUBSTR(șir, poz, [nr])
Exemplu:
23
1. Programare SQL
7. Funcția INSTR
Sintaxa:
INSTR(șir, subșir, [poz], [nr])
Exemplu:
24
1. Programare SQL
8. Funcția LPAD
Sintaxa:
LPAD(șir1, nr, șir2)
Exemplu:
25
1. Programare SQL
9. Funcția RPAD
Sintaxa:
RPAD(șir1, nr, șir2)
Exemplu:
26
1. Programare SQL
10. Funcția TRIM
Sintaxa:
TRIM(LEADING ch FROM șir)
TRIM(TRAILING ch FROM șir)
TRIM(BOTH ch FROM șir)
TRIM(ch FROM șir)
TRIM(șir)
Exemplu:
• înlocuieşte toate apariţiile subşirului subșir din şirul șir cu şirul șirnou
Sintaxa:
REPLACE(șir, subșir, [șirnou])
Exemplu:
28
1. Programare SQL
Funcții numerice
• ABS
• POWER
• SQRT
• MOD
• CEIL
• FLOOR
• ROUND
• TRUNC
• SIGN
29
1. Programare SQL
1. Funcția ABS
Sintaxa:
ABS(n)
Exemplu:
30
1. Programare SQL
2. Funcția POWER
• returnează valoarea mn
Sintaxa:
POWER(m, n)
Exemplu:
31
1. Programare SQL
3. Funcția SQRT
Sintaxa:
SQRT(n)
Exemplu:
32
1. Programare SQL
4. Funcția MOD
Sintaxa:
MOD(m, n)
Exemplu:
33
1. Programare SQL
5. Funcția CEIL
• returnează cel mai mic întreg care este mai mare sau egal decât
valoarea argumentului
Sintaxa:
CEIL(n)
Exemplu:
34
1. Programare SQL
6. Funcția FLOOR
• returnează cel mai mare întreg care este mai mic sau egal decât
valoarea argumentului
Sintaxa:
FLOOR(n)
Exemplu:
35
1. Programare SQL
7. Funcția ROUND
Sintaxa:
ROUND(m, n)
Exemplu:
36
1. Programare SQL
8. Funcția TRUNC
Sintaxa:
TRUNC(m, n)
Exemplu:
37
1. Programare SQL
9. Funcția SIGN
Sintaxa:
SIGN(n)
Exemplu:
38
1. Programare SQL
Funcții care operează asupra datelor calendaristice
• SYSDATE
• ADD_MONTHS
• MONTHS_BETWEEN
• NEXT_DAY
• LAST_DAY
• ROUND
• TRUNC
39
1. Programare SQL
1. Funcția SYSDATE
Sintaxa:
SYSDATE
Exemplu:
40
1. Programare SQL
2. Funcția ADD_MONTHS
Sintaxa:
ADD_MONTHS(dată, nr_luni)
Exemplu:
41
1. Programare SQL
3. Funcția MONTHS_BETWEEN
Sintaxa:
MONTHS_BETWEEN(dată1, dată2)
Exemplu:
SELECT MONTHS_BETWEEN(SYSDATE,’01-sep-2021’)
“Efect functie”
FROM DUAL;
42
1. Programare SQL
4. Funcția NEXT_DAY
Sintaxa:
NEXT_DAY(dată, zi)
Exemplu:
43
1. Programare SQL
5. Funcția LAST_DAY
Sintaxa:
LAST_DAY(dată)
Exemplu:
44
1. Programare SQL
6. Funcția ROUND
Sintaxa:
ROUND(dată, ’format’)
format: y, yy, yyyy, year
mm, month
Exemplu:
45
1. Programare SQL
7. Funcția TRUNC
Sintaxa:
TRUNC(dată, ’format’)
format: y, yy, yyyy, year
mm, month
Exemplu:
46
1. Programare SQL
Funcții de conversie
• TO_CHAR
• TO_DATE
• TO_NUMBER
47
1. Programare SQL
1. Funcția TO_CHAR
Sintaxa:
TO_CHAR(dată/număr, ’format’)
format: y, yy, yyyy, year
mm, month
d, dd, day
9…9
Exemplu:
Sintaxa:
TO_DATE(șir, ’format’)
format: yy
mm
dd
Exemplu:
Sintaxa:
TO_NUMBER(șir, ’format’)
format: 9…9
Exemplu:
50
1. Programare SQL
Funcții de uz general
• NVL
• NVL2
• NULLIF
• COALESCE
51
1. Programare SQL
1. Funcția NVL
Sintaxa:
NVL(val_1, val_2)
val1 | val2 : valori numerice, date calendaristice, șiruri de caractere
Exemplu:
52
1. Programare SQL
2. Funcția NVL2
• returnează val_2 dacă val_1 este nenulă sau returnează val_3 în caz
contrar
Sintaxa:
NVL2(val_1, val_2, val_3)
val1 | val2 | val3: valori numerice, date calendaristice, șiruri de caractere
Exemplu:
53
1. Programare SQL
3. Funcția NULLIF
Sintaxa:
NULLIF(expr_1, expr_2)
Exemplu:
54
1. Programare SQL
4. Funcția COALESCE
Sintaxa:
COALESCE(expr_1, expr_2, …, expr_n)
Exemplu:
55
1. Programare SQL
Operatori
Tipuri de operatori:
• operatori aritmetici
• operatori de comparație
• operatori logici
56
1. Programare SQL
1. Operatori aritmetici
Operator Descriere
* înmulțire
/ împărțire
+ adunare
- scădere
57
1. Programare SQL
Exemple:
SELECT 8*5.5
FROM dual;
SELECT TO_DATE('01-jan-2020','dd-mon-yyyy') -
TO_DATE('01-jan-2019','dd-mon-yyyy')
FROM dual
58
1. Programare SQL
2. Operatori de comparaței
Operator Descriere
< mai mic
> mai mare
<= mai mic sau egal
>= mai mare sau egal
= egal
<> diferit
- returnează true sau false
- operanzii sunt de tip numeric, șir de caractere sau dată calendaristică
59
1. Programare SQL
Exemple:
SELECT *
FROM angajati
WHERE salariul >= 3000;
60
1. Programare SQL
Alți operatori de comparație:
Operator Descriere
returnează true dacă cel puțin o valoare corespunde
ANY
condiției
returnează true dacă toate valorile corespund condiției
ALL
(utilizat cu subinterogări)
returnează true dacă o valoare aparține unei mulțimi de
IN
valoari (echivalent cu operatorul ANY)
returnează false dacă valoarea primului operand nu
NOT IN
face parte din lista specificată de al doilea operand
BETWEEN a AND b returnează true dacă o valoare aparține intervalului [a,b]
returnează true dacă o valoare corespunde unui șablon
LIKE (caracterul % semnifică orice şir de caractere, iar
caracterul _ semnifică un caracter oarecare)
IS [NOT] NULL returnează true dacă o valoare este nulă/nenulă
- returnează true sau false
- operanzii sunt de tip numeric, șir de caractere sau dată calendaristică
61
1. Programare SQL
Exemplul 1:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
62
1. Programare SQL
Exemplul 2:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
63
1. Programare SQL
Exemplul 3:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
64
1. Programare SQL
Exemplul 4:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
65
1. Programare SQL
Exemplul 5:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
66
1. Programare SQL
3. Operatori logici
Operator Descriere
NOT negație
AND ȘI logic
OR SAU logic
67
1. Programare SQL
Exemple:
68
1. Programare SQL
Subinterogări
69
1. Programare SQL
Sintaxa:
SELECT coloana1, coloana2, ...
FROM nume_tabelă
WHERE expresie operator
(SELECT coloana1, coloana2, ...
FROM nume_tabelă);
70
1. Programare SQL
Tipuri de subinterogări:
• subinterogări simple;
• subinterogări multiple.
71
1. Programare SQL
1. Subinterogări simple
72
1. Programare SQL
Exemplul:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id departament Denumire
D1 Comercial
D2 Economic
SELECT nume, prenume, salariul D3 Personal
FROM angajați D4 Administrativ
73
1. Programare SQL
2. Subinterogări multiple
74
1. Programare SQL
Exemplul 1:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id departament Denumire
D1 Comercial
D2 Economic
SELECT nume, prenume, salariul D3 Personal
FROM angajați D4 Administrativ
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id departament Denumire
D1 Comercial
D2 Economic
SELECT nume, prenume, salariul D3 Personal
FROM angajați D4 Administrativ
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id departament Denumire
D1 Comercial
D2 Economic
SELECT nume, prenume, salariul D3 Personal
FROM angajați D4 Administrativ
78
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
79
1. Programare SQL
Selectarea grupurilor. Clauza HAVING
80
1. Programare SQL
Exemplu:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
81
1. Programare SQL
Sortarea datelor
Sortarea liniilor unei tabele permite afișarea (la execuția unei comenzi
SELECT) datelor unei tebele în ordine crescătoare sau descrescătoare.
Sortarea datelor se poater face folosind clauza ORDER BY.
82
1. Programare SQL
Sintaxa:
83
1. Programare SQL
Exemplul 1:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 2500
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
84
1. Programare SQL
Exemplul 2:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
86
1. Programare SQL
În urma procesului de normalizare se obțin baze de date care conțin
tabele aflate în legătură.
Legătura dintre tabele este stabilită între o tabelă (numită părinte) și o
alta (numită copil) prin intermediul unui câmp comun.
Cheia primară a unei relații este un atribut (sau grup) care identifică fără
ambiguitate fiecare linie a tabelei.
O cheie străină este un grup de atribute care pune în legătură linii din
două tabele ale bazei de date.
87
1. Programare SQL
Maparea unei relaţii existentă între două entități, constă în a introduce (în
tabela corespunzătoare entităţii de pe partea many a relaţiei) cheia
primară a entităţii de pe partea one a relaţiei. Câmpul astfel introdus se
va numi cheie străină (foreign key).
Astfel, cheia străină a unei tabele este cheia primară din tabela referinţă
și cheia străină este întotdeauna introdusă în tabela corespunzătoare
entităţii din partea many a relaţiei.
88
1. Programare SQL
Interogări multiple. Operațile join
Pentru a prelua date din mai multe tabele, forma de bază a unei
declarații SELECT constă în adăugarea unei condiţii de legătură (join)
în clauza WHERE.
89
1. Programare SQL
Formatul de bază a unei declarații SELECT pentru interogarea a două
tabele:
90
1. Programare SQL
Operațiile join:
• Produs cartezian;
• Equijoin;
• NonEquijoin;
• SelfJoin;
• OuterJoin.
91
1. Programare SQL
1. Produs cartezian
- leagă fiecare rând din prima tabelă cu fiecare rând din cea de a doua
tabelă;
- în clauza FROM trebuie specificate tabelele între care are loc operația
de join;
- rezultatul este produsul cartezian al tuturor tabelelor (numărul de linii
returnate este produsul numărului de linii ale tabelelor);
92
1. Programare SQL
Exemplul:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
SELECT a.nume, a.prenume, D3 Personal
d.denumire D4 Administrativ
93
1. Programare SQL
2. Equijoin
94
1. Programare SQL
Exemplul:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
SELECT a.nume, a.prenume,
D3 Personal
d.denumire D4 Administrativ
96
1. Programare SQL
Exemplul:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 D1 Pop Ana 2800 014 228
289 D2 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
SELECT a.nume, a.prenume,
D3 Personal
d.denumire D4 Administrativ
98
1. Programare SQL
Exemplul:
Tabela ANGAJAȚI
Id Id
Nume Prenume Salariul Telefon
angajat departament
106 Pop Ana 2800 014 228
289 Adam Ion 2500
149 D1 David Mara 4000 012344
178 D3 Adam Ema 4000 022556
195 D2 Coca Tinu 3000
275 D1 Zota Nae 3500 089955
Tabela DEPARTAMENTE
Id
Denumire
departament
D1 Comercial
D2 Economic
SELECT a.nume, a.prenume,
D3 Personal
d.denumire D4 Administrativ
102
1. Programare SQL
Clasificarea constrângerilor:
1. constrângeri de coloană
- referă o singură coloană
- sunt definite odată cu definirea coloanei
Sintaxa:
nume_coloană[CONSTRAINT nume_constrângere]
tip_constrângere
2. constrângeri de tabelă
- pot referi una sau mai multe coloane
- se definesc separat de definițiile coloanelor
Sintaxa:
[CONSTRAINT nume_constrângere]
tip_constrângere(nume_coloană,...)
103
1. Programare SQL
Exemplul:
104
1. Programare SQL
Tipuri de constrângere:
• NOT NULL
• UNIQUE
• PRIMARY KEY
• FOREIGN KEY
• CHECK
105
1. Programare SQL
Constrângerea NOT NULL
106
1. Programare SQL
Sintaxa:
nume_coloană[CONSTRAINT nume_constrângere]
NOT NULL
Exemplul:
salariul NUMBER(5) NOT NULL
sau
salariul NUMBER(5) CONSTRAINT valoare_salariu
NOT NULL
107
1. Programare SQL
Constrângerea UNIQUE
108
1. Programare SQL
Sintaxa constrângerii la nivel de coloană:
nume_coloană[CONSTRAINT nume_constrângere]
UNIQUE
Exemplul:
telefon NUMBER(9) UNIQUE
sau
email VARCHAR2(25),
CONSTRAINT email_angajat UNIQUE(email)
109
1. Programare SQL
Constrângerea PRIMARY KEY
110
1. Programare SQL
Sintaxa constrângerii la nivel de coloană:
nume_coloană[CONSTRAINT nume_constrângere]
PRIMARY KEY
Exemplul:
id_angajat NUMBER(3) PRIMARY KEY
sau
id_departament VARCHAR2(2),
CONSTRAINT cheiae_primară
PRIMARY KEY(id_angajat)
111
1. Programare SQL
Constrângerea FOREIGN KEY
112
1. Programare SQL
Sintaxa constrângerii la nivel de coloană:
nume_coloană[CONSTRAINT nume_constrângere]
PRIMARY KEY
Exemplul:
id_departament VARCHAR2(2) REFERENCES
departamente (id_departament)
113
1. Programare SQL
Constrângerea CHECK
114
1. Programare SQL
Sintaxa constrângerii la nivel de coloană:
nume_coloană[CONSTRAINT nume_constrângere]
CHECK (conțiție)
Exemplul:
salariul NUMBER(5) CHECK(salariul>0)
115
2. Bibliografie şi webografie
1. Popescu Carmen, Informatică. Manual pentru clasa a XII-a, Editura
L&S Info-mat, Bucureşti, 2007
2. Cărnaț Cristiana, Junea Sandală, Scripcă Maria, Informatică. Manual
pentru clasa a XII-a, Editura Gimnasium, 2007
3. Logofătu Doina, Bazele programării în C++, Editura Polirom, Iaşi, 2006
4. Gheorghe Mioara, s.a. , Informatică. Manual pentru clasa a XII-a,
Editura Corint, București, 2007
5. http://ro.wikipedia.org/wiki/Fi%C8%99ier
116