diferencia entre la clave principal y la clave única

Estoy usando la base de datos mysql. Tengo una confusión entre la clave principal y la clave única.

Por favor, ayúdame a dónde debería crear clave principal y única. Quiero decir en qué situación creamos clave única o clave principal.

Clave primaria:

  • Solo puede haber una clave principal en una tabla
  • En algunos DBMS no puede ser NULL , por ejemplo, MySQL NOT NULL agrega NOT NULL
  • Primary Key es un identificador de clave único del registro

Llave unica:

  • Puede ser más de una clave única en una tabla
  • La clave única puede tener valores NULL
  • Puede ser una clave candidata
  • La clave única puede ser NULL y puede no ser única

Unique Key (UK) : es una columna o un grupo de columnas que pueden identificar una singularidad en una fila.

Clave principal (PK) : también es una columna o grupo de columnas que puede identificar una singularidad en una fila.

Por lo tanto, la clave principal es solo otro nombre para clave única, pero la implementación predeterminada en SQL Server es diferente para clave principal y única.

Por defecto:

  1. PK crea un índice agrupado y el Reino Unido crea un índice no agrupado.
  2. PK no es nulo, pero UK permite nulos (Nota: por defecto)
  3. Solo puede haber una y solo una PK en una mesa, pero puede haber varias UK’s
  4. Puede anular la implementación predeterminada según su necesidad.

Realmente depende de cuál sea tu objective al decidir si crear un Reino Unido o PK. Sigue una analogía como “Si hay un equipo de tres personas, entonces todos ellos son iguales, pero habrá uno que será un par de pares: PK y el Reino Unido tienen una relación similar”. Sugeriría leer este artículo: el ejemplo dado por el autor puede no parecer adecuado, pero trate de obtener una idea general.

http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html

Para una organización o empresa, hay tantas entidades físicas (como personas, recursos, máquinas, etc.) y entidades virtuales (sus Tareas, transacciones, actividades). Por lo general, las empresas deben registrar y procesar la información de esas entidades comerciales. Estas entidades comerciales se identifican dentro de un dominio comercial completo mediante una clave.

Según RDBMS prospectivo, Key (también conocido como Candidate Key) es un valor o conjunto de valores que identifica de manera única a una entidad.

Para una tabla DB, existen tantas claves que pueden ser elegibles para la clave principal. De modo que todas las claves, clave principal, clave única, etc. se denominan colectivamente como Clave Candidata. Sin embargo, el DBA seleccionado una clave de la clave candidata para buscar registros se llama clave principal.

Diferencia entre clave principal y clave única

1. Comportamiento: la clave principal se utiliza para identificar una fila (registro) en una tabla, mientras que la clave única es para evitar valores duplicados en una columna (con la excepción de una entrada nula).

2. Indexación: de forma predeterminada, el motor SQL crea el índice agrupado en la clave primaria si no existe y el índice no agrupado en la clave única.

3. Nulability: clave principal no incluye valores nulos, mientras que Unique-key puede.

4. Existencia: una tabla puede tener como máximo una clave principal, pero puede tener varias claves únicas.

5. Modificabilidad: no puede cambiar o eliminar valores primarios, pero los valores de clave única pueden.

Para más información y ejemplos:

http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html

Una clave principal debe ser única.

Una clave única no tiene que ser la clave principal: vea la clave candidata .

Es decir, puede haber más de una combinación de columnas en una tabla que pueda identificar de manera única una fila; solo una de ellas se puede seleccionar como clave principal. Los otros, aunque únicos, son claves candidatas.

Una clave primaria tiene la semántica de identificar la fila de una base de datos. Por lo tanto, solo puede haber una clave primaria para una tabla determinada, mientras que puede haber muchas claves únicas.

También por la misma razón, una clave principal no puede ser NULL (al menos en Oracle, no está seguro acerca de otras bases de datos)

Como identifica la fila, nunca debería cambiar. Cambiar las teclas primarias es probable que cause un dolor serio y probablemente la condenación eterna.

Por lo tanto, en la mayoría de los casos, se necesita una identificación artificial para la clave principal que no se usa para nada, sino para identificar filas individuales en la tabla.

Las claves únicas, por otro lado, pueden cambiar tanto como lo desee.

Una clave principal es una clave única.

Cada tabla debe tener como máximo UNA clave primaria, pero puede tener varias claves únicas. Una clave principal se usa para identificar de manera única una fila de la tabla. Una clave principal no puede ser NULL dado que NULL no es un valor.

Diferencia entre clave principal y clave única

