Estoy usando la base de datos mysql. Tengo una confusión entre la clave primaria y la clave única.
Por favor, ayúdame donde debo crear la clave principal y única. Quiero decir en qué situación creamos una clave única o clave primaria.
Estoy usando la base de datos mysql. Tengo una confusión entre la clave primaria y la clave única.
Por favor, ayúdame donde debo crear la clave principal y única. Quiero decir en qué situación creamos una clave única o clave primaria.
Respuestas:
Clave primaria:
NULL
, por ejemplo, MySQL agregaNOT NULL
Llave unica:
NULL
valoresNULL
; varias filas pueden tener NULL
valores y, por lo tanto, no pueden considerarse "únicas"Clave única (Reino Unido) : es una columna o un grupo de columnas que pueden identificar una singularidad en una fila.
Clave primaria (PK) : también es una columna o grupo de columnas que puede identificar una unicidad en una fila.
Por lo tanto, la clave principal es solo otro nombre para la clave única, pero la implementación predeterminada en SQL Server es diferente para la clave principal y única.
Por defecto:
Realmente depende de cuál es su objetivo al decidir si crear un Reino Unido o PK. Sigue una analogía como "Si hay un equipo de tres personas, entonces todas son pares, pero habrá una de ellas 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 tener una idea general.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
[table_name]_pkey
se agrega una nueva columna (con nombre predeterminado ) a la tabla (he escuchado que se conoce como una clave sustituta). Fuente: postgresqltutorial.com/postgresql-primary-key Soy nuevo en todo esto, así que agradecería un póster más informado para señalar los matices que me perdí.
Para una organización o un negocio, hay tantas entidades físicas (como personas, recursos, máquinas, etc.) y entidades virtuales (sus tareas, transacciones, actividades). Por lo general, las empresas necesitan 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 el prospectivo RDBMS, la clave (también conocida como clave candidata) es un valor o conjunto de valores que identifica de forma exclusiva a una entidad.
Para una DB-Table, existen tantas claves que pueden ser elegibles para la Clave primaria. De modo que todas las claves, clave primaria, clave única, etc. se denominan colectivamente como clave candidata. Sin embargo, DBA seleccionó una clave de la clave candidata para buscar registros que se llama Clave primaria.
Diferencia entre clave primaria y clave única
1. Comportamiento: la clave primaria se usa 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 principal si no existe y el índice no agrupado en la clave única.
3. Nulabilidad: la clave primaria no incluye valores nulos, mientras que la clave única sí.
4. Existencia: una tabla puede tener como máximo una clave principal, pero puede tener varias Claves únicas.
5. Modificabilidad: no puede cambiar ni eliminar valores primarios, pero los valores de clave única sí.
Para más información y ejemplos:
Una clave primaria debe ser única.
Una clave única no tiene que ser la clave principal; consulte la clave candidata .
Es decir, puede haber más de una combinación de columnas en una tabla que puede identificar de forma exclusiva una fila; solo una de ellas se puede seleccionar como clave principal. Los otros, aunque únicos, son claves candidatas.
Diferencia entre clave primaria y clave única
+-----------------------------------------+-----------------------------------------------+ | Primary Key | Unique Key | +-----------------------------------------+-----------------------------------------------+ | Primary Key can't accept null values. | Unique key can accept only one null value. | +-----------------------------------------+-----------------------------------------------+ | By default, Primary key is clustered | By default, Unique key is a unique | | index and data in the database table is | non-clustered index. | | physically organized in the sequence of | | | clustered index. | | +-----------------------------------------+-----------------------------------------------+ | We can have only one Primary key in a | We can have more than one unique key in a | | table. | table. | +-----------------------------------------+-----------------------------------------------+ | Primary key can be made foreign key | In SQL Server, Unique key can be made foreign | | into another table. | key into another table. | +-----------------------------------------+-----------------------------------------------+
Puede encontrar información detallada en:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
Una clave primaria tiene la semántica de identificar la fila de una base de datos. Por lo tanto, solo puede haber una clave principal 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 estoy seguro acerca de otras bases de datos)
Como identifica la fila, nunca debería cambiar. Cambiar las claves principales está destinado a causar un dolor grave y probablemente una condenación eterna.
Por lo tanto, en la mayoría de los casos, desea una identificación artificial para la clave primaria que no se usa para otra cosa que no sea identificar filas individuales en la tabla.
Las teclas únicas, por otro lado, pueden cambiar todo lo que desee.
Una clave primaria es una clave única.
Cada tabla debe tener como máximo UNA clave principal, pero puede tener varias claves únicas. Una clave primaria se utiliza para identificar de forma exclusiva una fila de la tabla. Una clave primaria no puede ser NULL
ya NULL
que no es un valor.
Sé que esta pregunta tiene varios años, pero me gustaría responder a esto explicando por qué en lugar de cómo
Propósito de la clave primaria : para identificar una fila en una base de datos de forma exclusiva => Una fila representa una sola instancia del tipo de entidad modelado por la tabla. Una clave primaria impone la integridad de una entidad, AKA Integridad de entidad. La clave primaria sería un índice agrupado, es decir, define el orden en que los datos se almacenan físicamente en una tabla.
Propósito de la clave única : Ok, con la clave primaria tenemos una manera de identificar de forma única una fila. Pero tengo una necesidad comercial tal que otra columna / un conjunto de columnas debe tener valores únicos. Bueno, técnicamente, dado que esta columna (s) es única, puede ser un candidato para hacer cumplir la integridad de la entidad. Pero, por lo que sabemos, esta columna puede contener datos provenientes de una organización externa de la que puedo tener dudas acerca de ser único. No puedo confiar en que proporcione integridad de la entidad. Simplemente lo convierto en una clave única para cumplir con los requisitos de mi negocio.
Ahí tienes!
Si el diseño de su base de datos es tal que no necesita una clave externa, entonces puede usar la clave única ( pero recuerde que la clave única permite un valor nulo único ).
Si la base de datos exige una clave externa, entonces se va sin opción, tiene que ir con la clave primaria.
Para ver la diferencia entre la clave única y la principal, visite aquí
Clave única: debe usarse cuando 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 claves que son únicas y no similares en esa columna como, por ejemplo, el nombre de su mascota .it no puede ser nada como nulo y si está preguntando en el contexto de la base de datos, entonces debe tenerse en cuenta que cada nulo es diferente de otro nulo en la base de datos. EXCEPTO-SQL Server donde null = null es verdadero
clave primaria: - Debe usarse cuando tiene que dar una identificación única de una fila. La clave es la clave que es única para cada fila en una restricción de base de datos es que no permite nulo en ella. Por lo tanto, es posible que haya visto que la base de datos tiene una columna que es de incremento automático y es la clave principal de la tabla. además de que se puede utilizar como una clave externa en otro table.example puede ser orderId en una tabla de orden , billId en una tabla factura .
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 bocadillos en el restaurante, es posible que no tome bocadillos en un restaurante
diferencia entre clave primaria y clave única
Ambos Primary key
y Unique Key
se utilizan para definir de forma única una fila en una tabla.
Primary Key
crea a clustered index
de la columna mientras que a Unique creates an unclustered index of the column
.
A Primary Key
no permite NULL value
, sin embargo a Unique Key
, permite one NULL value
.
Simply Primary Key es un único y no puede ser nulo, único puede ser nulo y puede no ser único.
may not be unique
significa aquí?
El objetivo principal de la clave primaria es proporcionar un medio para identificar cada registro en la tabla.
La clave primaria proporciona un medio para identificar la fila, utilizando datos dentro de la fila. Una clave primaria puede basarse en una o más columnas, como el nombre y el apellido; sin embargo, en muchos diseños, la clave primaria es un número generado automáticamente a partir de una columna de identidad.
Una clave primaria tiene las siguientes características:
Una clave única también se denomina 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 primaria? Sí, lo hacemos, pero una tabla puede tener varios conjuntos de columnas que desea que sean únicas.
En SQL Server, la clave única tiene las siguientes características:
fuente: aquí
Las características principales de una clave principal son:
Debe contener un valor único para cada fila de datos. No puede contener valores nulos. Solo una clave primaria en una tabla.
Las características principales de una clave única son:
También puede contener un valor único para cada fila de datos.
También puede contener valores nulos.
Múltiples claves únicas en una tabla.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT