logo

SQL | Vincoli

Vincoli SQL sono elementi essenziali in progettazione di database relazionali che assicurano la integrità precisione E affidabilità dei dati archiviati in un database. Applicando regole specifiche alle colonne della tabella, i vincoli SQL aiutano a mantenere la coerenza dei dati prevenendo inserimenti di dati non validi e ottimizzando le prestazioni delle query.

In questo articolo spiegheremo nel dettaglio i vincoli SQL più comuni fornendo esempi chiari e spiegando come implementarli in modo efficace.

Cosa sono i vincoli SQL?

Vincoli SQL sono regole applicate colonne O tavoli nell'a banca dati relazionale per limitare il tipo di dati che possono essere inserito aggiornato O cancellato . Queste regole garantiscono che i dati siano validi, coerenti e aderiscano alla logica aziendale o requisiti della banca dati . I vincoli possono essere applicati durante la creazione della tabella o successivamente utilizzando il file ALTER TABLE dichiarazione. Svolgono un ruolo fondamentale nel mantenimento della qualità e dell'integrità del database.



Tipi di vincoli SQL 

SQL fornisce diversi tipi di vincoli per gestire diversi aspetti dell'integrità dei dati. Questi vincoli sono essenziali per garantire che i dati soddisfino i requisiti di precisione coerenza E validità . Esaminiamo ciascuno di essi con spiegazioni dettagliate ed esempi.

1. Vincolo NON NULL

IL NON NULLO Il vincolo garantisce che una colonna non possa contenere valori NULL. Ciò è particolarmente importante per le colonne in cui un valore è essenziale per identificare i record o eseguire calcoli. Se una colonna è definita come NON NULLO ogni riga deve includere un valore per quella colonna.

Esempio:

CREATE TABLE Student  
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);

Spiegazione: Nell'esempio sopra entrambi iIDENAMEle colonne sono definite con il NON NULLO vincolo, il che significa che ogni studente deve avere unIDENAMEvalore.

2. Vincolo UNICO

IL UNICO Il vincolo garantisce che tutti i valori in una colonna siano distinti in tutte le righe di una tabella. A differenza del CHIAVE PRIMARIA che richiede l'unicità e non consente NULL, il vincolo UNIQUE consente valori NULL ma impone comunque l'unicità per le voci non NULL.

10 di 40

Esempio:

CREATE TABLE Student  
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);

Spiegazione : Ecco ilIDLa colonna deve avere valori univoci per garantire che due studenti non possano condividere la stessa colonnaID. Possiamo averne più di uno UNICO vincolo in una tabella.

3. Vincolo CHIAVE PRIMARIA  

UN CHIAVE PRIMARIA il vincolo è una combinazione di NON NULLO E UNICO vincoli. Identifica in modo univoco ogni riga in una tabella. Una tabella può averne solo uno CHIAVE PRIMARIA e non può accettare valori NULL. Viene in genere utilizzato per la colonna che fungerà da identificatore dei record.

Esempio:

CREATE TABLE Student  
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);

Spiegazione: In questo caso ilIDviene impostata come chiave primaria garantendo che l'ID di ogni studente sia univoco e non possa essere NULL.

4. Vincolo CHIAVE ESTERA

UN CHIAVE ESTERA Il vincolo collega una colonna in una tabella a chiave primaria in un'altra tabella. Questa relazione aiuta a mantenere integrità referenziale assicurando che il valore in chiave esterna corrisponde a un record valido nella tabella a cui si fa riferimento.

Tabella degli ordini:

O_IDORDINE_NOC_ID
122533
233253
345212
485321

Tabella Clienti:

C_IDNOMEINDIRIZZO
1RAMESHDELHI
2SICURONOIDA
3DHARMESHGURGAON

Come possiamo vedere chiaramente che il campo C_ID In Tabella degli ordini è il chiave primaria nella tabella Clienti, ovvero identifica in modo univoco ogni riga nella tabella Clienti tavolo. Pertanto è una chiave esterna nella tabella Orders. 

Esempio:

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)
)

Spiegazione: In questo esempio ilC_IDcolonna nelOrderstable è una chiave esterna che fa riferimento aC_IDcolonna nelCustomerstavolo. Ciò garantisce che solo gli ID cliente validi possano essere inseriti nel fileOrderstavolo.

5. VERIFICA Vincolo

IL CONTROLLO Il vincolo ci consente di specificare una condizione che i dati devono soddisfare prima di essere inseriti nella tabella. Questo può essere utilizzato per applicare regole come garantire che il valore di una colonna soddisfi determinati criteri (ad esempio, l'età deve essere maggiore di 18 anni)

Esempio:

CREATE TABLE Student  
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);

Spiegazione: Nella tabella sopra il CONTROLLO Il vincolo garantisce che nella tabella possano essere inseriti solo gli studenti dai 18 anni in su.

6. Vincolo PREDEFINITO

IL PREDEFINITO Il vincolo fornisce un valore predefinito per una colonna quando non viene specificato alcun valore durante l'inserimento. Ciò è utile per garantire che determinate colonne abbiano sempre un valore significativo anche se l'utente non ne fornisce uno

Esempio:

CREATE TABLE Student  
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);

Spiegazione: Qui se non è previsto alcun valoreAGEdurante un inserimento verrà assegnato automaticamente il valore di default pari a 18.

Come specificare i vincoli in SQL

I vincoli possono essere specificati durante il processo di creazione della tabella utilizzando il file CREATE TABLE dichiarazione. Inoltre è possibile modificare o aggiungere vincoli alle tabelle esistenti utilizzando il comandoALTER TABLEdichiarazione.

Sintassi per la creazione di vincoli:

CREA TABELLA nome_tabella

(

colonna1 tipo_dati [nome_vincolo]

colonna2 tipo_dati [nome_vincolo]

colonna3 tipo_dati [nome_vincolo]

...

);

Possiamo anche aggiungere o rimuovere vincoli dopo la creazione di una tabella:

Esempio per aggiungere un vincolo:

conversione di int in stringa in Java
ALTER TABLE Student  
ADD CONSTRAINT unique_student_id UNIQUE (ID);

Conclusione

I vincoli SQL sono essenziali per la manutenzione integrità dei dati e garantire la coerenza nei database relazionali. Comprendere e implementare questi vincoli in modo efficace aiuterà a progettare database robusti e privi di errori. Facendo leva NOT NULL CHIAVE PRIMARIA UNICA CHIAVE ESTERA VERIFICA DEFAULT e INDICE puoi assicurarti che il tuo database sia ottimizzato per precisione E prestazione .

Crea quiz