SQL: clave principal

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

SQL: clave principal

Este tutorial de SQL explica cómo Crear y eliminar claves primarias en SQL con sintaxis y ejemplos.

¿Qué es una clave principal en SQL?

En SQL, una clave principal es un campo único o una combinación de campos que define de forma única un registro. Todos los campos pertenecientes a la clave principal no pueden contener valores NULL. Una tabla solo puede tener una clave primaria.

Puede crear claves primarias en SQL mediante la instrucción CREATE TABLE o la instrucción ALTER TABLE.

Crear una clave principal (sentencia CREATE TABLE)

Las claves primarias se pueden crear al ejecutar la instrucción CREATE TABLE en SQL.

sintaxis

La sintaxis para crear una clave principal en SQL utilizando la instrucción CREATE TABLE es:

CREATE TABLE table_name
(
  column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...

  CONSTRAINT constraint_name PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)
);

o

CREATE TABLE table_name
(
  column1 datatype CONSTRAINT constraint_name PRIMARY KEY,
  column2 datatype [ NULL | NOT NULL ],
  ...
);

table_name El nombre de la tabla que desea crear. column1, column2 Las columnas que desea crear en la tabla. constrict_name El nombre de la clave principal. pk_col1, pk_col2, … pk_col_n Las columnas que componen la clave principal.

ejemplo

Veamos un ejemplo de cómo crear una clave principal usando la sentencia CREATE TABLE en SQL. Comenzaremos con uno muy simple, donde nuestra clave principal contiene solo una columna.

Por ejemplo:

CREATE TABLE suppliers
( supplier_id int NOT NULL,
  supplier_name char(50) NOT NULL,
  contact_name char(50),
  CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id)
);

En este ejemplo, creamos una clave principal en la tabla proveedor denominada proveedor_pk. Contiene solo una columna: la columna ID del proveedor.

Podemos usar una sintaxis alternativa y crear la misma clave principal de la siguiente manera:

CREATE TABLE suppliers
( supplier_id int CONSTRAINT suppliers_pk PRIMARY KEY,
  supplier_name char(50) NOT NULL,
  contact_name char(50)
);

Ambas sintaxis son válidas cuando se crea una clave principal con un solo campo.

Si crea una clave principal que consta de 2 o más columnas, solo puede usar la primera sintaxis para definir la clave principal al final de la instrucción CREATE TABLE.

Por ejemplo:

CREATE TABLE contacts
( last_name VARCHAR(30) NOT NULL,
  first_name VARCHAR(25) NOT NULL,
  birthday DATE,
  CONSTRAINT contacts_pk PRIMARY KEY (last_name, first_name)
);

Este ejemplo crea una clave principal llamadacontacts_pk que consta de una combinación de las columnas last_name y first_name. Por lo tanto, cada combinación de last_name y first_name debe ser única en la tabla de contactos.

Crear una clave principal (sentencia ALTER TABLE)

Si su tabla ya existe y desea agregar la clave principal más adelante, puede usar la instrucción ALTER TABLE para crear la clave principal.

sintaxis

La sintaxis para crear una clave principal en SQL utilizando la instrucción ALTER TABLE es:

ALTER TABLE table_name
  ADD CONSTRAINT constraint_name
    PRIMARY KEY (column1, column2, ... column_n);

table_name El nombre de la tabla a modificar. Esta es la tabla donde desea agregar la clave principal. constrict_name El nombre de la clave principal. columna1, columna2, … columna_n Las columnas que componen la clave principal.

ejemplo

Veamos un ejemplo de cómo crear una clave principal usando la instrucción ALTER TABLE en SQL. Digamos que hemos creado una tabla de proveedores en nuestra base de datos. Podemos agregar la tabla principal a la tabla de proveedores usando la siguiente instrucción ALTER TABLE:

ALTER TABLE suppliers
  ADD CONSTRAINT suppliers_pk 
    PRIMARY KEY (supplier_id);

En este ejemplo, creamos una clave principal en la tabla de proveedores existente llamada proveedor_pk. Consiste en la columna id_proveedor.

También podemos crear una clave principal con múltiples campos, como en el siguiente ejemplo:

ALTER TABLE suppliers
  ADD CONSTRAINT suppliers_pk
    PRIMARY KEY (supplier_id, supplier_name);

Este ejemplo crea una clave principal denominada pk_proveedores que consiste en una combinación de las columnas id_proveedor y nombre_proveedor.

eliminar clave principal

En SQL, puede usar la declaración ALTER TABLE para eliminar una clave principal.

sintaxis

La sintaxis para colocar una clave principal en SQL es:

ALTER TABLE table_name
  DROP PRIMARY KEY;

table_name El nombre de la tabla a modificar. Esta es la tabla cuya clave principal desea descartar.

ejemplo

Veamos un ejemplo de cómo eliminar una clave principal usando la instrucción ALTER TABLE en SQL.

ALTER TABLE suppliers
  DROP PRIMARY KEY;

En este ejemplo, eliminamos la clave principal en la tabla de proveedores. No necesitamos especificar el nombre de la clave principal porque solo puede haber una clave principal en una tabla.