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 domandeCosa 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
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
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
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
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
Qualsiasi valore inferiore a 18 viola la regola CHECK e determina un errore di inserimento.
Quiz completato con successo Il tuo punteggio: 2/5Precisione: 0%Accedi per visualizzare la spiegazione 1/5 1/5 < Previous Avanti >