SQL | TARKISTA rajoitus

SQL | TARKISTA rajoitus

The CHECK SQL: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. CHECK voidaan 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:

 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öä

Selitys:

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

Selitys:

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

Selitys:

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

Selitys:

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

Selitys:

Mikä tahansa arvo alle 18 rikkoo CHECK-sääntöä ja johtaa lisäysvirheeseen.

SQL | TARKISTA rajoitusTietokilpailu suoritettu onnistuneesti pisteesi:   2 /5 Tarkkuus:  0 % Kirjaudu sisään nähdäksesi selityksen 1 /5 1 /5 < Previous Seuraava >