Database
 sql >> Database >  >> RDS >> Database

Cosa sono i vincoli SQL e i suoi diversi tipi?

Poiché nei database sono presenti grandi quantità di dati, è molto importante per tutti noi aumentare l'accuratezza e l'affidabilità dei dati presenti nel database. Bene, i vincoli SQL vengono utilizzati per mantenere lo stesso. Esistono diversi tipi di vincoli che possono essere utilizzati. In questo articolo, discuterò di questi vincoli con esempi.

I seguenti argomenti saranno trattati in questo articolo:

  1. Cosa sono i vincoli?
  2. Vincoli disponibili in SQL:
      • Vincolo NON NULLO
      • Vincolo UNICO
      • CONTROLLA Vincolo
      • Vincolo PREDEFINITO
      • Vincolo INDICE

Cosa sono i vincoli SQL?

I vincoli SQL vengono utilizzati per specificare le regole per i dati in una tabella. Questi vengono utilizzati per limitare il tipo di dati che devono essere archiviati nel database e mirano ad aumentare l'accuratezza e l'affidabilità dei dati archiviati nel database.

Quindi, i vincoli assicurano che non vi sia alcuna violazione in termini di transazione dei dati, ma che sia stata rilevata una violazione; l'azione viene terminata.

Esistono due tipi di vincoli che possono essere applicati:

  1. Limiti a livello di colonna – Questi vincoli vengono applicati a una singola colonna
  2. Limiti a livello di tabella – Questi vincoli sono l'applicazione alla tabella completa

Andando avanti in questo articolo, cerchiamo di comprendere i diversi tipi di vincoli. Inoltre, prenderò in considerazione la seguente tabella per aiutarti a capire meglio.

Diversi vincoli SQL disponibili:

Vincolo NON NULLO

Il vincolo NOT NULL assicura che una colonna non possa avere un valore NULL. È possibile utilizzare il vincolo NOT NULL durante la creazione del database delle tabelle o durante la modifica.

Esempio

Vincolo NOT NULL su CREATE TABLE

Scrivi una query per creare la tabella Studenti sopra, dove StudentID e StudentName non possono essere NULL.

CREATE TABLE Students( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, City varchar(255) );

Vincolo NOT NULL su ALTER TABLE

Scrivi una query per modificare la tabella Studenti sopra, dove deve essere aggiunta una nuova colonna di DOB e non dovrebbe avere alcun valore NULL.

ALTER TABLE Students ADD COLUMN DOB year NOT NULL;

Proseguendo in questo articolo sui vincoli SQL, cerchiamo di capire come utilizzare il vincolo UNIQUE.

Vincolo UNICO

Il vincolo UNIQUE viene utilizzato per assicurarsi che tutti i valori in una colonna siano univoci. È possibile utilizzare il vincolo UNIQUE su più colonne o su una singola colonna con. Oltre a questo, puoi andare avanti e utilizzare il vincolo UNIQUE per modificare le tabelle esistenti.

Nota:

  1. Durante la creazione di tabelle, un vincolo PRIMARY KEY ha automaticamente un vincolo UNIQUE, per garantire l'unicità di una colonna.
  2. Una tabella può avere molti vincoli UNIQUE ma può avere un unico vincolo di chiave primaria.

Esempio:

Vincolo UNICO su CREATE TABLE

Scrivi una query per creare una tabella Studenti, con le colonne StudentID, StudentName, Età e Città. Qui, lo StudentID deve essere univoco per ogni singolo record.

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) 
NOT NULL, Age int, City varchar(255) );

Nomina un vincolo UNIQUE su più colonne

Per nominare un vincolo univoco e definirlo per più colonne puoi fare riferimento al seguente esempio:

Scrivi una query per creare una tabella Studenti, con le colonne StudentID, StudentName, Età e Città. Qui, StudentID e StudentName devono essere univoci per ogni singolo record.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255) CONSTRAINT Stu_Example 
UNIQUE (StudentID,StudentName) );

Qui Stu_Example è il nome assegnato al vincolo univoco applicato a StudentID e StudentName.

Vincolo UNICO su ALTER TABLE

Scrivi una query per modificare la tabella Studenti, in cui è necessario aggiungere un vincolo UNIQUE alla colonna StudentID.

ALTER TABLE Students ADD UNIQUE (StudentID);

Allo stesso modo, se desideri utilizzare il vincolo UNIQUE su più colonne e denominarlo, puoi scrivere una query come segue:

ALTER TABLE Students ADD CONSTRAINT Stu_Example UNIQUE (StudentID,StudentName);

Rilascia un vincolo UNICO

Per eliminare il vincolo specificato su una colonna, puoi utilizzare la convenzione di denominazione che potresti aver menzionato durante l'aggiunta del vincolo.

Ad esempio, se dobbiamo scrivere una query per eliminare il vincolo UNIQUE che abbiamo creato sopra, puoi scrivere la query come segue:

