MUL vs PRI vs UNI en MySQL

Mehvish Ashiq 30 enero 2023
  1. Claves en MySQL
  2. Conclusión
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:

mul vs pri vs uni en mysql - tabla

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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook