SQLite è un RDBMS, che viene utilizzato per gestire i dati del database, che viene inserito nelle righe e nelle colonne della tabella. Questo articolo ci aiuta a capire cosa è un vincolo unico in SQLite e come funziona in SQLite.
Qual è il vincolo unico in sqlite
Un vincolo univoco garantisce che i dati nella colonna dovrebbero essere univoci, il che significa che nessun campo della stessa colonna contenga valori simili. Ad esempio, creiamo una colonna, e -mail e la definiamo con il vincolo univoco in modo da garantire che nessuna e -mail inserita nella colonna debba essere uguale all'altro record della colonna.
Qual è la differenza tra il vincolo di chiave univoco e primario in SQLite
Entrambi i vincoli, la chiave primaria e unica assicurano che nessuna voce duplicata debba essere inserita nella tabella, ma la differenza è; La tabella dovrebbe contenere solo una chiave primaria mentre il vincolo univoco può essere utilizzato per più di una colonna nella stessa tabella.
Come il vincolo unico è definito in sqlite
Il vincolo univoco può essere definito sulla colonna singola o nelle colonne più in SQLite.
Come il vincolo unico è definito in una colonna
Un vincolo univoco può essere definito come una colonna, mediante la quale può garantire che nessun valori simili possano immettere in qualsiasi campo di quella colonna. La sintassi generale della definizione del vincolo univoco su una colonna è:
Crea table Table_name (colonnario 1 Tipo di dati univoco, tipi di dati colonnari2);La spiegazione di questo è:
Per comprendere questa sintassi, considera un esempio di creazione di una tabella per studenti_data che ha due colonne, una è di std_id e l'altra è di st_name, doveva definire la colonna, std_id, con il vincolo unico in modo che nessuno degli studenti possa avere Std_id simile a:
Crea table Students_data (std_id integer univoco, std_name text);Inserire i valori usando:
Inserire in studenti_data valori (1, "John"), (2, "Paul");Ora aggiungeremo un altro nome da studente in cui STD_ID è 1:
Inserisci nei valori Students_Data (1, 'Hannah');Possiamo vedere dall'output, ha generato l'errore di inserire il valore di std_id perché è stato definito con il vincolo univoco che significa che nessun valore può essere duplicato con gli altri valori di quella colonna.
Come viene definito il vincolo univoco per più colonne
Possiamo definire più colonne con il vincolo univoco, il che garantisce che non vi sia duplicazione dei dati inseriti in tutte le righe contemporaneamente. Ad esempio, se dobbiamo scegliere le città per un viaggio in tre gruppi di persone (A, B e C), non possiamo assegnare la stessa città a tutti i tre gruppi, questo può essere fatto usando il vincolo unico.
Ad esempio, questi tre scenari possono essere possibili:
Gruppo_a | Group_b | Group_c |
---|---|---|
Florida | Florida | Boston |
New York | Florida | Florida |
Florida | Florida | Florida |
Ma il seguente scenario non è possibile se stiamo usando i vincoli unici:
Gruppo_a | Group_b | Group_c |
---|---|---|
Florida | Florida | Florida |
La sintassi generale dell'utilizzo del vincolo univoco per le colonne multiple è:
Crea table Table_name (colonnario 1 Tipo di dati, colonna2, univoco (column1, column2));La spiegazione di questo è:
Per capirlo considereremo l'esempio sopra e eseguirà il seguente comando per creare una tabella di Trip_Data:
Crea table Trip_data (Group_a text, Group_b text, Group_c Text, univoco (group_a, group_b, group_c));Inseriremo i valori dell'assegnazione delle loro città:
Inserisci in Trip_data Values ("Florida", "Florida", "Boston"), ("New York", "Florida", "Florida"), ("Florida", "Florida", "Florida");Ora inseriremo la stessa città in tutte le colonne di Trip_Data:
Inserisci in Trip_data Values ("Florida", "Florida", "Florida");Possiamo vedere dall'output, non è consentita la duplicazione dei dati in tutte le colonne definite dal vincolo univoco e l'errore generato del vincolo univoco non è riuscita.
Come aggiungere il vincolo unico alla tabella esistente
In SQLite, possiamo aggiungere il vincolo usando il comando alter, ad esempio, abbiamo una tabella studenti_data con colonne std_id, std_name, vogliamo aggiungere un vincolo std_id alla tabella, studenti_data:
Come abbandonare il vincolo unico al tavolo esistente
Come altri database, non possiamo abbandonare il vincolo usando i comandi drop and altera, per eliminare i vincoli univoci che dovremmo seguire la stessa procedura che abbiamo optato per l'aggiunta del vincolo a una tabella esistente e ridefinire la struttura della tabella.
Considera di nuovo l'esempio sopra e rimuovi i vincoli unici da esso:
Pragma Foreign_Keys = Off;Conclusione
Il vincolo unico viene utilizzato nei database per limitare la duplicazione dei valori inseriti nei campi della tabella proprio come il vincolo chiave principale, ma c'è una differenza tra entrambi; Una tabella può avere solo una chiave primaria, mentre una tabella può avere colonne chiave univoci più di una. In questo articolo, abbiamo discusso di cosa sia un vincolo unico e come può essere usato in SQLite con l'aiuto di esempi.