DeCHECKbegrensning i SQL håndhever regler for kolonneverdier ved å begrense dataene som kan settes inn eller oppdateres. Det sikrer at verdier oppfyller spesifiserte betingelser. Hvis en verdi bryter med betingelsen, blir operasjonen avvist.CHECKkan legges til under oppretting eller endring av tabeller.
Syntaks for CHECK-begrensningen
De SJEKK begrensning kan defineres når du oppretter en tabell eller legges til senere ved å bruke ALTER-setningen.
1. Bruke CHECK med CREATE TABLE :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. Bruke CHECK with ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Nøkkelpunkter om CHECK-begrensningen:
- Domeneintegritet: Det sikrer at verdiene i en kolonne oppfyller spesifiserte betingelser, og bidrar dermed til å opprettholde gyldige data i databasen.
- Brukes med CREATE eller ALTER: CHECK-begrensningen kan defineres når du oppretter en tabell eller legges til en eksisterende tabell.
- Kan kombineres med andre begrensninger: Du kan bruke CHECK sammen med andre begrensninger som PRIMÆR NØKKEL FOREIGN KEY og NOT NULL for å definere mer omfattende regler for tabelldataene.
- Begrensninger på radnivå: I motsetning til begrensninger på kolonnenivå som påvirker individuelle kolonner, kan en CHECK-begrensning gjelde for flere kolonner samtidig om nødvendig.
Eksempler på bruk av CHECK-begrensningen
La oss se på noen praktiske eksempler for bedre å forstå hvordan CHECK-begrensningen fungerer i SQL .
Eksempel 1: Bruk av CHECK på en enkelt kolonne
I dette eksemplet lager vi en kundetabell med en alderskolonne som må inneholde verdier mellom 18 og 120. CHECK-begrensningen sikrer at ingen ugyldig alder settes inn i tabellen.
inttostr java
Spørsmål:
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
Alder-kolonnen har en CHECK-begrensning som sikrer at verdien må være mellom 18 og 120. Hvis du prøver å sette inn en alder utenfor dette området, vil databasen gi en feilmelding.
Eksempel 2: Sjekk begrensning med flere kolonner
Vi kan også bruke CHECK-begrensningen på tvers av flere kolonner. La oss for eksempel si at vi har en Ansatttabell og vi ønsker å sikre at lønnen er positiv og alderen er større enn eller lik 18.
Spørsmål:
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
CHECK-begrensningen sikrer at begge betingelsene er oppfylt. den ansatte må være minst 18 år og lønnen må være større enn 0. Denne typen begrensning er nyttig når flere kolonner er involvert i regelen.
Eksempel 3: Legge til en CHECK-begrensning med ALTER TABLE
Vi kan legge til en CHECK-begrensning til en eksisterende tabell ved å bruke ALTER TABLE-setningen.
Spørsmål:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Dette legger til en CHECK-begrensning kalt chk_salary til Employee-tabellen og sikrer at Lønn-kolonnen har en minimumsverdi på 30000. Hvis du prøver å sette inn eller oppdatere en post med en lønn lavere enn 30000, vil operasjonen mislykkes.
Foreslått quiz Rediger Quiz 5 spørsmålHva sikrer en CHECK-begrensning i SQL?
- EN
Kolonne godtar verdier uten noen regler
- B
Kolonne godtar verdier bare når den er unik
hvis annet hvis annet java
- C
Kolonne godtar verdier bare når de ikke er null
- D
Kolonne godtar verdier som samsvarer med gitt regel
CHECK håndhever en betingelse på kolonneverdier som avviser data som bryter med den definerte regelen.
Når forhindrer SQL en INSERT ved å bruke CHECK?
- EN
Når verdien er duplisert i kolonnen
- B
Når verdien bryter definert betingelse
- C
Når tabellen ikke har noen primær begrensning
mysql vis alle brukere
- D
Når verdien er NULL og kolonnen tillater null
Hvis innsatte eller oppdaterte data bryter, avbryter CHECK-betingelsen SQL operasjonen.
Hvor kan en CHECK-begrensning defineres?
- EN
Bare innenfor SELECT-søkesyntaks
kantete materiale
- B
Først etter at primærnøkkelen er deklarert
- C
Under opprettelse eller endring av tabeller
- D
Bare for numeriske kolonner med områder
CHECK kan legges til mens du oppretter tabellen eller senere ved å bruke en ALTER TABLE-setning.
Hva skjer i en KONTROLL-begrensning med flere kolonner?
- EN
Betingelsen kan kun referere til én kolonne
- B
Tilstand kan referere til flere kolonner
- C
Tilstand fungerer bare på numeriske kolonner
format streng java
- D
Tilstand ignorerer verdier under innsetting
CHECK kan bruke regler ved å bruke to eller flere kolonner som håndhever kombinert validering.
Hvilket innlegg klarer ikke KONTROLL (Alder ≥ 18)-begrensningen?
- EN
Aldersverdi lavere enn femten år
- B
Aldersverdi nøyaktig lik atten
- C
Aldersverdi større enn tjuefem
- D
Aldersverdi lagret som NULL-verdi tillatt
Enhver verdi under 18 bryter med CHECK-regelen og resulterer i en innsettingsfeil.
Quiz fullførte poengsummen din: 2/5Nøyaktighet: 0 %Logg inn for å se forklaring 1/5 1/5 < Previous Neste >