CLAVE PRIMARIA DE SQL: Cómo crear y agregar a una tabla existente

¿Qué es la clave principal en SQL?

Clave primaria es un campo o una combinación de campos que identifican un registro de forma única. La clave principal es una columna o un conjunto de columnas que son únicas. En otras palabras, cada valor es único para la clave principal.

Reglas para la clave primaria

  • Cada tabla puede tener sólo una clave primaria SQL.
  • Todos los valores son únicos y el valor SQL de clave principal puede identificar de forma única cada fila.
  • El sistema no permitirá insertar una fila con la clave primaria de SQL Server que ya existe en la tabla.
  • La clave principal no puede ser NULL.

El siguiente diagrama resume todos los puntos anteriores para la clave principal de SQL.

Reglas para la clave primaria en SQL
Cómo funciona SQL de clave primaria

Cómo crear una clave primaria en SQL Server

Podemos crear una clave primaria en 2 maneras:

1. SQL Server Management Studio

2. T-SQL: cree el primario mientras crea una nueva tabla

SQL Server Management Studio

Paso 1) Haga clic derecho en el nombre de la tabla. Haga clic en Diseño.

Crear clave primaria en SQL Server

Paso 2) Haga clic derecho en el nombre de la columna. Haga clic en 'Establecer clave principal

Crear clave primaria en SQL Server

Resultado: Course_Id es ahora un Clave primaria.

Crear clave primaria en SQL Server

T-SQL: cree una clave principal mientras crea una nueva tabla.

A continuación se muestra la sintaxis para crear una tabla con clave principal de T-SQL

Sintaxis:

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

Creemos una tabla con una columna como clave principal de 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 en 'Ejecutar.'

Cree una clave principal mientras crea una nueva tabla

Resultado: Course_Id es ahora un Clave primaria.

Cree una clave principal mientras crea una nueva tabla

Ejemplo: Veamos si permite ingresar múltiples registros con el mismo ID de curso.

Paso 1) Insertar 4 filas con ID_curso diferente

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 todos los datos insertados correctamente ejecutando la consulta Seleccionar.

Cree una clave principal mientras crea una nueva tabla

Nota: Podemos insertar valores duplicados en la clave no primaria.

Paso 3) Ahora intentemos insertar nuevos registros con un Course_ID existente que sea la clave principal.

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

Resultado: El sistema no permite insertar un nuevo valor ya que 4 existe la columna Course_ID que es una clave principal.

Cree una clave principal mientras crea una nueva tabla

¿Cómo agregar una clave principal a una tabla existente en SQL?

Ahora veremos cómo agregar una clave principal a una tabla existente en SQL:

Puede utilizar la instrucción ALTER para crear una clave principal. Sin embargo, la clave principal solo se puede crear en columnas definidas como NOT NULL. No puede crear una clave principal en una columna que permita valores NULL. Si es necesario, debe 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);

Agregar clave principal a una tabla existente en SQL

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!

  • La clave principal puede ser una combinación de varias columnas. Esta combinación se conoce como Clave primaria compuesta.
  • La clave principal puede tener un máximo de 16 columnas.

Resum

  • Cada tabla puede tener solo una clave primaria
  • Todos los valores son únicos, lo que puede identificar de forma única cada fila.