Diferencia entre clave principal y clave externa
Diferencias clave entre clave primaria y clave externa
- Una restricción de clave principal es una columna que identifica de forma única cada fila de la tabla del sistema de gestión de bases de datos relacionales, mientras que una clave externa es una columna que crea una relación entre dos tablas.
- La clave principal nunca acepta valores nulos, mientras que la clave externa puede aceptar múltiples valores nulos.
- Solo puede tener una única clave principal en una tabla, mientras que puede tener varias claves externas en una tabla.
- El valor de la clave principal no se puede eliminar de la tabla principal, mientras que el valor de la clave externa se puede eliminar de la tabla secundaria.
- No hay dos filas que puedan tener valores idénticos para una clave principal; por otro lado, una clave externa puede contener valores duplicados.
- No hay limitación para insertar los valores en la columna de la tabla mientras se inserta cualquier valor en la tabla de clave externa; asegúrese de que el valor esté presente en una columna de una clave principal.

Aquí, he analizado la diferencia entre la clave primaria y la clave externa y evaluaré exhaustivamente sus ventajas y desventajas.
¿Qué es la clave principal?
Una restricción de clave principal es una columna o grupo de columnas que identifican de forma única cada fila de la tabla del sistema de gestión de bases de datos relacionales. No puede ser un duplicado, lo que significa que el mismo valor no debe aparecer más de una vez en la tabla.
Una tabla no puede tener más de una clave principal. El clave principal se puede definir a nivel de columna o tabla. Si crea una clave primaria compuesta, debe definirse a nivel de tabla.
Ejemplo de clave primaria
Sintaxis:
A continuación se muestra la sintaxis de la clave principal:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
Aquí,
- Table_Name es el nombre de la tabla que tienes que crear.
- Column_Name es el nombre de la columna que tiene la clave principal.
Ejemplo:
ID de estudiante | Rollo No | Nombre | Apellido | Correo electrónico |
---|---|---|---|---|
1 | 11 | tom | Precio | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Nathan | mno@yahoo.com |
En el ejemplo anterior, hemos creado una tabla de estudiantes con columnas como StudID, N.º de matrícula, Nombre, Apellido y Correo electrónico. StudID se elige como clave principal porque puede identificar de forma única otras filas de la tabla.
¿Por qué utilizar la clave principal?
A lo largo de mis años manejando sistemas de bases de datos, he notado estas desventajas y beneficios al usar una clave principal:
- El objetivo principal de la clave principal es identificar todos y cada uno de los registros en la tabla de la base de datos.
- Puede utilizar una clave principal cuando no permite que alguien ingrese valores nulos.
- Si elimina o actualiza registros, se llevará a cabo la acción que especificó para garantizar la integridad de los datos.
- Realice la operación de restricción para rechazar la operación de eliminación o actualización de la tabla principal.
- Los datos se organizan en una secuencia de índices agrupados siempre que se organiza físicamente una tabla DBMS.
¿Qué es la clave externa?
La clave externa es una columna que crea una relación entre dos tablas. El propósito de la clave externa es mantener la integridad de los datos y permitir la navegación entre dos instancias diferentes de una entidad. Actúa como una referencia cruzada entre dos tablas, ya que hace referencia a la clave principal de otra tabla. Cada relación en la base de datos debe estar respaldada por una clave externa.
Ejemplo de clave externa
Sintaxis:
A continuación se muestra la sintaxis de la clave externa:
CREATE TABLE <Table Name>( column1 datatype, column2 datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
Aquí,
- El parámetro Nombre de la tabla indica el nombre de la tabla que vas a crear.
- Los parámetros columna1, columna2… representan las columnas que deben agregarse a la tabla.
- Una restricción denota el nombre de la restricción que está creando.
- Las referencias indican una tabla con la clave principal.
Ejemplo:
Código de departamento | Nombre del departamento |
---|---|
001 | Ciencias: |
002 | Inglés |
005 | Módulo |
Identificación del maestro | Nombre | Nombre |
---|---|---|
B002 | David | Warner |
B017 | Sara | Joseph |
B009 | Mike | Bruntón |
En el ejemplo anterior, tenemos dos tablas: un maestro y un departamento en una escuela. Sin embargo, no hay forma de ver qué búsqueda funciona en qué departamento.
En esta tabla, al agregar la clave externa en Deptcode al nombre del profesor, podemos crear una relación entre las dos tablas.
Identificación del maestro | Código de departamento | Nombre | Nombre |
---|---|---|---|
B002 | 002 | David | Warner |
B017 | 002 | Sara | Joseph |
B009 | 001 | Mike | Bruntón |
Este concepto también se conoce como integridad referencial.
¿Por qué utilizar una clave externa?
Por lo que he visto, estas son las razones importantes para implementar claves externas:
- Las claves externas le ayudan a migrar entidades utilizando una clave principal de la tabla principal.
- A clave extranjera Le permite vincular dos o más tablas.
- Hace que los datos de su base de datos sean consistentes.
- Se puede utilizar una clave externa para hacer coincidir una columna o combinación de columnas con la clave principal en una tabla principal.
- La restricción de clave externa de SQL se utiliza para garantizar que la integridad referencial de los datos principales coincida con los valores de la tabla secundaria.
Diferencia entre clave principal y clave externa
Permítanme compartir la importante diferencia entre una clave primaria y una clave externa, como lo he experimentado personalmente:

Base de comparación | Clave primaria | Clave externa |
---|---|---|
Definición | Una restricción de clave primaria es una columna o grupo de columnas que identifican de forma única cada fila en la tabla del sistema de gestión de bases de datos relacionales. | Una clave externa es una columna que crea una relación entre dos tablas. |
Basic | Le ayuda a identificar de forma única un registro en la tabla. | Es un campo de la tabla que es la clave principal de otra tabla. |
NULL | La clave principal nunca acepta valores nulos. | Una clave externa puede aceptar múltiples valores nulos. |
Indexación | La clave principal es un índice agrupado y los datos de la tabla DBMS están organizados físicamente en la secuencia del índice agrupado. | Una clave externa no puede crear automáticamente un índice, agrupado o no agrupado. |
Contar | Puede tener una única clave principal en una tabla. | Puede tener varias claves foráneas en una tabla. |
Eliminacion | El valor de la clave principal no se puede eliminar de la tabla principal. | El valor de la clave externa se puede eliminar de la tabla secundaria. |
Mesa temporal | Puede definir la clave principal implícitamente en las tablas temporales. | No puede definir claves externas en las tablas temporales locales o globales. |
Relación familiar | La clave principal es un índice agrupado. | De forma predeterminada, no es un índice agrupado. |
Duplicación | No hay dos filas que puedan tener valores idénticos para una clave principal. | Una clave externa puede contener valores duplicados. |
Inserción | No hay limitación para insertar los valores en la columna de la tabla. | Al insertar cualquier valor en la tabla de claves externas, asegúrese de que el valor esté presente en una columna de una clave principal. |
Cómo elegir entre una clave primaria y una clave externa
Por lo que hemos visto, las claves primarias identifican de forma única las entradas de la tabla y las claves externas vinculan estas entradas entre las tablas, ambas fundamentales para mantener la integridad de los datos y facilitar una recuperación eficiente de los datos.