CLAVE PRIMARIA SQL: Crear y agregar a una tabla existente

โšก Resumen inteligente

En SQL Server, una clave primaria es una columna o un conjunto de columnas cuyos valores identifican de forma รบnica cada fila de una tabla. Cada tabla contiene una clave primaria, y sus columnas nunca deben ser nulas.

  • ๐Ÿ”‘ ยฟQuรฉ es una clave primaria? Una clave primaria es una o mรกs columnas cuyos valores son รบnicos e identifican cada fila de una tabla.
  • ๐Ÿšซ Reglas bรกsicas: Una tabla solo permite una clave primaria, cada valor debe ser รบnico y ninguna columna clave puede contener valores NULL.
  • ๐Ÿ–ฑ๏ธ Dos mรฉtodos de creaciรณn: Tanto el Diseรฑador de tablas de SQL Server Management Studio como la instrucciรณn CREATE TABLE de T-SQL definen una clave principal.
  • ๐Ÿงฑ clรกusula CONSTRAINT: Dentro de CREATE TABLE, la clรกusula CONSTRAINT โ€ฆ PRIMARY KEY nombra la clave y enumera su columna o columnas.
  • โž• Agregar a una tabla existente: ALTER TABLE โ€ฆ ADD CONSTRAINT agrega una clave primaria a las columnas NOT NULL de una tabla existente.
  • ๐Ÿงฉ Clave compuesta: Una clave primaria puede combinar hasta 16 columnas, formando una clave compuesta que es รบnica en todo el conjunto de datos.

Clave primaria de SQL Server: Cรณmo crear y agregar a una tabla existente

ยฟQuรฉ es la clave principal en SQL?

Una clave primaria en SQL Server Es un campo, o una combinaciรณn de campos, que identifica un registro de forma รบnica. Se trata de una columna o un conjunto de columnas en las que cada valor es รบnico. En otras palabras, no hay dos filas que compartan el mismo valor de clave primaria.

Reglas para la clave primaria

  • Cada tabla solo puede tener una clave primaria.
  • Todos los valores son รบnicos, y el valor de la clave primaria puede identificar de forma unรญvoca cada fila.
  • El sistema no permitirรก insertar una fila cuyo valor de clave primaria ya exista en la tabla.
  • Una clave primaria no puede ser NULA.

El siguiente diagrama resume todos los puntos anteriores sobre la clave primaria SQL.

Diagrama que resume las reglas de clave primaria de SQL: valores รบnicos, uno por tabla y no nulo.

Cรณmo crear una clave primaria en SQL Server

Puedes crear una clave primaria de dos maneras:

Estudiemos cada mรฉtodo en detalle.

SQL Server Management Studio

Paso 1) Haga clic con el botรณn derecho en el nombre de la tabla y haga clic Diseรฑo.

Haga clic con el botรณn derecho en la tabla y seleccione Diseรฑo en SQL Server Management Studio.

Paso 2) Haga clic con el botรณn derecho en el nombre de la columna y haga clic Establecer clave principal.

Haga clic con el botรณn derecho en la columna y seleccione Establecer clave principal en el Diseรฑador de tablas.

Resultado: Course_Id ahora es una clave primaria, indicada por un icono de llave junto a la columna.

La columna Course_Id estรก marcada con un icono de llave como clave principal.

T-SQL: Crear una clave primaria al crear una nueva tabla

A continuaciรณn se muestra la sintaxis para crear una mesa con una clave primaria de T-SQL.

Sintaxis:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Aquรญ, CONSTRAINT nombra la clave, PRIMARY KEY marca la columna que debe permanecer รบnica, y cada columna tambiรฉn necesita una tipo de datos.

Vamos a crear una tabla con una columna como clave primaria SQL.

consulta:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Paso 1) Ejecute la consulta haciendo clic Implementaciรณn.

Ejecutar la consulta CREATE TABLE que define la clave primaria Course_ID.

Resultado: Course_Id ahora es una clave primaria en la tabla COURSE_TSQL_PK.

Tabla COURSE_TSQL_PK que muestra Course_ID establecida como clave primaria.

Ejemplo: Veamos si permite introducir varios registros con el mismo ID de curso.

