
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.
Indice del Articulo
✅ 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: 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.
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:

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 Desde Cero 2020
¡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.
Entradas Relacionadas:

