ALTER TABLE Students DROP CONSTRAINT Stu_Example;

Successivamente in questo articolo sui vincoli SQL, cerchiamo di capire come utilizzare il vincolo CHECK.

CONTROLLA Vincolo

Il vincolo CHECK assicura che tutti i valori in una colonna soddisfino una condizione specifica.

Esempio:

CONTROLLA Vincolo su CREATE TABLE

Scrivi una query per creare una tabella Studenti, con le colonne StudentID, StudentName, Età e Città. Qui la città deve essere Mumbai.

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’) );

CONTROLLO vincolo su più colonne

Per utilizzare il vincolo di controllo su più colonne puoi scrivere una query come di seguito:

Scrivi una query per creare una tabella Studenti, con le colonne StudentID, StudentName, Età e Città. Qui, la città deve essere Mumbai e l'età degli studenti deve essere> 19.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’ AND Age>19));

Allo stesso modo, puoi anche usare il vincolo CHECK con il comando ALTER TABLE. Fare riferimento di seguito.

CONTROLLA Vincolo su ALTER TABLE

Scrivi una query per modificare la tabella Studenti, in cui è necessario aggiungere un vincolo CHECK alla colonna Città. Qui la città deve essere Mumbai.

ALTER TABLE Students ADD CHECK (City=='Mumbai');

Allo stesso modo, se vuoi usare il vincolo CHECK assegnandogli un nome puoi scrivere una query come segue:

ALTER TABLE Students ADD CONSTRAINT StuCheckExample CHECK (City=='Mumbai');

Rilascia un vincolo CHECK

Per eliminare il vincolo specificato su una colonna, puoi utilizzare la convenzione di denominazione che potresti aver menzionato durante l'aggiunta del vincolo.

Ad esempio, se dobbiamo scrivere una query per eliminare il vincolo CHECK che abbiamo creato sopra, puoi scrivere la query come segue:

ALTER TABLE Students DROP CONSTRAINT StuCheckExample;

Proseguendo in questo articolo sui vincoli SQL, cerchiamo di capire come utilizzare il vincolo DEFAULT.

Vincolo PREDEFINITO

Il vincolo DEFAULT viene utilizzato per menzionare un insieme di valori predefiniti per una colonna quando non viene specificato alcun valore. Simile a quello degli altri vincoli, possiamo usare questo vincolo sul comando CREATE e ALTER table.

Esempio

Scrivi una query per creare una tabella Studenti, con le colonne StudentID, StudentName, Età e Città. Anche quando non c'è nessun valore inserito nella colonna Città, automaticamente deve essere inclusa Delhi.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)DEFAULT ‘Delhi’);

Vincolo DEFAULT su ALTER TABLE

Per utilizzare il vincolo DEFAULT con il comando ALTER TABLE, puoi scrivere una query come segue:

ALTER TABLE Students ADD CONSTRAINT StuDefauExample DEFAULT 'Mumbai' FOR City;

Elimina un vincolo DEFAULT

Per eliminare il vincolo DEFAULT è possibile utilizzare il comando ALTER TABLE come segue:

ALTER TABLE Students ALTER COLUMN City DROP DEFAULT;

Successivamente in questo articolo sui vincoli SQL, cerchiamo di capire come utilizzare il vincolo INDEX.

Vincolo INDICE

Il vincolo INDEX viene utilizzato per creare indici nella tabella, con l'aiuto di questi indici puoi creare e recuperare dati dal database molto rapidamente.

Sintassi

--Create an Index where duplicate values are allowed
CREATE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

--Create an Index where duplicate values are not allowed
CREATE UNIQUE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

Esempio

Scrivi una query per creare un indice con il nome Stu_index sulla tabella Studenti che memorizza StudentName.

CREATE INDEX Stu_index ON Students (StudentName);

Allo stesso modo, per eliminare un indice dalla tabella, devi usare il comando DROP con il nome dell'indice.

DROP INDEX Students.Stu_index;

Oltre ai vincoli di cui sopra, anche la CHIAVE PRIMARIA e la CHIAVE ESTERA sono considerate come vincoli. Il vincolo PRIMARY KEY viene utilizzato per definire i vincoli su come una colonna specifica identifica in modo univoco ogni tupla. Il vincolo FOREIGN KEY viene utilizzato per mettere in relazione due tabelle in base a una relazione.

Con questo, giungiamo alla fine di questo articolo. Spero che tu abbia capito come utilizzare i vari vincoli presenti nel database. Se desideri saperne di più su MySQL e conoscere questo database relazionale open source, dai un'occhiata al nostro Formazione sulla certificazione DBA MySQL che viene fornito con una formazione dal vivo con istruttore e un'esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.

Hai una domanda per noi? Per favore menzionalo nella sezione commenti di questo articolo sui vincoli SQL e ti risponderò.