Documente Academic
Documente Profesional
Documente Cultură
STUD
SQL - 5
MATR
---1456
1325
1645
3145
2146
3251
2215
4311
3514
1925
2101
4705
CREAREA TABELELOR
SPEC si BURSA
TIP
PMIN PMAX SUMA
-------------------- ----- ----- ----FARA BURSA
0
399
BURSA SOCIALA
400
899
100
BURSA DE STUDIU
900 1799
150
BURSA DE MERIT
1800 2499
200
BURSA DE EXCEPTIE
2500 9999
300
3
TIPURI DE DATE
OBIECTIV
CODS NUME
DOMENIU
----- ---------- --------------11 MATEMATICA STIINTE EXACTE
21 GEOGRAFIE UMANIST
24 ISTORIE
UMANIST
NUME
AN GRUPA DATAN
LOC
TUTOR PUNCTAJ CODS
------- -- ------ --------- ---------- ----- ------- ---GEORGE
4 1141A 12-MAR-82 BUCURESTI
2890
11
VASILE
2 1122A 05-OCT-84 PITESTI
1456
390
11
MARIA
3 1131B 17-JUN-83 PLOIESTI
1400
11
ION
1 2112B 24-JAN-85 PLOIESTI
3251
1670
21
STANCA
4 2141A 15-MAY-82 BUCURESTI
620
21
ALEX
5 2153B 07-NOV-81 BRASOV
1570
21
ELENA
2 2122A 29-AUG-84 BUCURESTI
2146
890
21
ADRIAN
3 2431A 31-JUL-83 BUCURESTI
450
24
FLOREA
5 2452B 03-FEB-81 BRASOV
3230
24
OANA
2 2421A 20-DEC-84 BUCURESTI
4311
760
24
MARIUS
1 2412B 02-SEP-85 PITESTI
3514
310
24
VOICU
2 2421B 19-APR-84 BRASOV
4311
1290
24
Tip
NUMBER
Descriere
Numr real de dimensiune variabil, cu 38 de
cifre semnificative, avnd valori ntre 1E-130
i 10E125.
NUMBER(n)
Numr ntreg cu maxim n cifre
NUMBER(n, z)
Numr real cu n cifre dintre care z zecimale
DEC, DECIMAL,
Subtipuri pentru NUMBER. Numere n
NUMERIC
virgul fix cu 38 de cifre semnificative.
DOUBLE
Subtipuri pentru NUMBER. Numere n
PRECISION, FLOAT virgul mobil cu 38 de cifre semnificative.
REAL
Subtip pentru NUMBER. Numere n virgul
mobil cu 18 cifre semnificative.
NATURALN,
POSITIVEN
SIGNTYPE
PLS_INTEGER
SIRURI
Tip
CHAR(n), CHAR
CHARACTER,
CHARACTER(n)
NCHAR(n)
VARCHAR2(n)
STRING(n),
VARCHAR(n)
NVARCHAR(n)
Tip
LONG
ROWID
UROWID
TIPURI BINARE
TIMESTAMP[(n)]
LONG RAW
Descriere
Similar cu VARCHAR2 dar conine date
binare. Valoarea maxim pentru n este de
2000.
Similar cu LONG dar conine date binare.
TIMESTAMP [(n)]
WITH TIME ZONE
TIMESTAMP [(n)]
WITH LOCAL TIME
ZONE
INTERVAL YEAR
[(n)] TO MONTH
INTERVAL DAY
[(z)] TO SECOND
[(s)]
10
RAW(n)
Descriere
ir de caractere de maxim 231 octei. Este
permis doar o singur coloan de acest tip
pentru o tabel.
Poate stoca un identificator pentru o linie
dintr-o tabel. Pentru conversia la/de la ir
de caractere (18 caractere) se pot folosi
funciile SQL ROWIDTOCHAR respectiv
CHARTOROWID.
Universal
ROWID.
Poate
stoca
un
identificator logic i fizic de linie ntr-o
tabel, indexat sau nu precum i un
identificator de linie extern (non-Oracle). Nu
este necesar folosirea funciilor de conversie
la/de la ir de caractere (conversie
automat).
DATE
Tip
SIRURI (2)
Descriere
ir de caractere de lungime fix, egal cu n.
Valoarea maxim pentru n este 2000. Dac n
lipsete, ir de caractere de lungime 1.
Identice cu cele anterioare. Introduse pentru
compatibilitatea cu alte sisteme.
Analog cu CHAR dar poate stoca iruri scrise
n seturi de caractere naionale (multioctet)
ir de caractere de lungime variabil egal cu
n. Valoarea maxim pentru n este 4000.
Identice cu VARCHAR2, introduse pentru
compatibilitatea cu alte sisteme
Analog cu VARCHAR. Poate stoca iruri
scrise n seturi de caractere naionale
(multioctet)
Descriere
Subtipuri pentru NUMBER. Numere ntregi
cu maxim 38 de cifre
31
31
ntregi ntre -2 i 2 .
Subtipuri pentru BINARY_INTEGER.
Numere ntregi non-negative, respectiv
pozitive.
Subtipuri pentru BINARY_INTEGER.
Numere ntregi nenule non-negative,
respectiv pozitive.
Subtip al BINARY_INTEGER. Poate lua
doar valorile -1, 0 i 1.
31
31
ntregi ntre -2
i 2 . Similar cu
BINARY_INTEGER dar operaiile cu astfel
de numere sunt mai rapide i n caz de
depire se ridic o excepie.
11
Descriere
Dat calendaristic (secol, an, lun, zi, or,
minut, secund).
Extensie a tipului DATE. Conine i fraciuni
de secund. Dac este prezent, n specific
numrul de zecimale pentru acestea. Implicit
n=6
Extinde tipul TIMESTAMP coninnd i o
diferen ntre ora local i ora universal
(GMT)
Similar cu tipul anterior dar la stocarea n
baza de date valorile sunt convertite la ora
zonei bazei de date iar la regsire la ora zonei
aplicaiei client.
Se stocheaz intervale de ani i luni. Precizia
n specific numrul de cifre pentru an (ntre 0
i 4, implicit 2).
Similar cu tipul anterior, dar pentru intervale
de zile i secunde. valorile z i s sunt
preciziile pentru zile, respectiv secunde (0-9,
implicit 2 pentru z i 6 pentru s).
12
13
CREATE TABLE
15
TREBUIE CA:
BLOB
BFILE
14
16
NCLOB
Descriere
ir de caractere de pn la 4 GB. Se
recomand ca n aplicaiile noi s fie folosit
n locul lui LONG.
Similar cu CLOB dar se pot stoca iruri
utiliznd seturi naionale de caractere.
Dimensiunea maxim este de asemenea de 4
GB
Date binare de dimensiune pn la 4 GB
Date binare de dimensiune pn la 4 GB
stocate n fiiere externe. Nu particip la
tranzacii, replicare i pot fi doar citite nu i
modificate.
Tip
CLOB
17
18
OBSERVATII
EXEMPLU
19
20
OBSERVAM CA:
MATR, AN, TUTOR, PUNCTAJ i CODS care conin
valori de tip numr ntreg au fost definite ca
NUMBER(n) unde n este 1, 2 sau 4,
NUME, GRUPA i LOC sunt iruri de caractere de
lungime variabil definite ca VARCHAR2,
DATAN care conine data naterii studentului este de
tipul DATE,
Pentru unele dintre coloane au fost asociate valori
implicite care vor fi stocate automat n acestea dac
la inserarea unei noi linii nu se specific o valoare,
nul sau nenul.
Valorile implicite sunt compatibile cu tipul coloanelor
respective (ntreg sau ir de caractere, dup caz).
F. Radulescu. Curs: Baze de date
21
OBSERVAM CA:
22
23
24
25
26
27
28
CONSTRANGERI
29
30
TIPURI DE CONSTRANGERI
CONSTRANGERI (2)
31
32
CONSTRANGERI (3)
DETALIERE CONSTRANGERI
33
NOT NULL
34
EXEMPLU
35
36
DETALIERE CONSTRANGERI
PRIMARY KEY
37
38
EXEMPLE
39
DETALIERE CONSTRANGERI
40
UNIQUE
41
42
EXEMPLUL 1
EXEMPLUL 1 cont.
43
EXEMPLUL 2
45
CONTINUT VALID
44
46
CONTINUT INVALID
NUMAR1 NUMAR2
------ -----NULL
NULL
NULL
NULL
1000
2000
1000
3000
NULL
2000
1000
NULL
CE E UNIC?
NUMAR1 NUMAR2
------ -----NULL
NULL
NULL
NULL
1000
2000
1000
3000
NULL
2000
1000
NULL
1000
2000
NULL
2000
1000
NULL
47
48
DETALIERE CONSTRANGERI
FOREIGN KEY
49
50
SINTAXA
La nivel de coloan:
coloana [CONSTRAINT nume_constrangere]
REFERENCES tabela(coloana)
[ON DELETE CASCADE |
ON DELETE SET NULL]
La nivel de tabel:
[,CONSTRAINT nume_constrangere] FOREIGN
KEY(lista_coloane)
REFERENCES tabela(lista_coloane)
[ON DELETE CASCADE |
ON DELETE SET NULL]
F. Radulescu. Curs: Baze de date
STUD:
52
OBSERVATII
n cazul n care tabela SPEC nu exist nc
sistemul va semnala eroarea: ORA-00942: table
54
OBSERVATII cont.
CLAUZA ON DELETE
55
EXEMPLU
56
EXEMPLU cont.
La tergerea unei specializri din tabela SPEC
vor fi teri automat i toi studenii din
tabela STUD avnd pe coloana CODS codul
acesteia.
La tergerea unui student care este tutorul
altor studeni, automat acestora li se va
modifica valoarea pe coloana TUTOR la una
nul.
Tabela SPEC poate fi golit - ceea ce va
antrena i golirea tabelei STUD - dar nu
tears.
57
58
FK PENTRU UNIQUE
DETALIERE CONSTRANGERI
59
60
10
CHECK
SINTAXA
61
EXEMPLU
PMIN i PMAX sunt pozitive
PMIN < PMAX
SUMA este ntre 0 i 500
63
EXEMPLU cont.
62
64
MODIFICAREA STRUCTURII
Vizualizarea structurii tabelei
Adaugarea unei coloane
Stergerea unei coloane
Modificarea unei coloane
Adaugarea unei constrangeri
Stergerea unei constrangeri
Activare/dezactivare constrangeri
Golirea unei tabele
Stergerea unei tabele
Redenumirea unei tabele
Adaugarea de comentarii
EXEMPLU cont.
65
66
11
1. VIZUALIZARE STRUCTURA
Clientul SQL*Plus pune la dispoziie comanda DESCRIBE prin
care se pot afia numele coloanelor, tipul acestora i
eventualele constrngeri de tip NOT NULL.
Sintaxa comenzii SQL*Plus este:
DESCRIBE nume_tabela
Observaie: DESCRIBE nu este o cerere SQL ci o comand
SQL*Plus. Ea nu trebuie terminat cu punct i virgul (;).
Exemplu. Pentru a obine descrierea tabelei SPEC folosim
comanda:
DESCRIBE SPEC
Rezultat obinut:
Name
Null?
Type
--------------- -------- ----------------CODS
NUMBER(2)
NUME
VARCHAR2(10)
DOMENIU
VARCHAR2(15)
F. Radulescu. Curs: Baze de date
2. ADAUGARE COLOANA
Sintaxa:
ALTER TABLE nume_tabela ADD
(nume_coloana tip_date
[DEFAULT expresie] [constrangere]);
68
3. STERGERE COLOANA
Sintaxa:
sau
ALTER TABLE nume_tabela DROP (lista
coloane) [CASCADE CONSTRAINTS];
69
70
UNUSED
71
sau
ALTER TABLE nume_tabela SET UNUSED COLUMN
nume_coloana;
72
12
UNUSED cont.
EXEMPLE
73
UNUSED - Observatii
74
4. MODIFICARE COLOANA
Sintaxa:
75
EXEMPLU
76
77
78
13
5. ADAUGARE CONSTRANGERE
Sintaxa:
ALTER TABLE nume_tabela
ADD [CONSTRAINT nume] tip(coloana);
79
EXEMPLU
80
6. STERGERE CONSTRANGERE
81
Sintaxa:
ALTER TABLE nume_tabela DROP PRIMARY KEY
[CASCADE];
ALTER TABLE nume_tabela DROP
UNIQUE(lista_coloane)
[CASCADE];
ALTER TABLE nume_tabela DROP CONSTRAINT nume
[CASCADE];
Efectul acestor cereri este:
DROP PRIMARY KEY i DROP UNIQUE specific tergerea
constrngerii de tip cheie primar/cheie unic pentru tabela
respectiv. Constrngerea poate s nu aib un nume asociat
la definire.
DROP CONSTRAINT specific tergerea unei constrngeri
avnd asociat un nume.
Opiunea CASCADE se aplic n cazul n care exist
constrngeri dependente i specific tergerea suplimentar
a acestora.
F. Radulescu. Curs: Baze de date
82
7. ACTIVARE/DEZACTIVARE
CONSTRANGERE
EXEMPLU
Stergerea cheii primare a tabelei SPEC
i a constrngerilor dependente de
acestea (de exemplu cea de cheie
strin din STUD) se face astfel:
Sintaxa: Dezactivare:
Reactivare:
ALTER TABLE nume_tabela ENABLE PRIMARY KEY;
ALTER TABLE nume_tabela ENABLE
UNIQUE(lista_coloane);
ALTER TABLE nume_tabela ENABLE CONSTRAINT
nume;
83
84
14
EFECT
EXEMPLU
Dezactivarea i reactivarea
constrngerii de cheie primar SPEC_PK
pentru tabela SPEC:
85
8. GOLIRE TABELA
86
Sintaxa:
DROP TABLE nume_tabela;
88
11. COMENTARII
Tabelele i coloanele acestora pot avea asociat un
comentariu. Acesta este un text i se asociaz astfel:
Sintaxa:
RENAME nume_vechi TO nume_nou
9. STERGERE TABELA
Sintaxa:
TRUNCATE TABLE nume_tabela [REUSE
STORAGE];
Exemplu: golirea tabelei SPEC se poate face prin
cererea SQL
TRUNCATE TABLE SPEC;
Opiunea REUSE STORAGE este folosit pentru a
specifica faptul c spaiul ocupat de liniile terse
rmne alocat tabelei i poate fi folosit la inserrile
ulterioare n aceasta.
n lipsa acestei opiuni spaiul respectiv devine
disponibil, putnd fi utilizat i pentru alte tabele.
F. Radulescu. Curs: Baze de date
89
90
15
DICTIONARUL DE DATE
91
EXEMPLE
USER_CATALOG
SELECT * FROM USER_CATALOG;
este urmtorul:
TABLE_NAME
---------------BURSA
EVENIMENT
NUMERE
SPEC
STUD
USER_CATALOG
USER_OBJECTS
USER_CONSTRAINTS
USER_CONS_COLUMNS
F. Radulescu. Curs: Baze de date
93
USER_OBJECTS
TABLE_TYPE
----------TABLE
TABLE
TABLE
TABLE
TABLE
94
USER_CONSTRAINTS
92
95
96
16
EXEMPLU
USER_CONS_COLUMNS
Conine informaii despre coloanele care sunt implicate n
constrngerile de integritate. Cererea urmtoare afieaz
perechi (nume constrngere, nume coloan implicat) pentru
constrngerea BURSA_CK:
97
COLUMN_NAME
-------------------PMIN
PMAX
SUMA
98
Sfarsitul capitolului
CREAREA TABELELOR
99
100
17