Sunteți pe pagina 1din 3

Constrangeri

NOT NULL

UNIQUE

PRIMARY KEY

FOREIGN KEY

CHECK

Constrangerile se pot pune la nivel de coloana sau la nivel de tabela.- LA CREAREA TABELEI :

CREATE table

Ex: Constrangere de coloana

CREATE TABLE nume (id NUMBER (6) CONSTRAINT nume_id_pk PRIMARY KEY, …..)

OBS:

1. NUME_ID_PK E NUMELE CONSTRANGERII


2. CONSTRAINT nume_id_pk – ESTE OPTIONAL
3. Daca se fol constraint se da obligatoriu numele constrangerii

Ex: Constrangere de tabela

 CREATE TABLE nume (id NUMBER (6), ……, CONSTRAINT nume_id_pk PRIMARY KEY (id))
 ……
Constraint nume_unique UNIQUE (email, phone)
-orice combinatie formata din email si phone este unica si sn. Composite constraint.

OBS:

1. NOT NULL se pune numai la nivel de coloana.


2. Composite constraint se adauga numai la nivel de tabela.
3. Constrangerea UNIQUE permite valori NULL.

PRIMARY KEY

- identifica in mod unic fiecare rand din tabela;

- nu poate avea parti nule;

- o tabela poate sa aiba o singura cheie primara sau poate sa nu aiba deloc;

1|Page
- primary si unique key creeaza automat INDEX- tabela apare ordonata dupa primary key sau
unique;

FOREIGN KEY

-ajuta la relatia dintre tabela tata si tabela fiu

A) La nivel de coloana

CONSTRAINT nume_constrangere REFERENCES tabela_tata (coloana)

CONSTRAINT nume_constrangere- optionala

B) La nivel de tabela

CONSTRAINT nume_constrangere FOREIGN KEY (coloana) REFERENCES tabela_tata (coloana)

Ex: DEPARTMENTS (nume, id_dep (PK)) –TABELA TATA

EMPLOYEES (last_name, firs_name, salary, id_d (FK)) -TABELA FIU

a) la nivel de coloana

CREATE TABLE DEPARTMENTS (id_dep NUMBER(6) PRIMARY KEY, nume varchar2(30))

CREATE TABLE EMPLOYEES (last_name varchar2(30), first_name varchar2(30), salary number(6), id_dep
NUMBER(6) REFERENCES DEPARTMENTS(id_dep))

b) la nivel de tabela

CREATE TABLE DEPARTMENTS (nume varchar2(30), id_dep NUMBER(6) CONSTRAINT DEPARTMENTS


id_dep_pk PRIMARY KEY (id_dep))

CREATE TABLE EMPLOYEES (last_name varchar2(30), first_name varchar2(30), salary number(6), id_dep
number(6), CONSTRAINT employee_id_dep_fk FOREIGN KEY(id_dep) REFERENCES departments
(id_dep))

OBS:

1. Valorile din tabela fiu trebuie sa se regaseasca in tabela tata sau sa fie NULL.
2. Inainea definirii unui foreign key in tabela fiu, trebuie definit un primary key in tabela tata.
3. ON DELETE CASCADE
- dam DEFINIREA LUI LA foreign key DUPA CONSTRANGERE
- DACA SE STERGE O VALOARE DIN TABELA TATA, SE STERG TOATE RANDURILE CORESP DIN
TABELA FIU;

2|Page
4. ON DELETE CASCADE - cand se sterge o val din tabela tata, valorile coresp din tabela fiu devin
NULL;

CHECK

-la nivel de coloana si de tabela

CONSTRAINT nume_constrangere CHECK (conditie)

Ex:

A) la nivel de coloana

CREATE TABLE elevi (nume varchar2 (30), media number(5,2) CHECK (media>=0 AND media <= 10))

B) nivel de tabela

CREATE TABLE elevi (nume varchar2(30), media number(5,2), CONSTRAINT media_check CHECK
(media>=0 AND media<=10))

3|Page

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