Hoe meitsje útlânske kaaien yn Microsoft SQL-tsjinner

Ien fan 'e wichtichste begripen yn databases is kreëarje relaasjes tusken database tabellen. Dizze relaasjes leverje in meganisme foar it ferbinen fan gegevens yn in tal tabellen opslein en it opnimmen fan in effisjinte modus. Om in keppeling oan te meitsjen tusken twa tabellen moatte jo in frjemde kaai yn in tabel oantsjutte dy't in kolom yn in oar tabel ferwiziget.

Databank Tabellen en relaasjes

Jo kinne al witte dat databases in ienfâldich rige tabellen binne , sa't jo al brûke kinne yn in spreadsheet-programma , lykas Microsoft Excel. Yn feite kinne jo ek in Excel-spreadsheet konvertearje nei in database. As dat databases útdiele fan spreadsheets, lykwols is as it giet om it bouwen fan krêftige relaasjes tusken tabellen.

Konsiderje, bygelyks, in database dy't brûkt wurdt troch in bedriuw om ynformaasje fan persoanen fan persoanen te folgjen. Dat databank kin in tabel wurde neamd meiwurker dy't de folgjende ynformaasje befettet foar elke lid fan it personielbedriuw:

Yn dit foarbyld is de meiwurker ID in unike generearre integer dy't elke meiwurker oanbelanget as se tafoegje oan de database. De posysje ID is in wurkkodearring dy't brûkt wurdt om de posysje fan 'e meiwurkers yn' e bedriuw te ferwizen. Yn dizze regeling kin in meiwurker allinich ien posysje hawwe, mar meardere (of net) meiwurkers kinne elke posysje folje. Jo kinne bygelyks hûnderten meiwurkers hawwe mei in posysje "Cashier".

De databank kin ek in tabel opnimme mei Posysjes mei de folgjende oanfoljende ynformaasje oer elke posysje:

It posysje-ID-fjild yn dizze tabel is fergelykber mei it fjild Employee ID yn de Tafel Employees - it is in unike generearre integer dy't makke wurdt as in posysje tafoege wurdt oan de database.

As wy geane om in opname fan meiwurkers fan 'e databank te litten, soe it natuerlik wêze om de namme fan de persoan en de titel te freegjen. Dizze ynformaasje is lykwols opslein yn meardere databankeboeken, sadat it allinnich mei in JOIN-fraach opnommen wurde dy't in besteande relaasje tusken de tabellen fereasket.

As jo ​​nei de struktuer fan 'e tafels sjogge, is it fjild dat de relaasje beskiedt is wierskynlik foar de hân - it posysje ID-fjild. Elke meiwurker kin allinich ien posysje hawwe en dizze posysje wurdt identifisearre troch ûnder oaren de posysje-ID fan 'e passende ynfier fan de posysjes tabel. Neist de haadtafel foar de posysje-tabel is, yn dit foarbyld, it fjild posysje ID ek in frjemdske kaai fan 'e wurkjouwer-tabel nei de posysje tabel. De databank kin dan gebrûk meitsje fan dit fjild om ynformaasje te korrelearje fan meardere tabellen en soargje dat eventuele feroaringen of oanfollingen oan 'e databank de referinsjele yntegriteit trochhannelje .

As jo ​​de bûtenlânske kaai identifisearre hawwe, kinne jo de foarkommende gegevens fan 'e database útfiere mei de folgjende fraach:

SELEKT FirstName, LastName, Titel FROM Wurkpartijen INNER JOIN Posysjes ON Employees.PositionID = Posysjes.PositionID

Stavere bûtenlânske keys yn SQL-tsjinner

Technysk moatte jo de relaasje net explikearje foar it útfieren fan query as de hjirboppe. As jo ​​de relaasje útdruklik meitsje mei help fan in frjemdske toetsekonstruksje, dan kin de databank in pear stipewurk foar jo útfiere:

Hjir kinne jo de frjemde kaai yn SQL tsjinner meitsje:

ALTTER TABLE Employees ADD FOREIGN KEY (posysjeID) REFERENCES Posysjes (posysjeID)

Jo kinne ek in bûtenlânske kaai meitsje as jo in tabel oanmeitsje troch de klaus te tafoegje:

FERIENLIEDING KEY REFERENCES Posysjes (posysjeID)

nei it ein fan 'e kolomdefiniteit foar de bûtenlânske toetseboerd.