Miten luodaan ulkoisia avaimia Microsoft SQL Serverissa?

Tietokantojen yksi tärkeimmistä käsitteistä on luoda tietokannat taulukoiden välisiä suhteita. Nämä suhteet tarjoavat mekanismin yhdistää useita taulukoissa tallennettuja tietoja ja hakea ne tehokkaasti. Jotta voit luoda linkin kahden taulukon välillä, sinun on määritettävä vieras avain yhdestä taulukosta, joka viittaa toiseen taulukkoon sarakkeeseen.

Tietokannan taulukoita ja suhteita

Tiedät jo, että tietokannat ovat vain sarja taulukoita , jotka muistuttavat taulukkolaskentaohjelmaa , kuten Microsoft Excelia. Itse asiassa voit jopa muuntaa Excel-laskentataulukon tietokantaan. Jos tietokannat eroavat kuitenkin taulukkolaskentaan, on kyse taulukoiden tehokkaiden suhteiden rakentamisesta.

Harkitse esimerkiksi yrityksen tietokantaa henkilöstötietojen seurantaan. Tietokannassa voi olla taulukko nimeltä Työntekijät, joka sisältää seuraavat tiedot jokaiselle henkilökunnan jäsenelle:

Tässä esimerkissä työntekijän tunnus on yksilöllisesti luotu kokonaisluku, joka määritetään jokaiselle työntekijälle, kun se lisätään tietokantaan. Sijainti-ID on työkoodi, jota käytetään viittaamaan työntekijän asemaan yrityksessä. Tässä järjestelmässä työntekijällä voi olla vain yksi asema, mutta useita (tai ei) työntekijöitä voi täyttää jokaisen tehtävän. Esimerkiksi sinulla voi olla satoja työntekijöitä, joilla on kassa-asema.

Tietokanta saattaa sisältää myös taulukon nimeltä Positio, jossa on seuraavat lisätiedot kustakin asemasta:

Tämän taulukon sijainti-ID-kenttä on samanlainen Työntekijät-taulukon Työntekijän tunnuksen kentän kanssa - se on yksilöllisesti luotu kokonaisluku, joka luodaan, kun paikka lisätään tietokantaan.

Kun menemme vetämään tietokannasta työntekijöiden luettelo, olisi luonnollista pyytää jokaisen henkilön nimi ja nimensä. Nämä tiedot tallennetaan kuitenkin useisiin tietokantataulukoihin, joten niitä voi hakea vain käyttämällä JOIN-kyselyä, joka edellyttää olemassa olevia suhteita taulukoiden välillä.

Kun tarkastellaan taulukkojen rakennetta, kentän, joka määrittelee suhde, on luultavasti ilmeinen - Position ID -kenttä. Jokaisella työntekijällä voi olla vain yksi asema ja tämä asema tunnistetaan sijoittamalla Position ID positiotaulukon vastaavaan merkintään. Sen lisäksi, että positio-taulukon ensisijainen avain on tässä esimerkissä, Position ID -kenttä on myös ulkomaalainen avain Työntekijöiden taulukosta Positions-taulukkoon. Tietokanta voi tämän jälkeen käyttää tätä kenttää korreloimaan tietoja useista taulukoista ja varmistamaan, että kaikki muutokset tai lisäykset tietokantaan edelleen ohjaavat viitteellistä eheyttä .

Kun olet tunnistanut vieraan avaimen, voit mennä eteenpäin ja vetää haluamasi tiedot tietokannasta seuraavan kyselyn avulla:

SELECT Etunimi, Etunimi, Otsikko FROM Työntekijät INNER JOIN Positions ON Employees.PositionID = Positions.PositionID

Ulkomaisten avainten luominen SQL Serverissa

Teknisesti, sinun ei tarvitse määritellä suhdetta nimenomaisesti, jotta pystyt tekemään edellä mainitun kaltaisia ​​kyselyitä. Jos kuitenkin määrität nimenomaan suhteen ulkomaisen avaimen rajoituksen avulla, tietokanta pystyy tekemään joitain siivoustyötä sinulle:

Näin voit luoda ulkomaisen avaimen SQL Server:

ALTER TABLE Työntekijät ADD FOREIGN KEY (Position ID) REFERENSSIT Position (Position ID)

Voit myös luoda vieraan avaimen, kun luot taulukon lisäämällä lausekkeen:

ULKOMAISET AVAIN REFERENSSIT Sijoitukset (Position ID)

vierasavaimen sarakkeen sarakkeen määritelmän loppuun.