DeCHECKbeperking in SQL dwingt regels af voor kolomwaarden door de gegevens te beperken die kunnen worden ingevoegd of bijgewerkt. Het zorgt ervoor dat waarden aan gespecificeerde voorwaarden voldoen. Als een waarde de voorwaarde schendt, wordt de bewerking afgewezen.CHECKkan worden toegevoegd tijdens het maken of wijzigen van een tabel.
Syntaxis van de CHECK-beperking
De CHECK-beperking kan worden gedefinieerd bij het maken van een tabel of later worden toegevoegd met behulp van de ALTER-instructie.
1. CHECK gebruiken met CREATE TABLE :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. CHECK gebruiken met ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Belangrijke punten over de CHECK-beperking:
- Domeinintegriteit: Het zorgt ervoor dat de waarden in een kolom aan gespecificeerde voorwaarden voldoen, waardoor geldige gegevens in de database behouden blijven.
- Gebruikt met CREATE of ALTER: De CHECK-beperking kan worden gedefinieerd bij het maken van een tabel of kan worden toegevoegd aan een bestaande tabel.
- Kan worden gecombineerd met andere beperkingen: U kunt CHECK samen met andere beperkingen gebruiken, zoals PRIMAIRE SLEUTEL FOREIGN KEY en NOT NULL om uitgebreidere regels voor de tabelgegevens te definiëren.
- Beperkingen op rijniveau: In tegenstelling tot beperkingen op kolomniveau die van invloed zijn op individuele kolommen, kan een CHECK-beperking indien nodig op meerdere kolommen tegelijk worden toegepast.
Voorbeelden van het gebruik van de CHECK-beperking
Laten we eens kijken naar enkele praktische voorbeelden om beter te begrijpen hoe de CHECK-beperking werkt SQL .
Voorbeeld 1: CHECK toepassen op een enkele kolom
In dit voorbeeld maken we een tabel Klanten met een kolom Leeftijd die waarden tussen 18 en 120 moet bevatten. De CHECK-beperking zorgt ervoor dat er geen ongeldige leeftijd in de tabel wordt ingevoegd.
Vraag:
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
De kolom Leeftijd heeft een CHECK-beperking die ervoor zorgt dat de waarde tussen 18 en 120 moet liggen. Als u probeert een leeftijd in te voeren die buiten dit bereik valt, genereert de database een foutmelding.
Voorbeeld 2: CONTROLEER beperking met meerdere kolommen
We kunnen de CHECK-beperking ook voor meerdere kolommen gebruiken. Laten we bijvoorbeeld zeggen dat we een Werknemerstabel en we willen ervoor zorgen dat het salaris positief is en dat de leeftijd groter is dan of gelijk is aan 18 jaar.
Vraag:
bash voor lus 1 tot en met 10
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
De CHECK-beperking zorgt ervoor dat aan beide voorwaarden wordt voldaan. de werknemer moet minimaal 18 jaar oud zijn en het salaris moet groter zijn dan 0. Dit soort beperking is handig als er meerdere kolommen bij de regel betrokken zijn.
Voorbeeld 3: Een CHECK-beperking toevoegen met ALTER TABLE
We kunnen een CHECK-beperking aan een bestaande tabel toevoegen met behulp van de ALTER TABLE-instructie.
Vraag:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Hierdoor wordt een CHECK-beperking met de naam chk_salary toegevoegd aan de tabel Werknemers, waardoor wordt verzekerd dat de kolom Salaris een minimumwaarde van 30.000 heeft. Als u probeert een record in te voegen of bij te werken met een salaris lager dan 30.000, mislukt de bewerking.
Voorgestelde quiz Quiz bewerken 5 vragenWat zorgt een CHECK-beperking in SQL?
- A
Kolom accepteert waarden zonder enige regels
- B
Kolom accepteert alleen waarden als deze uniek zijn
- C
Kolom accepteert alleen waarden als deze niet nul zijn
- D
Kolom accepteert waarden die overeenkomen met een bepaalde regel
CHECK dwingt een voorwaarde af voor kolomwaarden, waarbij alle gegevens worden afgewezen die de gedefinieerde regel schenden.
Wanneer verhindert SQL een INSERT met CHECK?
Java-tekenreeksvergelijking
- A
Wanneer de waarde dubbel is in de kolom
- B
Wanneer de waarde de gedefinieerde voorwaarde schendt
- C
Wanneer de tabel geen primaire beperking heeft
- D
Wanneer de waarde NULL is en de kolom null toestaat
Als ingevoegde of bijgewerkte gegevens breken, annuleert de CHECK-voorwaarde SQL de bewerking.
Waar kan een CHECK-beperking worden gedefinieerd?
- A
Alleen binnen de SELECT-querysyntaxis
- B
Pas nadat de primaire sleutel is gedeclareerd
- C
Tijdens het maken of wijzigen van een tabel
0,0625 als breuk
- D
Alleen voor numerieke kolommen met bereiken
CHECK kan worden toegevoegd tijdens het maken van de tabel of later met behulp van een ALTER TABLE-instructie.
Wat gebeurt er in een CHECK-beperking met meerdere kolommen?
- A
Voorwaarde kan slechts naar één kolom verwijzen
- B
Voorwaarde kan naar meerdere kolommen verwijzen
- C
Voorwaarde werkt alleen op numerieke kolommen
geblokkeerde contacten
- D
Voorwaarde negeert waarden tijdens het invoegen
CHECK kan regels toepassen met behulp van twee of meer kolommen die gecombineerde validatie afdwingen.
Welke insert voldoet niet aan de CHECK-beperking (leeftijd ≥ 18 jaar)?
- A
Leeftijdswaarde lager dan vijftien jaar
- B
Leeftijdswaarde exact gelijk aan achttien
- C
Leeftijdswaarde groter dan vijfentwintig
- D
Leeftijdswaarde opgeslagen als NULL-waarde toegestaan
Elke waarde onder de 18 schendt de CHECK-regel en resulteert in een invoegfout.
Quiz succesvol afgerond Jouw score: 2/5Nauwkeurigheid : 0%Log in om uitleg te bekijken 1/5 1/5 < Previous Volgende >