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:
| DeptCode | 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 | DeptCode | 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. |
| Bรกsico | 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 | 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.
