SQLite primārā atslēga un ārējā atslēga ar piemēru

Šajā apmācībā jūs uzzināsit-

SQLite ierobežojums

Kolonnu ierobežojumi ievieš ierobežojumus un noteikumus kolonnā ievietotajām vērtībām, lai apstiprinātu ievietotos datus. Kolonnu ierobežojumi tiek noteikti, veidojot tabulu, kolonnu definīcijā.

SQLite primārā atslēga

Visām primārās atslēgas slejas vērtībām jābūt unikālām, nevis nulles vērtībām

Primāro atslēgu var lietot tikai vienai kolonnai vai kolonnu kombinācijai, pēdējā gadījumā kolonnu vērtību kombinācijai jābūt unikālai visās tabulu rindās.

Ir daudz dažādu veidu, kā tabulā definēt primāro atslēgu, piemēram:

  • Pašā slejas definīcijā:

    Sintakse: | _+_ |

  • Kā atsevišķa definīcija: | _+_ |
  • Lai izveidotu kolonnu kombināciju kā primāro atslēgu: | _+_ |

Nav nulles ierobežojums

SQLite Not null ierobežojums neļauj kolonnai iegūt nulles vērtību: | _+_ |

DEFAULT ierobežojums

SQLite noklusējuma ierobežojums, ja kolonnā neievietojat nevienu vērtību, tā vietā tiks ievietota noklusējuma vērtība.

Piemēram:

ColumnName INTEGER NOT NULL PRIMARY KEY; 

Ja rakstāt ievietošanas paziņojumu un šai slejai neesat norādījis nevienu vērtību, kolonnas vērtība būs 0.

SQLite UNIQUE ierobežojums

SQLite Unikāls ierobežojums, kas novērsīs visu kolonnu vērtību vērtību dublēšanos.

Piemēram:

PRIMARY KEY(ColumnName); 

Tas ieviesīs 'Darbinieka ID' vērtība ir unikāla, dublētas vērtības netiks atļautas. Ņemiet vērā, ka tas attiecas uz kolonnas vērtībām 'Darbinieka ID' tikai.

SQLite CHECK ierobežojums

SQLite pārbaudes ierobežojums nosacījums, lai pārbaudītu ievietoto vērtību; ja vērtība neatbilst nosacījumam, tā netiks ievietota. | _+_ |

Sadaļā nevar ievietot vērtību, kas ir mazāka par 10 'Daudzums' sleja.

Kas ir SQLite Foreign KEY?

SQLite ārējā atslēga ir ierobežojums, kas pārbauda vienas tabulas vērtības esamību citā tabulā, kurai ir saistība ar pirmo tabulu, kurā ir definēta svešā atslēga.

Strādājot ar vairākām tabulām, ja ir divas tabulas, kas ir savstarpēji saistītas ar vienu kopīgu kolonnu. Un, ja vēlaties nodrošināt, ka vienā no tiem ievietotajai vērtībai ir jābūt otras tabulas slejā, tad kopīgajā slejā jāizmanto “Ārējās atslēgas ierobežojums”.

Šādā gadījumā, mēģinot ievietot vērtību šajā kolonnā, ārējā atslēga nodrošinās, ka ievietotā vērtība pastāv tabulas slejā.

Ņemiet vērā, ka SQLite pēc noklusējuma nav iespējoti ārējo atslēgu ierobežojumi, vispirms tie ir jāiespējo, izpildot šādu komandu: | _+_ |

Ārvalstu atslēgu ierobežojumi tika ieviesti SQLite, sākot no versijas 3.6.19.

Piemērs

Pieņemsim, ka mums ir divas tabulas; Studenti un nodaļas.

Tabulā Studenti ir studentu saraksts, bet nodaļu tabulā - nodaļu saraksts. Katrs students pieder kādai nodaļai; i., katram studentam ir kolonna DepartmentId.

Tagad mēs redzēsim, kā ārējās atslēgas ierobežojums var būt noderīgs, lai nodrošinātu, ka departamenta tabulā ir jābūt nodaļas ID vērtībai studentu tabulā.

Tātad, ja mēs tabulā Students izveidojām ārējās atslēgas ierobežojumu departamentam ID, katrai ievietotajai nodaļai ID ir jābūt tabulā Departamenti. | _+_ |

Lai pārbaudītu, kā ārējo atslēgu ierobežojumi var novērst nenoteikta elementa vai vērtības ievietošanu tabulā, kurai ir saistība ar citu tabulu, mēs izskatīsim šādu piemēru.

Šajā piemērā tabulai Nodaļas ir tabula Studenti ārējās atslēgas ierobežojums, tāpēc jebkurai studentu tabulā ievietotajai nodaļasId vērtībai ir jābūt nodaļu tabulā. Ja tiek mēģināts ievietot departamenta tabulā nepastāvošu departamenta ID vērtību, ārējās atslēgas ierobežojums to neļaus.

Ieviesīsim divus departamentus 'IT' un 'Māksla' nodaļu tabulā šādi: | _+_ |

Diviem paziņojumiem vajadzētu ievietot divus departamentus departamentu tabulā, jūs varat nodrošināt, ka abas vērtības tika ievietotas, izpildot vaicājumu 'SELECT * FRANCIJAS' pēc tam:

Pēc tam mēģiniet ievietot jaunu studentu ar nodaļas ID, kas nepastāv nodaļu tabulā: | _+_ |

Rinda netiks ievietota, un jūs saņemsit kļūdu, sakot: Ārvalstu atslēgas ierobežojums neizdevās.