database - primary - unique key sql
diferencia entre clave principal y clave única (12)
Estoy usando la base de datos mysql. Tengo una confusión entre la clave principal y la clave única.
Por favor, ayúdame donde debo crear una clave principal y única. Quiero decir en qué situación creamos una clave única o clave principal.
Diferencia entre clave principal 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 de:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
Clave única: - Debería usarse cuando tenga 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, 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 principal: debe utilizarse cuando se debe identificar de forma única una fila. primordial es la clave que, para cada fila de una restricción de base de datos, es que no permite nulos en ella. por lo tanto, es posible que haya visto que la base de datos tiene una columna que es incremento automático y es la clave principal de la tabla. además, se puede usar como una clave externa en otra tabla. El ejemplo se puede ordenar en una tabla de órdenes , billId 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 usted está utilizando como clave externa en otra tabla para crear una relación
2) clave única en la tabla donde no afecta a la tabla ni a la base de datos completa, ya sea que tome el nulo de la columna en particular como bocadillos en el restaurante, es posible que no tome bocadillos en un restaurante
Llaves primarias
El propósito 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 el nombre y el apellido; sin embargo, en muchos diseños, la clave principal es un número generado automáticamente desde una columna de identidad.
Una clave primaria tiene las siguientes características:
- Solo puede haber una clave principal para una tabla.
- La clave principal consiste en una o más columnas.
- La clave principal impone la integridad de la entidad de la tabla.
- Todas las columnas definidas deben definirse como NOT NULL.
- La clave principal identifica de forma única una fila.
- Las claves primarias dan como resultado índices únicos CLUSTRADOS de forma predeterminada.
Llaves únicas
Una clave única también se llama una restricción única. Se puede usar una restricción única para garantizar que las filas sean únicas dentro de la base de datos.
¿No lo hacemos ya con la clave primaria? Sí, sí, 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:
- Puede haber múltiples claves únicas definidas en una tabla.
- Las claves únicas dan como resultado índices únicos NO CLUSIFICADOS de forma predeterminada.
- Una o más columnas forman una clave única.
- La columna puede ser NULL, pero en un NULL por columna está permitido.
- Una restricción única puede ser referenciada por una restricción de clave externa.
fuente: here
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). Normalmente, las empresas necesitan registrar y procesar la información de esas entidades comerciales. Estas entidades comerciales se identifican dentro de un dominio empresarial completo mediante una clave.
Según el prospectivo RDBMS, la clave (también conocida como clave de candidato) es un valor o conjunto de valores que identifica de forma ú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 de candidato. Sin embargo, DBA seleccionó una clave de la clave candidata para buscar registros que 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. Indización: de forma predeterminada, el motor SQL crea un índice agrupado en la clave principal si no existe y el índice no agrupado en la clave única.
3. Nulabilidad: la clave principal no incluye valores nulos, mientras que la clave única 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 sí valores de clave única.
Para más información y ejemplos:
Si el diseño de su base de datos es tal que no necesita una clave externa, entonces puede elegir una clave única ( pero recuerde que la clave única permite un valor nulo único ).
Si su base de datos exige una clave externa, entonces se va sin otra opción, tiene que ir con la clave principal.
Para ver la diferencia entre clave única y primaria, visite here
Simply Primary Key es único y no puede ser nulo, único puede ser nulo y puede no ser único.
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 única una fila; solo una de estas puede seleccionarse como la clave principal. Las otras, aunque únicas son las claves candidatas.
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 utiliza para identificar de forma única una fila de la tabla. Una clave principal no puede ser NULL
ya que NULL
no es un valor.
Una clave principal 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 de otras bases de datos)
Como identifica la fila, nunca debería cambiar. Cambiar las llaves primarias está obligado 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 principal que no se utiliza para nada más que para identificar filas individuales en la tabla.
Por otro lado, las claves únicas pueden cambiar tanto como quieras.
Clave única (Reino Unido) : 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 pueden identificar una singularidad 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:
- PK crea un índice agrupado y UK crea un índice no agrupado.
- PK no es nulo, pero el Reino Unido permite nulos (Nota: de forma predeterminada)
- Solo puede haber una y solo una PK en una tabla, pero puede haber múltiples UK
- Puede anular la implementación predeterminada dependiendo de su necesidad.
Realmente depende de cuál sea su objetivo al decidir si desea crear un Reino Unido o PK. Sigue una analogía como "Si hay un equipo de tres personas, entonces todos ellos son compañeros, pero habrá uno de ellos que será un par de compañeros: 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 intente obtener una idea general.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
Clave primaria:
- Solo puede haber una clave primaria en una tabla
- En algunos DBMS no puede ser
NULL
- por ejemplo, MySQL agregaNOT NULL
- La clave principal 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
- Creo que el nombre de la mesa es empleado.
- Clave primaria
- La clave principal no puede aceptar valores nulos. La clave principal impone la singularidad de una columna. Solo podemos tener una clave principal en una tabla.
- Llave unica
- La clave única puede aceptar valores nulos. La clave única también impone la exclusividad de una columna. Puede pensar que si la clave única contiene valores nulos, ¿por qué puede ser única? Sí, aunque puede aceptar valores nulos, impone la exclusividad de una columna. Simplemente eche un vistazo a la imagen. Aquí, Emp_ID es el principal y el ID de ciudadano es único. Espero que entiendas. Podemos usar múltiples claves únicas en una tabla.