Insertar registros en una tabla con INSERT INTO en PostgreSQL

Vamos aprender como insertar registros en una tabla con INSERT INTO en PostgreSQL de una forma sencilla analizando su sintaxis y con varios ejemplos.

Sintaxis

La sintaxis básica para insertar registros en PostgreSQL es la siguiente:

INSERT INTO nombreTabla(columna_1, columna_2, …)
VALUES (valor_1, valor_2, …)
[RETURNING *];

En la anterior sintaxis:

  • Primero escribimos las palabras INSERT INTO seguido del nombre de la tabla y despues entre paréntesis cada uno de los campos donde vamos a insertar (si se va insertar valores en todas las columnas no es necesario mencionar cada columna)
  • En segundo lugar escribimos la palabra VALUES seguido de los valores a insertar entre paréntesis y separados por comas.
  • En tercer lugar y opcionalmente, puedes visualizar los registros que se han insertado escribiendo al final la palabra RETURNING * o la palabra RETURNING seguido de los campos a mostrar.

Ejemplo

Insertar un registro

En el siguiente ejemplo vamos a insertar datos en la tabla de empleados mencionando los campos. Es importante tener en cuenta que podríamos obviar mencionar los campos ya que vamos a insertar en todos los campos en el mismo orden:

INSERT INTO empleados (id_empleado, id_departamento, nombre, 
   puesto, sueldo)
VALUES (1,1,'Miguel Troyano','Consultor', 60000);
Insertar registros en una tabla con INSERT INTO en PostgreSQL

Insertar un registro pero mostrando lo insertado

En el siguiente ejemplo vamos a insertar datos como en el ejemplo anterior, pero en esta ocasión nos mostrara los datos que ha insertado al finalizar:

INSERT INTO empleados (id_empleado, id_departamento, nombre, 
   puesto, sueldo)
VALUES (2,1,'Ismael Troyano','Consultor', 60000)
RETURNING *;

Insertar varios registros

Si quieres insertar varios registros no es necesario que escribas INSERT INTO varias veces. Observa este ejemplo:

INSERT INTO empleados (id_empleado, id_departamento, nombre, 
   puesto, sueldo)
VALUES (3,1,'Jose Troyano','Director', 80000),
	   (4,1,'Pilar Troyano','Directora', 80000)
RETURNING *;

Ejemplo completo

Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios:

-- Creamos la tabla empleados
CREATE TABLE IF NOT EXISTS public.empleados
(
    id_empleado numeric(2,0),
    id_departamento numeric(2,0),
    nombre character varying(50),
    puesto character varying(50),
    sueldo integer
);

-- Insertamos un registro
INSERT INTO empleados (id_empleado, id_departamento, nombre, 
   puesto, sueldo)
VALUES (1,1,'Miguel Troyano','Consultor', 60000);

-- Mostramos los datos de la tabla
SELECT * from empleados;

-- Insertamos otro registro pero mostrando lo insertado al final
INSERT INTO empleados (id_empleado, id_departamento, nombre, 
   puesto, sueldo)
VALUES (2,1,'Ismael Troyano','Consultor', 60000)
RETURNING *;

-- Insertamos varios registros a la vez
INSERT INTO empleados (id_empleado, id_departamento, nombre, 
   puesto, sueldo)
VALUES (3,1,'Jose Troyano','Director', 80000),
	   (4,1,'Pilar Troyano','Directora', 80000)
RETURNING *;

Escribir un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.