enter image description here

Puede encontrar información detallada en: http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html

  • Piensa que el nombre de la tabla es empleado.
  • Clave primaria
  • La clave principal no puede aceptar valores nulos. la clave principal impone la singularidad de una columna. Podemos tener solo una clave principal en una tabla.
  • Llave unica
  • La clave única puede aceptar valores nulos. La clave única también impone la singularidad de una columna. ¿Puede pensar si la clave única contiene valores nulos? ¿Por qué puede ser única? sí, aunque puede aceptar valores nulos, impone la singularidad de una columna. solo eche un vistazo a la imagen. Aquí Emp_ID es el principal y Citizen ID es único. Espero que entiendas. Podemos usar múltiples claves únicas en una tabla. enter image description here

Tanto la clave principal como la clave única se utilizan para imponer la exclusividad de una columna. Entonces, ¿cuándo eliges uno sobre el otro?

Una tabla puede tener solo una clave principal. Si desea imponer la exclusividad en 2 o más columnas, entonces usamos una restricción de clave única.

¿Diferencia entre la restricción de clave primaria y la restricción de clave única?

1. Una tabla puede tener solo una clave principal, pero más de una clave única

2. Las claves primarias no permiten valores null , mientras que las claves únicas permiten un valor null

 Alter Table Table_Name Add Constraint Constraint_Name Unique/Primary Key(Column_Name) 

Si el diseño de su base de datos es tal que no necesitan clave externa, puede ir con la clave única ( pero recuerde que la clave única permite un único valor nulo ).

Si su base de datos exige una clave externa y luego se va sin otra opción, debe ir con la clave principal.

Para ver la diferencia entre la clave única y principal, visite aquí

Simplemente la clave primaria es única y no puede ser nula, única puede ser nula y no ser única.

Llaves primarias

El objective principal de la clave principal es proporcionar un medio para identificar cada registro en la tabla.

La clave principal proporciona un medio para identificar la fila, utilizando datos dentro de la fila. Una clave principal puede basarse en una o más columnas, como nombre y apellido; sin embargo, en muchos diseños, la clave principal es un número autogenerado de una columna de identidad.

Una clave principal tiene las siguientes características:

  1. Solo puede haber una clave principal para una tabla.
  2. La clave principal consiste en una o más columnas.
  3. La clave principal impone la integridad de la entidad de la tabla.
  4. Todas las columnas definidas deben definirse como NOT NULL.
  5. La clave primaria identifica de manera única una fila.
  6. Las claves principales dan como resultado índices únicos CLUSTER de forma predeterminada.

Llaves únicas

Una clave única también se llama restricción única. Se puede usar una restricción única para garantizar que las filas sean únicas dentro de la base de datos.

¿Ya no hacemos eso con la clave principal? Sí, lo hacemos, pero una tabla puede tener varios conjuntos de columnas que desee únicos.

En SQL Server, la clave única tiene las siguientes características:

  1. Puede haber varias claves únicas definidas en una tabla.
  2. Las claves únicas dan como resultado índices únicos NO CULPADOS por defecto.
  3. Una o más columnas conforman una clave única.
  4. La columna puede ser NULL, pero está permitido un NULL por columna.
  5. Una restricción única puede ser referenciada por una restricción de clave externa.

fuente: aquí

Clave única: – Se debe usar cuando se tiene que dar un valor único. En el caso de una clave única, significa que también se permiten valores nulos. Las claves únicas son aquellas que son únicas y no similares en esa columna, como por ejemplo el nombre de su mascota .it puede no ser nada como nulo y, si lo hace en contexto de base de datos, debe tenerse en cuenta que cada nulo es diferente de otro nulo en la base de datos. EXCEPT-SQL Server donde null = null es verdadero


clave principal: – Se debe usar cuando se debe dar una identificación única a row.primary es la clave que única para cada fila en una restricción de base de datos es que no permite null en it.so, es posible que haya visto que la base de datos tener una columna que se incrementa automáticamente y es la clave principal de la tabla. Además, se puede utilizar como una clave externa en otra tabla. Por ejemplo, se puede ordenar ID en una orden Tabla , factura en una tabla de facturas .

ahora volviendo a la situación cuando usarlo: –

1) clave principal en la columna que no puede ser nula en la tabla y que está utilizando como clave externa en otra tabla para crear una relación

2) clave única en la tabla donde no afecta en la tabla o en toda la base de datos si toma el valor nulo para la columna en particular como refrigerios en el restaurante, es posible que no tome refrigerios en un restaurante