logo

SQL | VERIFICA Vincolo

ILCHECKIl vincolo in SQL applica le regole sui valori delle colonne limitando i dati che possono essere inseriti o aggiornati. Garantisce che i valori soddisfino le condizioni specificate. Se un valore viola la condizione l'operazione viene rifiutata.CHECKpuò essere aggiunto durante la creazione o la modifica della tabella.

attraversamento dell'ordine postale

Sintassi del vincolo CHECK

IL Vincolo di VERIFICA può essere definito durante la creazione di una tabella o aggiunto successivamente utilizzando l'istruzione ALTER.

1. Utilizzando CHECK con CREATE TABLE :

CREATE TABLE table_name (  
column1 datatype
column2 datatype CHECK (condition)
...
);

2. Utilizzo di CHECK con ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

Punti chiave sul vincolo CHECK:



  • Integrità del dominio: Garantisce che i valori in una colonna soddisfino le condizioni specificate, aiutando così a mantenere i dati validi nel database.
  • Utilizzato con CREATE o ALTER: Il vincolo CHECK può essere definito durante la creazione di una tabella o aggiunto a una tabella esistente.
  • Può essere combinato con altri vincoli: Puoi utilizzare CHECK insieme ad altri vincoli come CHIAVE PRIMARIA FOREIGN KEY e NOT NULL per definire regole più complete per i dati della tabella.
  • Vincoli a livello di riga: A differenza dei vincoli a livello di colonna che influiscono sulle singole colonne, un vincolo CHECK può essere applicato a più colonne contemporaneamente, se necessario.

Esempi di utilizzo del vincolo CHECK

Vediamo alcuni esempi pratici per capire meglio come funziona il vincolo CHECK SQL .

Esempio 1: applicazione di CHECK su una singola colonna

In questo esempio creiamo una tabella Clienti con una colonna Età che deve contenere valori compresi tra 18 e 120. Il vincolo CHECK garantisce che nella tabella non venga inserita alcuna età non valida.

Domanda:

CREATE TABLE Customers (  
CustomerID INT PRIMARY KEY
Name VARCHAR(50)
Age INT CHECK (Age >= 18 AND Age <= 120)
);


-- Valid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (1 'John Doe' 25);

-- Invalid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (2 'Jane Smith' 15); -- This will fail due to the CHECK constraint

La colonna Età ha un vincolo CHECK che garantisce che il valore sia compreso tra 18 e 120. Se si tenta di inserire un'età al di fuori di questo intervallo, il database genererà un errore.

Esempio 2: vincolo CHECK con più colonne

Possiamo anche utilizzare il vincolo CHECK su più colonne. Ad esempio, supponiamo di avere un Tabella dei dipendenti e vogliamo garantire che lo stipendio sia positivo e che l'età sia maggiore o uguale a 18.

Domanda:

CREATE TABLE Employee (  
EmployeeID INT PRIMARY KEY
Name VARCHAR(50)
Age INT
Salary DECIMAL(10 2)
CHECK (Age >= 18 AND Salary > 0)
);


-- Valid insert
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (1 'Alice Johnson' 30 50000);

-- Invalid insert (age < 18)
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (2 'Bob Lee' 16 45000); -- This will fail due to the CHECK constraint

Il vincolo CHECK garantisce che entrambe le condizioni siano soddisfatte. il dipendente deve avere almeno 18 anni e lo stipendio deve essere maggiore di 0. Questo tipo di vincolo è utile quando nella regola sono coinvolte più colonne.

mostra app nascoste

Esempio 3: aggiunta di un vincolo CHECK con ALTER TABLE

Possiamo aggiungere un vincolo CHECK a una tabella esistente utilizzando l'istruzione ALTER TABLE.

Domanda:

ALTER TABLE Employee  
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);

Ciò aggiunge un vincolo CHECK denominato chk_salary alla tabella Employee garantendo che la colonna Salary abbia un valore minimo di 30000. Se si tenta di inserire o aggiornare un record con uno stipendio inferiore a 30000, l'operazione fallirà.

Quiz suggerito Modifica quiz 5 domande

Cosa garantisce un vincolo CHECK in SQL?

  • UN

    La colonna accetta valori senza alcuna regola

  • B

    La colonna accetta valori solo se univoci

  • C

    La colonna accetta valori solo se non null

    generatore di numeri casuali java
  • D

    La colonna accetta valori corrispondenti alla regola specificata

Spiegazione:

CHECK impone una condizione sui valori delle colonne rifiutando qualsiasi dato che violi la regola definita.

Quando SQL impedisce un INSERT utilizzando CHECK?

  • UN

    Quando il valore è duplicato nella colonna

  • B

    Quando il valore viola la condizione definita

  • C

    Quando la tabella non ha vincoli primari

  • D

    Quando il valore è NULL e la colonna consente null

Spiegazione:

Se i dati inseriti o aggiornati interrompono la condizione CHECK SQL annulla l'operazione.

Dove può essere definito un vincolo CHECK?

  • UN

    Solo all'interno della sintassi della query SELECT

    collezioni java java
  • B

    Solo dopo la dichiarazione della chiave primaria

  • C

    Durante la creazione o la modifica della tabella

  • D

    Solo per colonne numeriche con intervalli

Spiegazione:

CHECK può essere aggiunto durante la creazione della tabella o successivamente utilizzando un'istruzione ALTER TABLE.

Cosa succede in un vincolo CHECK su più colonne?

  • UN

    La condizione può fare riferimento a una sola colonna

  • B

    La condizione può fare riferimento a più colonne

  • C

    La condizione funziona solo su colonne numeriche

  • D

    La condizione ignora i valori durante l'inserimento

Spiegazione:

CHECK può applicare regole utilizzando due o più colonne che impongono la convalida combinata.

Quale inserto non soddisfa il vincolo CHECK (Età ≥ 18)?

  • UN

    Valore di età inferiore a quindici anni

    ordinamento dell'array Java
  • B

    Valore dell'età esattamente pari a diciotto anni

  • C

    Valore dell'età superiore a venticinque

  • D

    È consentito il valore dell'età memorizzato come valore NULL

Spiegazione:

Qualsiasi valore inferiore a 18 viola la regola CHECK e determina un errore di inserimento.

SQL | VERIFICA VincoloQuiz completato con successo Il tuo punteggio:  2/5Precisione: 0%Accedi per visualizzare la spiegazione 1/5 1/5 < Previous Avanti >