MUL vs PRI vs UNI en MySQL
Este tutorial enseñará las claves PRI
, MUL
y UNI
en MySQL.
Al seguir paso a paso en este tutorial, veremos la diferencia básica entre las teclas PRI
, MUL
y UNI
y cómo usar cada una de ellas. También veremos su efecto en la tabla usando el código de ejemplo.
Claves en MySQL
La clave es un atributo o, a veces, un conjunto de atributos que se utilizan para identificar de forma exclusiva una fila de una tabla.
Varias claves se utilizan en MySQL para varios propósitos, incluida la clave principal, la clave única, la clave compuesta, la clave externa, la súper clave, la clave alternativa y la clave candidata.
Nos centraremos en la clave primaria, única y múltiple para este artículo.
Claves PRI
, UNI
y MUL
en MySQL
El PRI
significa clave primaria, obliga a la unicidad de un registro en la tabla. No permite valores NULL
.
Se puede utilizar una sola columna o varias columnas como clave principal. La clave UNI
representa la clave única, impone la unicidad de una fila (un registro) en la tabla (relación) como la clave principal y tiene valores NULL
.
Se pueden usar una o varias columnas para crear una clave única.
La clave MUL
no es ninguna de ellas, lo que significa que la clave MUL
es un índice que no es ni la clave principal ni la clave única. Permite valores NULL
, y las múltiples ocurrencias del mismo valor como su nombre MUL
se originaron a partir de múltiples.
Si tiene varias claves aplicadas en la misma columna, las claves se mostrarán según su prioridad, PRI
, UNI
y MUL
.
Entendamos con la ayuda del siguiente código de ejemplo.
#create an employee table
CREATE TABLE employee(
ID INT PRIMARY KEY NOT NULL, #this is PRI Key
FIRST_NAME VARCHAR(60) NOT NULL,
LAST_NAME VARCHAR(60) NOT NULL,
GENDER VARCHAR(60) NOT NULL, INDEX(GENDER), #this is MUL Key
COUNTRY_CODE VARCHAR(30), INDEX(COUNTRY_CODE), #this is MUL Key
CITIZEN_ID INT UNIQUE KEY #this is UNI Key
);
#insert some data
INSERT INTO employee(ID, FIRST_NAME, LAST_NAME,GENDER, COUNTRY_CODE,CITIZEN_ID)
VALUES
(1,'Thomas', 'Christopher','Male','+61',485),
(2,'Lisa', 'Mark', 'Female','+59',408),
(3,'Anthony', 'Richard', 'Male','+61',215),
(4,'Matthew', 'Charles', 'Male',NULL, 610),
(5,'Kiren', 'Donald','Female','+31', null);
#use the following query to describe table columns and their properties
desc employee;
Producción:
Vea el código de ejemplo anterior y observe el resultado para comprenderlo. Es importante tener en cuenta que solo podemos tener una clave PRI
dentro de la tabla, pero puede haber más de una clave UNI
y MUL
.
En el resultado anterior, tenemos una clave PRI
aplicada en la columna ID
, que no permite valores NULL
. Eso significa que si se asigna un ID
a un empleado, ese mismo ID
no se asignará a ningún otro dentro de la tabla.
Tenemos una clave UNI
aplicada en la columna CITIZEN_ID
; impone la unicidad y permite los valores NULL
. Podemos ver dos teclas MUL
en dos columnas diferentes llamadas GENDER
y COUNTRY_CODE
.
Es necesario pensar que la tecla MUL
funciona bien en ambas columnas donde la columna GENDER
no puede tener valores NULL
, pero COUNTRY_CODE
sí. Por eso decimos que MUL
no es ni la tecla PRI
ni la tecla UNI
.
Conclusión
En la discusión anterior, llegamos a la conclusión de que las claves son los atributos que se aplican en las columnas para identificarlas de manera única dentro de la tabla.
Se utilizan diferentes claves para diferentes requisitos. PRI
es para la situación en la que no desea repetir valores dentro de la columna y no permite valores NULL
.
La clave UNI
se enfoca en la unicidad dentro de la columna pero permite valores NULL
. MUL
no es ni PRI
ni UNI
y puede aceptar valores NULL
y NOT NULL
.
Solo puede haber una clave PRI
, pero puede tener múltiples claves UNI
y MUL
según los requisitos del proyecto.