Constrangere de cheie primara
Ca si la cheile unice, o cheie primara forteaza unicitatea unei coloane sau combinatii de coloane implicate si un index unic este creat pentru a conduce aceasta. Totusi poate fi o singura cheie primara pe o tabela, si aceasta este cunoscuta ca fiind cheia definitiva prin care liniile in tabela sunt i- dentificate individul. NULL urile nu sunt permise in coloanele de chei primare.
Sintaxa constrangerii de tabela :
[CONSTRAINT nume constrangere] PRIMARY KEY (Coloana, Coloana, ...)
Sintaxa constrangerii de coloana :
[CONSTRAINT nume constrangere] PRIMARY KEY
Notati ca aceeasi combinatie de coloane nu poate fi folosita si pentru o cheie primara si pentru una unica. Urmatorul exempludefineste DEPTNO ca o cheie primara folosind o constrangere de coloana:
CREATE TABLE DEPT
(DEPTNO NUMBER(2) CONSTRAINT DEPT_PRIM PRIMARY KEY, ...)
Constrangere de cheie externa
Cheile externe furnizeaza reguli de integritate de referinta inauntrul unei tabele sau intre tabele.
O cheie exeterna este folosita intr-o relatie cu fiecare cheie primara sau unica oriunde si poate
fi folosita, de exemplu, pentru a preveni stergerea unui departament in DEPT daca angajatii
exista cu acelasi numar de departament in EMP.
Sintaxa constrangerii de tabela :
[CONSTRAINT nume constrangere] FOREIGN KEY (Coloana, Coloana, ...)
REFERENCES tabela (Coloana, Coloana, ...)
Sintaxa constrangerii de coloana :
[CONSTRAINT nume constrangere] REFERENCES tabela (Coloana)
Notati ca, cuvintele 'FOREIGN KEY' nu sunt folosite versiunea constrangerii de coloana a
sintaxei.
Pentru a stabili relatia dintre EMP si DEPT astfel incat EMP.DEPTNO este cheia externa, si fiecare angajat trebuie sa aiba un numar valid de departament care este cunoscut in DEPT:
CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO)
REFERENCES DEPT(DEPTNO)
