Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Crearea si utilizarea constrangerilor
Constrangerile se definesc cu scopul de a asigura integritatea datelor dintr-o tabela si din coloane individuale. Instructiunea CREATE TABLE permite crearea cheilor primare si externe, asigurarea unicitatii valorilor din coloane si linii, specificarea constrangerilor de validare si de valoare implicita.
Constrangerea PRIMARY KEY
Se foloseste pentru a asigura integritatea coloanelor precum si integritatea referentiala. Definirea unei constrangeri Primary Key asigura unicitatea liniilor din tabela, impiedicand introducerea de valori duplicat intr-o combinatie de una sau mai multe coloane. Ea impiedica introducerea de valori Null in coloana(-ele)pe care este definita aceasta constrangere. Conduce la crearea unui index unic pe coloana (-le), index care se poate utiliza pentru regasirea mai rapida a liniilor din tabela. La definirea acestei constrangeri se utilizeaza cuvintele cheie PRIMARY KEY.
Constrangerea FOREIGN KEY
Se foloseste impreuna cu o constrangere PRIMARY KEY, definita anterior, pe o tabela asociata. O astfel de constrangere asociaza una sau mai multe coloane, ale unei tabele, cu o multime identica de coloane pe care a fost definita o constrangere PRIMARY KEY in cadrul unei alte tabele. Atunci cand sunt modificate valori in coloanele tabelei pe care s-a definit constrangerea PRIMARY KEY, se modifica automat si coloanele din cealalta tabela pe care s-a definit constrangerea FOREIGN KEY.
Cele doua constrangeri: PRIMARY KEY si FOREIGN KEY asigura faptul ca liniile corespunzatoare din tabelele asociate raman in corespondenta. Actualizarea automata a valorilor corespunzatoare din tabelele pe care s-au definit cele doua constrangeri se numeste integritatea referentiala declarativa.
Tabela specificata dupa cuvantul cheie REFERENCES este tabela in care pe baza coloanei (-lor) s-a definit o constrangere Primary Key.
Coloanele corespunzatoare pe baza carora se definesc constrangerile Primary Key si Foreign Key nu trebuie neaparat sa aiba acelasi nume.
Constrangerea UNIQUE
Se poate aplica oricarei coloane dintr-o tabela pentru a impiedica inscrierea de valori duplicat in coloana respectiva. O astfel de coloana nu poate sa reprezinte o cheie primara, sau sa faca parte dintr-o cheie primara a tabelului.
Constrangerea CHECK
Limiteaza valorile care pot fi introduse in una sau mai multe coloane ale tabelului. De exemplu, se poate utiliza pentru a restrange valorile care pot fi inscrise intr-o coloana de tip numeric, la un interval mai mic decat cel permis de tipul de date.
Operatia de asociere a unei validari cu o coloana a unei table se numeste legare. Pentru aceeasi coloana se pot defini mai multe validari.
Constrangerea DEFAULT
Se foloseste pentru a asigura inscrierea automata a unei valori intr-o coloana a unei tabele atunci cand la operatia de inserare nu este specificata nici o valoare. Se poate defini o constrangere Default pe baza valorii care apare cel mai frecvent in cadrul unei coloane, scutind utilizatorul de a mai introduce acesta valoare implicita la inserarea liniilor.
Exemple:
Se creaza tabela Client cu doua campuri: cod (este cheie primara si se numeroteaza automat incepand de la 1) si denumire client.
create table client (cod_client int not null identity (1, 1) primary key,
den_client varchar (30) not null)
Se creaza tabela Client avand campurile: cod (este cheie primara), denumire client, judet care poate lua doua valori "dj" si "ot", valoarea implicita fiind "dj".
create table client (cod_client int primary key, den_client varchar (30) not null,
judet varchar (2) check (judetin ('dj', 'ot')) default 'dj')
Se creaza tabela cu informatii despre facturile emise unor clienti. Tabela are campul nr_fact cheie primara, iar cod_client cheie externa. Valoarea facturii este cuprinsa intre 1000000 si 100000000. Data facturii are valoarea implicita data curenta furnizata de functia getdate().
create table facturi (nr_fact int identity primary key, data smalldatetime not null default getdate(), valoare int check (valoare between 1000000 and 100000000), cod_client int constraint c1 foreign key (cod_client) references client (cod_client))
Copyright © 2025 - Toate drepturile rezervate