Kuidas luua Microsoft SQL Serveris välisvõti

Andmebaaside üks olulisemaid mõisteid on luua andmebaaside tabelite vahelisi suhteid. Need suhted on mehhanism mitme tabeli salvestatud andmete ühendamiseks ja efektiivseks laadimiseks. Kahe tabeli vahelise seose loomiseks peate määrama välistab võti ühes tabelis, mis viitab teise tabeli veerule.

Andmebaasi tabelid ja suhted

Võib-olla teate, et andmebaasid on lihtsalt tabelid , mis sarnanevad arvutustabeli programmiga , näiteks Microsoft Exceliga. Te võite isegi Exceli arvutustabeli teisendada andmebaasi. Kui andmebaasid erinevad arvutustabelitest, siis on see siis, kui tegemist on tabelite vaheliste tugevate suhete loomisega.

Vaadake näiteks näiteks andmebaasi, mida ettevõte kasutab inimressursside teabe jälgimiseks. Selles andmebaasis võib olla tabel nimega Töötajad, mis sisaldab järgmisi andmeid iga ettevõtte töötajate kohta:

Selles näites on töötaja ID ainulaadselt loodud täisarv, mis määratakse iga töötaja juurde, kui see lisatakse andmebaasi. Positsiooni ID on töökood, mida kasutatakse ettevõtte töötaja positsiooni viitamisel. Selles skeemis võib töötaja olla ainult üks koht, kuid mitmed (või mitte) töötajad võivad iga positsiooni täita. Näiteks võib teil olla sadu töötajaid, kellel on "kassapidaja" positsioon.

Andmebaas võib sisaldada ka tabelit Positsioonid, millel on järgmine teave iga positsiooni kohta:

Sellel tabelil olev positsiooni ID on sarnane töötajate tabeli Töötaja ID-ga - see on ainulaadselt genereeritud täisarv, mis luuakse, kui positsioon on andmebaasi lisatud.

Kui me läheme andmebaasis olevate töötajate nimekirja väljavõtmisse, oleks loomulik nõuda iga isiku nime ja tema pealkirja. Kuid see teave on salvestatud mitmesse andmebaasi tabelisse, nii et seda saab alla laadida ainult JOIN-i päringu abil, mis nõuab tabelite vahelist seost.

Kui vaatate tabelite struktuuri, on suhte määratletav väli ilmselt ilmselge - positsiooni ID välja. Igal töötajal on ainult üks positsioon ja see positsioon on tuvastatud positsiooni ID lisamisega positsioonide tabeli vastavasse kirjesse. Lisaks positsioonide tabeli esmasele võtmele on selles näites ka positsiooni ID väljade tabelist töötajate tabeli kõrval võti. Seejärel saab andmebaas kasutada seda välja, et korreleerida teavet mitmest tabelist ning tagada, et andmebaasi muudatused või täiendused aitavad jätkuvalt viidata terviklikkusele .

Kui olete välisvõti tuvastanud, võite jätkata ja tõmmata soovitud andmed andmebaasist järgmise päringu abil:

SELECT Esimene Nimi, LastName, Pealkiri FROM Töötajatest INNER JOIN Positions ON Employees.PositionID = Positions.PositionID

Välisklahvide loomine SQL Serveris

Tehniliselt ei pea te täpselt määratlema suhet, et saaksite täita selliseid küsimusi nagu ülaltoodud. Siiski, kui teete sõnaselgelt suhet välise võtmepiirangu abil, saab andmebaas teile mõne majapidamistöid teha:

Alljärgnevalt kirjeldatakse, kuidas luua SQL Serveris võõrvõti:

ALTER TABEL Töötajad LISA VÄLISÕHU (PositionID) LINGID Positsioonid (PositionID)

Kui lisate lause, võite ka luua võõrvõti:

VÄLISTE KEHALISED NÄITAJAD Positsioonid (PositionID)

välise võtmeveeru veeru määratluse lõppu.