logo

SQL | CONTROLEER Beperking

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 vragen

Wat 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

Uitleg:

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

Uitleg:

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

Uitleg:

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

Uitleg:

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

Uitleg:

Elke waarde onder de 18 schendt de CHECK-regel en resulteert in een invoegfout.

SQL | CONTROLEER BeperkingQuiz succesvol afgerond Jouw score:  2/5Nauwkeurigheid : 0%Log in om uitleg te bekijken 1/5 1/5 < Previous Volgende >