Užsienio raktas skiriasi nuo super rakto, kandidato rakto ar pirminio rakto, nes išorinis raktas yra tas, kuris naudojamas susieti dvi lenteles arba sukurti jų ryšį.
Čia, šiame skyriuje, aptarsime užsienio raktą, jo naudojimą ir pažvelgsime į keletą pavyzdžių, kurie padės suprasti užsienio rakto veikimą ir naudojimą. Taip pat pamatysime praktinį jo įgyvendinimą duomenų bazėje, ty kaip sukurti ir ištrinti pašalinį raktą lentelėje.
Kas yra svetimas raktas
Išorinis raktas yra tas, kuris naudojamas susieti dvi lenteles per pirminį raktą. Tai reiškia, kad vienos lentelės stulpeliai nurodo kitos lentelės pirminio rakto atributą. Be to, tai reiškia, kad jei kuris nors atributas yra nustatytas kaip pirminio rakto atributas, jis veiks kitoje lentelėje kaip išorinio rakto atributas. Tačiau reikia žinoti, kad išorinis raktas neturi nieko bendra su pirminiu raktu.
Užsienio rakto naudojimas
Užsienio rakto naudojimas yra tiesiog susieti dviejų lentelių atributus, naudojant pirminio rakto atributą. Taigi jis naudojamas santykiams tarp dviejų santykių sukurti ir palaikyti.
Užsienio rakto pavyzdys
Aptarkime pavyzdį, kad suprastume, kaip veikia užsienio raktas.
latekso sąrašai
Apsvarstykite dvi lenteles Studentas ir skyrius turintys atitinkamus atributus, kaip parodyta toliau pateiktoje lentelės struktūroje:
Lentelėse vienas atributas, matote, yra bendras, tai yra Stud_ID , tačiau abiejose lentelėse taikomi skirtingi pagrindiniai apribojimai. Mokinio lentelėje laukas Stud_Id yra a pirminis raktas nes ji vienareikšmiškai identifikuoja visus kitus Studento lentelės laukus. Kita vertus, Stud_Id yra a svetimas raktas Skyriaus lentelės atributas, nes jis veikia kaip pagrindinis studento lentelės rakto atributas. Tai reiškia, kad ir studentų, ir katedros lentelės yra susietos viena su kita dėl atributo Stud_Id.
Toliau pateiktame paveikslėlyje galite peržiūrėti toliau pateiktą dviejų lentelių santykio struktūrą.
Pastaba: Referencinis vientisumas DBVS yra sukurtas remiantis išorinio rakto koncepcija. Akivaizdu, kad pirminis raktas yra vienas egzistuojantis raktas, o išorinis raktas visada yra nuoroda į pirminį raktą kitoje lentelėje, kurioje lentelė, kurioje yra pirminis raktas, yra žinoma kaip kitos lentelės nuoroda arba pagrindinė lentelė. turi išorinį raktą.
Užsienio rakto apribojimo kūrimas
Ant KURTI LENTELĘ
Žemiau yra sintaksė, kuri leis mums išmokti sukurti išorinį raktą lentelėje:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) );
Taigi tokiu būdu galime nustatyti MYSQL duomenų bazės lentelės išorinį raktą.
aes vs des
Jei SQL arba Oracle serveryje sukuriate lentelės pašalinį raktą, veiks ši sintaksė:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) );
Ant ALTER TABLE
Toliau pateikiama sintaksė, skirta sukurti išorinio rakto apribojimą ALTER TABLE:
ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id);
Užsienio rakto numetimas
Norint ištrinti pašalinį raktą, galima naudoti toliau aprašytą sintaksę:
ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment;
Taigi tokiu būdu mes galime numesti išorinį raktą naudodami ALTER TABLE MYSQL duomenų bazėje.
java eilutės formatavimas
Taškas, kurį reikia prisiminti
Kai numetate išorinį raktą, reikia pasirūpinti lentelių, sujungtų per išorinį raktą, vientisumu. Jei atliksite pakeitimus vienoje lentelėje ir sutrikdysite abiejų lentelių vientisumą, joje gali būti rodomos tam tikros klaidos dėl netinkamo dviejų lentelių ryšio.
Referenciniai veiksmai
Yra keletas veiksmų, susijusių su išorinio rakto lentelės turėtojo atliktais veiksmais:
1) Kaskados
Kai ištriname eilutes pirminėje lentelėje (t. y. toje, kurioje yra pagrindinis raktas), ištrinami ir tie patys stulpeliai kitoje lentelėje (t. y. toje, kurioje yra išorinis raktas). Taigi veiksmas žinomas kaip Kaskados .
2) Nustatykite NULL
jie yra dainininkai
Toks nuorodos veiksmas išlaiko abiejų lentelių nuorodos vientisumą. Kai manipuliuojame / ištriname nurodytą eilutę pirminėje / nuorodoje lentelėje, antrinėje lentelėje (lentelė su išoriniu raktu), tokios nuorodos eilutės reikšmė nustatoma kaip NULL. Toks atliktas orientacinis veiksmas žinomas kaip Nustatyti NULL .
3) Nustatykite NUMATYTOJI
Toks veiksmas įvyksta, kai atnaujinamos pirminės lentelės nurodytos eilutės reikšmės arba eilutė ištrinama, antrinėje lentelėje reikšmės nustatomos į numatytąsias stulpelio reikšmes.
4) Apriboti
Tai yra apribojimas, kai pagrindinės lentelės nuorodos eilutės reikšmės negalima keisti arba ištrinti, nebent jos nenurodomas antrinėje lentelėje esantis išorinis raktas. Taigi, tai yra įprastas išorinio rakto nuorodas veiksmas.
5) Jokių veiksmų
java sąrašas tuščias
Tai taip pat yra išorinio rakto apribojimas, tačiau jis įgyvendinamas tik pabandžius modifikuoti arba ištrinti nurodytą pagrindinės lentelės eilutę.
6) Trigeriai
Visi šie ir kiti referenciniai veiksmai iš esmės yra įgyvendinami kaip trigeriai, kai išorinio rakto veiksmai yra labai panašūs arba beveik panašūs į vartotojo apibrėžtus trigerius. Tačiau kai kuriais atvejais užsakyti nuorodos veiksmai pakeičiami lygiaverčiais vartotojo nustatytais aktyvikliais, kad būtų užtikrintas tinkamas aktyviklio vykdymas.