Como crear chaves estrañas en Microsoft SQL Server

Un dos conceptos máis importantes nas bases de datos é crear relacións entre táboas de bases de datos. Estas relacións proporcionan un mecanismo para vincular os datos almacenados en varias táboas e recuperalo de forma eficiente. Para crear unha ligazón entre dúas táboas, debes especificar unha chave estranxeira nunha táboa que fai referencia a unha columna noutra táboa.

Mesas e Relacións de Base de Datos

É posible que xa saiba que as bases de datos son simplemente unha serie de táboas , semellantes ás que podería empregar nun programa de follas de cálculo , como Microsoft Excel. De feito, incluso podes converter unha folla de cálculo Excel nunha base de datos. No caso de que as bases de datos difiren das follas de cálculo, non obstante, é cando se trata de construír poderosas relacións entre táboas.

Considere, por exemplo, unha base de datos utilizada por unha empresa para rastrexar a información de recursos humanos. Esa base de datos pode ter unha táboa chamada Empleados que contén a seguinte información para cada membro do persoal da compañía:

Neste exemplo, a ID de empregado é un enteiro xerado de forma exclusiva asignado a cada empregado cando se engade á base de datos. A ID de posición é un código de traballo usado para facer referencia á posición do empregado na empresa. Neste esquema, un empregado só pode ter unha posición, pero varios (ou non) empregados poden encher cada posición. Por exemplo, podes ter centos de empregados cunha posición de "Caixeiro".

A base de datos tamén pode conter unha táboa chamada Posicións coa seguinte información adicional sobre cada posición:

O campo Identidade de posición nesta táboa é similar ao campo ID de empregado na táboa Empregados: é un enteiro xerado de forma única que se crea cando se engade unha posición á base de datos.

Cando imos tirar unha lista de empregados da base de datos, sería natural solicitar o nome e o título de cada persoa. Non obstante, esta información almacénase en varias táboas de bases de datos, polo que só pode recuperarse mediante unha consulta JOIN que require unha relación existente entre as táboas.

Cando mires a estrutura das táboas, o campo que define a relación é evidente: o campo ID da posición. Cada empregado pode ter só unha posición e esa posición é identificada incluíndo o ID de posición da entrada correspondente da táboa Posicións. Ademais de ser a chave primaria para a táboa de posicións, neste exemplo, o campo ID de posición tamén é unha chave estranxeira da táboa dos empregados na táboa de posicións. A base de datos pode entón usar este campo para correlacionar a información de varias táboas e garantir que os cambios ou adicións á base de datos continúen impoñendo a integridade referencial .

Unha vez que identificou a chave estranxeira, pode seguir adiante e tirar a información desexada da base de datos mediante a seguinte consulta:

SELECCIONAR FirstName, LastName, Título FROM EMPRESARIOS INNER JOIN Positions ON Employees.PositionID = Positions.PositionID

Crear chaves estrañas no servidor SQL

Técnicamente, non precisa definir a relación explícitamente para poder realizar consultas como a anterior. Non obstante, se define de forma explícita a relación usando unha restrición de chave estranxeira, a base de datos poderá realizar un traballo de limpeza para ti:

Vexa como crearía a chave estranxeira en SQL Server:

ALTER TABLE Empregados ADD KEY EXTERIOR (PositionID) REFERENCIAS Posicións (PositionID)

Tamén pode crear unha chave estranxeira cando crea unha táboa engadindo a cláusula:

REFERENCIAS DE CLAVE EXTERIOR Posicións (PositionID)

ao final da definición da columna para a columna da chave estranxeira.