¿Cuál es la diferencia entre una clave principal y una clave sustituta?
A Clave primaria es una restricción especial en una columna o conjunto de columnas. Una restricción de clave primaria asegura que las columnas así designadas no tengan valores NULL y que cada valor sea único. Físicamente, el sistema de base de datos implementa una clave primaria usando un índice único, y todas las columnas de la clave primaria deben haber sido declaradas NO NULAS. Una tabla puede tener solo una clave principal, pero puede ser compuesta (constar de más de una columna).
A clave sustituta es cualquier columna o conjunto de columnas que se puede declarar como clave principal en vez de un «real» o clave natural. A veces puede haber varias claves naturales que podrían declararse como clave primaria, y todas se denominan claves candidatas. Entonces, un sustituto es una clave candidata. En realidad, una tabla podría tener más de una clave sustituta, aunque esto sería inusual. El tipo más común de clave sustituta es un entero creciente, como una columna auto_increment en MySQL, una secuencia en Oracle o una columna de identidad en SQL Server.