Како да креирате странски клучеви во Microsoft SQL Server

Еден од најважните концепти во бази на податоци е создавање на врски помеѓу табелата на бази на податоци. Овие врски обезбедуваат механизам за поврзување на податоци зачувани во повеќе табели и нивно добивање на ефикасен начин. За да креирате врската помеѓу две табели, мора да наведете странски клуч во една табела што референцира колона во друга табела.

Табели и врски на бази на податоци

Веќе можеби знаете дека бази на податоци се едноставно серија на табели , слични на она што веќе го користите во табеларна програма , како што е Microsoft Excel. Всушност, дури можете да конвертирате табеларна табела на Excel во база на податоци. Каде што базите на податоци се разликуваат од табеларни пресметки, сепак, е кога станува збор за градење на моќни односи меѓу табелите.

Размислете, на пример, за базата на податоци што компанијата ја користи за следење на информациите за човечки ресурси. Таа база на податоци може да има табела наречена Вработени која ги содржи следните информации за секој член на персоналот на компанијата:

Во овој пример, ID на вработениот е единствено генериран цел број кој е доделен на секој вработен кога тие се додадени во базата на податоци. ID на позицијата е код за работа кој се користи за упатување на позицијата на вработениот во компанијата. Во оваа шема, работникот може да има само една позиција, но повеќе (или не) вработени може да ја пополнат секоја позиција. На пример, може да имате стотици вработени со позиција "Касиерка".

Базата на податоци може исто така да содржи табела наречена Позиции со следните дополнителни информации за секоја позиција:

Полето Position ID во оваа табела е слично на полето Employee ID во табелата "Вработени" - тоа е единствено генериран цел број кој се креира кога позицијата се додава во базата на податоци.

Кога ќе одиме да повлечеме листа на вработени од базата на податоци, би било природно да се побара името на секое лице и нивното име. Сепак, оваа информација е зачувана во повеќе табели на бази на податоци, па затоа може да се добие само со барање на JOIN што бара постоечка врска помеѓу табелите.

Кога ќе ја разгледате структурата на табелите, полето кое ја дефинира врската најверојатно е очигледно - полето Position Position. Секој вработен може да има само една позиција и таа позиција се идентификува со вклучување на позицијата ID од соодветниот запис од табелата Позиции. Покрај тоа што е примарен клуч за табелата Позиции, во овој пример, полето Position Position е исто така странски клуч од табелата "Вработените" на табелата Позиции. Базата на податоци потоа може да го користи ова поле за да корелира информации од повеќе табели и да осигура дека сите промени или дополнувања на базата на податоци продолжуваат да го применуваат референтниот интегритет .

Откако ќе го идентификувате странскиот клуч, можете да продолжите и да ги повлечете посакуваните информации од базата со користење на следното барање:

SELECT FirstName, LastName, Наслов ОД Вработените ВНАТРЕШНИ ПРИДОБИВКИ Позиции ON Employees.PositionID = Positions.PositionID

Креирање странски клучеви во SQL Server

Технички, не треба експлицитно да го дефинирате односот за да можете да вршите пребарувања како што е погоре наведеното. Меѓутоа, ако експлицитно ја дефинирате врската со ограничување од странски клучеви, базата на податоци ќе може да изведува некои работи за домаќинство за вас:

Еве како ќе креираш странски клуч во SQL Server:

Измени го табелот Вработените ДОДАЈ СЛУЧАЈ КЛУЧЕН (PositionID) РЕФЕРЕНЦИИ Позиции (PositionID)

Може и да креирате странски клуч кога креирате табела со додавање на клаузулата:

СТРАНСКИ КЛУЧНИ РЕФЕРЕНЦИИ Позиции (PositionID)

до крајот на дефиницијата на колоната за колоната за странски клучеви.