Saltar al contenido

Crear Llaves Primarias y Foraneas en SQL SERVER

base de datos foreign key

En este artículo les presentó una práctica importante al momento de crear Base de Datos y tablas en el gestor Sql Server, me refiero a crear llaves primarias (en ingles Primary key) y llaves foráneas (Foreign key) en tablas de la Base de Datos.

Antes de todo es importante conocer los conceptos básicos de ambos conceptos:

La cláusula PRIMARY KEY (Llave primaria) se utiliza para definir la clave principal de la tabla. Las columnas que forman la clave principal no pueden contener valores nulos ni pueden haber valores duplicados de la combinación de columnas.

La cláusula FOREIGN KEY (Llave foránea) sirve para definir una clave foránea sobre una columna o una combinación de columnas. Una clave foránea es una columna o conjunto de columnas que contiene un valor que hace referencia a una fila de otra tabla.

Llave foranea SQL

Quizás te preguntas que es una llave foránea, clave foránea o foreign key es un campo (o campos) que señala la clave primaria de otra tabla. El propósito de la clave foránea es asegurar la integridad referencial de los datos. La columna o columnas señaladas como llave foránea, solo podrán tener valores que ya existan en la clave primaria PRIMARY KEY de la otra tabla.

La clave foránea en resumen se refiere a una columna o varias columnas, que sirven para señalar cual es la clave primaria de otra tabla. Es importante que comprendas que hay dos etapas en las que podemos agregar llaves foráneas a las tablas: la primera es al momento de crear la tabla en Sql Server, ya que podemos definir de una vez las llaves foráneas y campos de la tabla de nuestra Base de Datos; la segunda opción es agregar las llaves foráneas en tablas ya creadas, esto consiste en modificar la estructura previamente diseñada.

Crear tabla con primary key y foreign key en Management Studio

Vamos a crear cuatro tablas en Sql Server para hacer las relaciones respectivas y agregar las claves primarias y foráneas en la Base de Datos. Las tablas a crear son: AlumnosAsignaturaprofesor Inscripción. Las primeras tres tablas tendrán únicamente las claves primarias y la tabla inscripción tendrá las claves foráneas que estarán relacionadas con las llaves primarias (campos Id) de las tablas Alumnos, Asignatura y Profesor.

Diagrama con claves primarias y claves foraneas en Sql Server

A continuación les presento la estructura y relación de las tablas antes mencionadas:

llave foranea sql

Agregar clave primaria y clave foranea

En el siguiente código creamos la base de datos “Escuela” y cuatro tablas en Sql Server para hacer las relaciones respectivas y agregar las claves foráneas en la Base de Datos. Las tablas a crear son: Alumnos, Asignatura, profesor e Inscripción. Las primeras tres tablas tendrán únicamente las claves primarias y la tabla inscripción tendrá las claves foráneas que estarán relacionadas con las llaves primarias (campos Id) de las tablas Alumnos, Asignatura y Profesor.

Código SQL para crear primary key y foreign key en Management Studio:

CREATE DATABASE Escuela

go

Nota: Si esta serie de artículos te están pareciendo interesantes, te invitamos a que accedas al curso completo sobre SQL SERVER. ➡️ Pincha AQUI ✔️

use Escuela
go

/* Creando tabla Alumno, asignatura y profesor */

Create table Alumnos(
Id char(8) primary key,
Nombre varchar(20) not null,
Apellido varchar(20) not null,
Direccion varchar(50),
Fecha_nacimiento char(8)
);

Create table Asignatura(
Id char(8) primary key,
Nombre varchar(20) not null
);

Create table Profesor(
Id char(8) primary key,
Nombre varchar(20) not null,
Apellido varchar(20) not null,
Direccion varchar(50),
Fecha_nacimiento char(8),
Nivel_Academico varchar (20)
);

/* Creando tabla Inscripción con campos para llaves foraneas */

Create table Inscripcion(
Id char(8) primary key,
IdAsignatura char(8) not null,
IdAlumno char(8) not null,
IdProfesor char(8) not null,
Fecha char(8),
CONSTRAINT fk_Asignatura FOREIGN KEY (IdAsignatura) REFERENCES Asignatura (Id),
CONSTRAINT fk_Alumno FOREIGN KEY (IdAlumno) REFERENCES Alumnos (Id),
CONSTRAINT fk_Profesor FOREIGN KEY (IdProfesor) REFERENCES Profesor (Id)
);

curso de sql server online

Curso de SQL Server Desde Cero 2020

Te interesa aprender a crear Bases de Datos en SQL Server paso a paso y desde cero? La oportunidad de aprender es ahora! Inscrite a mi curso de Base de ...
¡LO QUIERO!

Agregar llave primaria y foránea a tablas ya creadas

Supongamos que es necesario modificar tablas existentes y agregar llaves primarias o foráneas. Con el siguiente código modificamos la tabla profesor para agregar su clave primaria:

ALTER TABLE Profesor ADD CONSTRAINT pk_Profesor_Id PRIMARY KEY (Id)

Agregar clave foranea sql a Tabla ya creada

Supongamos que la tabla Profesor no ha sido relacionada con la tabla Inscripción, entonces en caso de no existir dicha clave foránea, la podemos agregar con el siguiente código Sql:

ALTER TABLE Inscripcion

ADD FOREIGN KEY (IdProfesor) REFERENCES Profesor(Id);

Consideraciones:

1- Las columnas señaladas como llave foránea (IdAsignatura, IdAlumno, IdProfesor), solo podrán tener valores que ya existan en la clave primaria PRIMARY KEY de la tabla principal, es decir un IdAlumno ya debería estar creado en la tabla Alumnos.

2- No pueda eliminarse un registro de una tabla ni modificar la clave primaria si una clave externa hace referencia al registro. Por ejemplo, que no se pueda eliminar o modificar un Id de «Alumnos» si existen una inscripción con dicho el Id a eliminar.

3- La clave primaria y foránea que de las tablas que se relacionan deben ser del mismo tipo de dato y longitud en ambas tablas.

Foreign key

Foreign key es la la forma en ingles de referirse a la llave foránea de una tabla en una Base de Datos, y en la parte superior de este articulo conocimos a detalle que es una llave foránea.

Tutorial Crear Llaves Primarias y Foraneas en Sql Server

En el siguiente vídeo les explico todo lo expuesto anteriormente y hacemos la practica de relacionar las tablas con codigo SQL y Management Studio.

Ver vídeo en Youtube

Entradas Relacionadas:

Reseña
Video Image
Fecha:
Articulo:
Llaves Primarias y Foráneas en SQL Server
Valoración:
51star1star1star1star1star
Tutorial:
Crear Llaves foráneas en SQL Server
Descripción:
Tutorial en que se explica la creación de Llaves primarias y foráneas en SQL Server.
Fecha de subido:
2020-02-26T23:47:56+00:00