Constrângeri SQL sunt elemente esenţiale în proiectarea bazelor de date relaționale care asigură integritate precizie şi fiabilitate a datelor stocate într-o bază de date. Prin aplicarea unor reguli specifice asupra coloanelor de tabel, constrângerile SQL ajută la menținerea coerenței datelor, prevenind intrările de date nevalide și optimizând performanța interogărilor.
În acest articol vom explica cele mai comune constrângeri SQL în detaliu, oferind exemple clare și explicând cum să le implementăm eficient.
Ce sunt constrângerile SQL?
Constrângeri SQL sunt reguli aplicate coloane sau mesele într-o baza de date relationala pentru a limita tipul de date care pot fi introdus actualizat sau șters . Aceste reguli asigură că datele sunt valide consecvente și respectă logica de afaceri sau cerințele bazei de date . Constrângerile pot fi impuse în timpul creării tabelului sau ulterior folosind ALTER TABLE declaraţie. Acestea joacă un rol vital în menținerea calității și integrității bazei de date.
controlul programului stocat
Tipuri de constrângeri SQL
SQL oferă mai multe tipuri de constrângeri pentru a gestiona diferite aspecte ale integrității datelor. Aceste constrângeri sunt esențiale pentru a ne asigura că datele îndeplinesc cerințele precizie consistenta şi valabilitate . Să trecem prin fiecare dintre ele cu explicații detaliate și exemple.
1. NOT NULL Constrângere
The NU NUL constrângerea asigură că o coloană nu poate conține valori NULL. Acest lucru este deosebit de important pentru coloanele în care o valoare este esențială pentru identificarea înregistrărilor sau efectuarea calculelor. Dacă o coloană este definită ca NU NUL fiecare rând trebuie să includă o valoare pentru acea coloană.
Exemplu:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
Explicaţie: În exemplul de mai sus, atâtIDşiNAMEcoloanele sunt definite cu NU NUL constrângere adică fiecare elev trebuie să aibă oIDşiNAMEvaloare.
2. Constrângere UNICA
The UNIC constrângerea asigură că toate valorile dintr-o coloană sunt distincte pe toate rândurile dintr-un tabel. Spre deosebire de CHEIA PRIMARĂ care necesită unicitate și nu permite NULL-uri constrângerea UNIQUE permite valori NULL, dar impune totuși unicitatea pentru intrările non-NULL.
Exemplu:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
Explicaţie : AiciIDcoloana trebuie să aibă valori unice, asigurându-se că doi elevi nu pot împărtăși același lucruID. Putem avea mai mult de unul UNIC constrângere într-un tabel.
indexof list
3. Constrângere CHEIE PRIMARĂ
O CHEIA PRIMARĂ constrângerea este o combinație a NU NUL şi UNIC constrângeri. Identifică în mod unic fiecare rând dintr-un tabel. O masă poate avea doar una CHEIA PRIMARĂ și nu poate accepta valori NULL. Acesta este de obicei folosit pentru coloana care va servi drept identificator al înregistrărilor.
Exemplu:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
Explicaţie: În acest caz,IDcoloana este setată ca cheie primară, asigurându-se că ID-ul fiecărui student este unic și nu poate fi NULL.
4. Constrângere CHEIE străină
O CHEIE STRĂINĂ constrângerea leagă o coloană dintr-un tabel la cheie primară într-un alt tabel. Această relație ajută la menținere integritate referenţială prin asigurarea că valoarea în cheie străină coloana corespunde unei înregistrări valide din tabelul la care se face referire.
Tabel comenzi:
| O_ID | COMANDA_NR | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
Tabel Clienți:
| C_ID | NUME | ADRESA |
|---|---|---|
| 1 | RAMESH | DELHI |
| 2 | SURESH | NOIDA |
| 3 | DHARMESH | GURGAON |
După cum putem vedea clar că câmpul C_ID în Tabelul comenzilor este cheie primară în tabelul Clienți, adică identifică în mod unic fiecare rând din Clienții masă. Prin urmare, este o cheie externă în tabelul comenzilor.
Exemplu:
CREATE TABLE Orders
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)
Explicaţie: În acest exemplu,C_IDcoloana dinOrderstabelul este o cheie străină care face referire laC_IDcoloana dinCustomersmasă. Acest lucru asigură că numai ID-uri de client valide pot fi inserate înOrdersmasă.
5. VERIFICAREA Constrângerii
The VERIFICA constrângerea ne permite să specificăm o condiție pe care datele trebuie să o îndeplinească înainte de a fi introduse în tabel. Aceasta poate fi folosită pentru a aplica reguli, cum ar fi asigurarea faptului că valoarea unei coloane îndeplinește anumite criterii (de exemplu, vârsta trebuie să fie mai mare de 18 ani)
Exemplu:
cum se citește din fișierul csv în java
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);
Explicaţie: În tabelul de mai sus VERIFICA constrângerea asigură că numai elevii cu vârsta de 18 ani sau mai mari pot fi inserați în tabel.
6. Constrângere DEFAULT
The IMPLICIT constrângerea furnizează o valoare implicită pentru o coloană atunci când nu este specificată nicio valoare în timpul inserării. Acest lucru este util pentru a vă asigura că anumite coloane au întotdeauna o valoare semnificativă, chiar dacă utilizatorul nu furnizează una
Exemplu:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
Explicaţie: Aici, dacă nu este furnizată nicio valoareAGEîn timpul unei inserări, valoarea implicită de 18 va fi atribuită automat.
Cum să specificați constrângeri în SQL
Constrângerile pot fi specificate în timpul procesului de creare a tabelului folosind CREATE TABLE declaraţie. În plus, constrângerile pot fi modificate sau adăugate la tabelele existente folosindALTER TABLEdeclaraţie.
Sintaxă pentru crearea constrângerilor:
xor în c++
CREATE TABLE table_name
(
coloana1 tip_date [nume_constrângere]
coloana2 tip_date [nume_constrângere]
coloana3 tip_date [nume_constrângere]
identificatori validi în java...
);
De asemenea, putem adăuga sau elimina constrângeri după ce este creat un tabel:
Exemplu de adăugare a unei constrângeri:
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
Concluzie
Constrângerile SQL sunt esențiale pentru menținere integritatea datelor și asigurarea coerenței în bazele de date relaționale. Înțelegerea și implementarea eficientă a acestor constrângeri va ajuta la proiectarea bazelor de date solide, fără erori. Prin pârghie CHEIE STRĂINĂ CHEIE PRIMĂRĂ UNICA NU NUL VERIFICARE IMPLICITĂ și INDEX vă puteți asigura că baza de date este optimizată pentru precizie şi performanţă .
Creați un test