Che cosa è un vincolo di SQL?

January 1

vincoli SQL sono regole che limitano i dati memorizzati nelle tabelle. È possibile creare vincoli per la creazione di nuove tabelle o modificare le tabelle esistenti. I principali tipi di vincoli utilizzati da lingue SQL includono chiavi primarie ed esterne, unico nel suo genere, di controllo e non nullo. È possibile creare vincoli sia in stile in linea, in cui si specifica ogni vincolo sulla stessa linea come la dichiarazione di campo a cui si applica, o in stile out-of-line, in cui si specifica tutti i vincoli dopo campi dichiarato.

chiavi

Il vincolo di chiave primaria identifica in modo univoco un record in una tabella. Il suo campo o campi deve contenere un valore diverso da zero e ogni valore deve essere univoco all'interno della tabella. Ad esempio, un tavolo dipendente può utilizzare numeri di previdenza sociale come chiave primaria, perché ogni dipendente ha un e sono valori unici per ogni persona. Il vincolo di chiave esterna soddisfa i valori ai campi chiave in altre tabelle, collegandoli insieme. Ad esempio, una tabella prodotti può avere un campo numero di prodotto come chiave primaria, mentre una tabella Ordini può avere un campo numero di prodotto come una chiave esterna che fa riferimento alla chiave primaria della tabella prodotti.

Unico

Il vincolo univoco non consente più record nella tabella di avere gli stessi valori. Ogni vincolo univoco può essere applicato a uno o più campi. Ad esempio, una tabella dipendente può avere un vincolo univoco soltanto su un campo ID dipendente, mentre un'altra tabella può avere un vincolo univoco primi e ultimi campi di nome. Questa tabella può avere più record con il nome "John", ma solo un record con il nome completo "John Smith". I campi con vincoli univoci sono diverse da quelle con vincoli di chiave primaria in che questi campi possono avere valori nulli. I valori nulli in due o più record non sono considerati uguali.

Dai un'occhiata

Il vincolo di controllo ha la massima flessibilità di tutti i vincoli. Esso consente di verificare i dati per una determinata condizione prima che la query può inserire il record nella tabella. Ad esempio, è possibile verificare per assicurarsi che un record per un tavolo prodotti ha un campo prezzo con un valore maggiore di zero, o controllare al fine di garantire un record in una tabella di film-review ha un valore di campo rating compreso tra uno e quattro stelle.

Non nullo

Il vincolo non nullo richiede solo che il campo al quale si applica il vincolo ha un valore diverso da niente. Se la query di inserimento non contiene un valore per il campo o se una query di aggiornamento tenta di eliminare un valore da un campo con questo vincolo senza sostituirla, la query ha esito negativo. A differenza con la maggior parte degli altri vincoli, molte lingue SQL richiedono di dichiarare vincoli non-nulli utilizzando solo stile in linea; In caso contrario, la creazione o la modifica della tabella per aggiungere il vincolo non-nullo non funziona.