Paso 1) Inserte cuatro filas con diferentes valores de Course_ID.

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Paso 2) Verifique que todos los datos se hayan insertado correctamente ejecutando la consulta SELECT.

Resultado de la consulta SELECT que muestra cuatro filas con valores Course_ID distintos.

Nota: Puede insertar valores duplicados en una columna que no sea clave primaria.

Paso 3) Ahora intentemos insertar un nuevo registro con un Course_ID existente, que es la clave primaria.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Resultado: El sistema no permite insertar el nuevo valor porque ya existe el valor 4 en la columna Course_ID, que es una clave primaria.

Mensaje de error que rechaza un valor de clave primaria duplicado para Course_ID.

ยฟCรณmo agregar una clave principal a una tabla existente en SQL?

Ahora veremos cรณmo agregar una clave primaria a una tabla existente en SQL.

Puedes usar la instrucciรณn ALTER para crear una clave primaria. Sin embargo, solo se puede crear una clave primaria en columnas definidas como NOT NULL. No puedes crear una clave primaria en una columna que admita valores NULL; si una columna actualmente admite valores NULL, primero debes modificarla a NOT NULL o eliminar y volver a crear la tabla.

Aquรญ estรก la sintaxis:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Por ejemplo:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

Sentencia ALTER TABLE que agrega una restricciรณn de clave primaria llamada students_pk

Hemos agregado una restricciรณn de clave principal a una tabla ya existente. La restricciรณn se agregรณ en la columna de admisiรณn y se le asignรณ el nombre Students_pk.

ยกDatos interesantes!

  • Una clave primaria puede ser una combinaciรณn de varias columnas. Esta combinaciรณn se conoce como clave primaria compuesta.
  • Una clave primaria puede tener un mรกximo de 16 columnas.

Preguntas Frecuentes

Ambos mรฉtodos garantizan la unicidad. Una tabla solo permite una clave primaria y sus columnas no pueden contener valores nulos. Una tabla puede contener varias claves รบnicas, y una columna รบnica puede aceptar un valor nulo. Las claves primarias suelen definir el identificador principal de la fila.

Sรญ. SQL Server crea automรกticamente un รญndice รบnico para garantizar la clave principal. Por defecto, este รญndice es agrupado, lo que ordena fรญsicamente las filas. Si otra columna ya contiene el รญndice agrupado, puede especificar NONCLUSTERED.

Una clave primaria compuesta combina dos o mรกs columnas, de modo que sus valores son รบnicos en conjunto, incluso cuando cada columna se repite individualmente. SQL Server permite que una clave primaria abarque hasta 16 columnas y una longitud total de clave de 900 bytes.

Una clave primaria identifica de forma รบnica cada fila dentro de su propia tabla y nunca permite valores NULL. clave extranjera Almacena valores que deben coincidir con una clave primaria o รบnica en otra tabla, creando una relaciรณn entre las dos tablas.

Ejecute ALTER TABLE table_name DROP CONSTRAINT constraint_name. Debe conocer el nombre de la restricciรณn, que puede encontrar en sys.key_constraints. Eliminarping La clave primaria tambiรฉn elimina su รญndice รบnico de soporte y cualquier clave externa que haga referencia a ella.

Una columna IDENTITY que genera nรบmeros automรกticamente es una clave primaria sustituta popular porque se mantiene estrecha, estable y nunca nula. Elija una clave natural solo cuando una columna existente, como un cรณdigo de producto, ya tenga garantizada la unicidad.

Sรญ. Copiloto de GitHub Puede escribir sentencias CREATE TABLE y restricciones PRIMARY KEY a partir de indicaciones en lenguaje natural y sugerir columnas clave adecuadas. Siempre revise las claves generadas, los tipos de datos y la posibilidad de valores nulos, y luego pruebe el script antes de ejecutarlo en producciรณn.

Las herramientas de IA y aprendizaje automรกtico analizan datos de muestra y patrones de consulta para recomendar quรฉ columna o columnas deben ser la clave principal, identificar claves candidatas que contengan duplicados o valores nulos y sugerir claves sustitutas. El desarrollador confirma cada recomendaciรณn antes de aplicarla.

Resumir este post con: