TheCHECKSQL:n rajoitus pakottaa sääntöjä sarakearvoille rajoittamalla lisättävien tai päivitettävien tietojen määrää. Se varmistaa, että arvot täyttävät tietyt ehdot. Jos arvo rikkoo ehtoa, toiminto hylätään.CHECKvoidaan lisätä taulukon luomisen tai muokkaamisen aikana.
CHECK-rajoitteen syntaksi
The TARKISTA rajoitus voidaan määrittää taulukkoa luotaessa tai lisätä myöhemmin ALTER-käskyllä.
1. CHECKin käyttö CREATE TABLE:n kanssa :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. CHECKin käyttö ALTER TABLE:n kanssa
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Tärkeimmät kohdat CHECK-rajoituksesta:
- Verkkotunnuksen eheys: Se varmistaa, että sarakkeen arvot täyttävät tietyt ehdot, mikä auttaa säilyttämään kelvolliset tiedot tietokannassa.
- Käytetään CREATE:n tai ALTERin kanssa: CHECK-rajoitus voidaan määrittää luotaessa taulukkoa tai lisätä olemassa olevaan taulukkoon.
- Voidaan yhdistää muihin rajoituksiin: Voit käyttää CHECKia muiden rajoitusten kanssa, kuten ENSISIJAINEN AVAIN FORIGN KEY ja NOT NULL määrittääksesi kattavammat säännöt taulukkotiedoille.
- Rivitason rajoitukset: Toisin kuin saraketason rajoitukset, jotka vaikuttavat yksittäisiin sarakkeisiin, CHECK-rajoitusta voidaan tarvittaessa soveltaa useisiin sarakkeisiin kerralla.
Esimerkkejä CHECK-rajoitteen käytöstä
Katsotaanpa joitain käytännön esimerkkejä ymmärtääksemme paremmin, kuinka CHECK-rajoite toimii SQL .
Esimerkki 1: CHECKin käyttäminen yhteen sarakkeeseen
Tässä esimerkissä luomme Asiakkaat-taulukon, jossa on Ikä-sarake, jonka tulee sisältää arvot välillä 18-120. TARKISTA-rajoite varmistaa, että taulukkoon ei lisätä virheellistä ikää.
Kysely:
chown komento
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
Ikä-sarakkeessa on CHECK-rajoitus, joka varmistaa, että arvon on oltava välillä 18-120. Jos yrität lisätä iän tämän alueen ulkopuolelle, tietokanta antaa virheilmoituksen.
Esimerkki 2: TARKISTA rajoitus useilla sarakkeilla
Voimme myös käyttää CHECK-rajoitetta useissa sarakkeissa. Oletetaan esimerkiksi, että meillä on Työntekijätaulukko ja haluamme varmistaa, että Palkka on positiivinen ja Ikä on suurempi tai yhtä suuri kuin 18.
Kysely:
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-rajoite varmistaa, että molemmat ehdot täyttyvät. työntekijän on oltava vähintään 18-vuotias ja palkan on oltava suurempi kuin 0. Tällainen rajoitus on hyödyllinen, kun sääntöön liittyy useita sarakkeita.
Esimerkki 3: CHECK-rajoitteen lisääminen ALTER TABLE -toiminnolla
Voimme lisätä CHECK-rajoitteen olemassa olevaan taulukkoon käyttämällä ALTER TABLE -käskyä.
Kysely:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Tämä lisää Työntekijä-taulukkoon CHECK-rajoitteen, jonka nimi on chk_salary, ja varmistaa, että Palkka-sarakkeen vähimmäisarvo on 30 000. Jos yrität lisätä tai päivittää tietueen, jonka palkka on alle 30 000, toiminto epäonnistuu.
Suositeltu tietokilpailu Muokkaa tietokilpailua 5 kysymystäMitä CHECK-rajoite varmistaa SQL:ssä?
- A
Sarake hyväksyy arvot ilman sääntöjä
- B
Sarake hyväksyy arvot vain yksilöllisinä
- C
Sarake hyväksyy arvot vain silloin, kun se ei ole nolla
- D
Sarake hyväksyy arvot, jotka vastaavat annettua sääntöä
CHECK pakottaa sarakearvoille ehdon ja hylkää kaikki tiedot, jotka rikkovat määritettyä sääntöä.
Milloin SQL estää INSERTin suorittamisen CHECKin avulla?
- A
Kun arvo on kaksoiskappale sarakkeessa
- B
Kun arvo rikkoo määriteltyä ehtoa
- C
Kun taulukolla ei ole ensisijaista rajoitusta
- D
Kun arvo on NULL ja sarake sallii nollan
Jos lisätyt tai päivitetyt tiedot rikkovat CHECK-ehtoa SQL peruuttaa toiminnon.
Missä CHECK-rajoite voidaan määritellä?
- A
Vain SELECT-kyselyn syntaksin sisällä
- B
Vasta sen jälkeen, kun ensisijainen avain on ilmoitettu
- C
Taulukon luomisen tai muokkauksen aikana
- D
Vain numeerisille sarakkeille, joissa on alueita
CHECK voidaan lisätä taulukkoa luotaessa tai myöhemmin käyttämällä ALTER TABLE -käskyä.
Mitä tapahtuu monisarakkeisessa CHECK-rajoitteessa?
- A
Ehto voi viitata vain yhteen sarakkeeseen
- B
Ehto voi viitata useisiin sarakkeisiin
- C
Ehto toimii vain numeerisissa sarakkeissa
- D
Ehto jättää arvot huomioimatta lisäyksen aikana
CHECK voi soveltaa sääntöjä käyttämällä kahta tai useampaa saraketta, jotka pakottavat yhdistettyä vahvistusta.
Mikä lisäys epäonnistuu CHECK (Ikä ≥ 18) -rajoituksessa?
- A
Ikäarvo alle viisitoista vuotta
- B
Ikäarvo täsmälleen yhtä kuin kahdeksantoista
- C
Ikäarvo yli kaksikymmentäviisi
- D
Ikäarvo tallennettu NULL-arvona sallittu
Mikä tahansa arvo alle 18 rikkoo CHECK-sääntöä ja johtaa lisäysvirheeseen.
Tietokilpailu suoritettu onnistuneesti pisteesi: 2/5Tarkkuus: 0 %Kirjaudu sisään nähdäksesi selityksen 1/5 1/5 < Previous Seuraava >