Sentencia PostgreSQL INSERT INTO

La sentencia PostgreSQL INSERT INTO se utiliza para insertar nuevos registros en una tabla.

Podemos insertar una fila o también insertar varias filas a la vez.

Sintaxis

El formato de sintaxis de la sentencia INSERT INTO es el siguiente:

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
  • column1, column2,...columnN son los nombres de los campos de la tabla.

  • value1, value2, value3,...valueN son los valores correspondientes a los campos.

Al usar la sentencia INSERT INTO, las columnas de campos deben tener la misma cantidad que los valores de datos, y el orden también debe corresponderse.

Si insertamos valores en todos los campos de la tabla, no es necesario especificar los campos, solo hay que especificar los valores a insertar:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

La siguiente tabla enumera las descripciones de los resultados devueltos después de ejecutar la inserción:

N.º Información de salida y descripción
1

INSERT oid 1

Si solo se inserta una fila y la tabla de destino tiene OID, la información devuelta indica que oid es el OID asignado a la fila insertada.

2

INSERT 0 #

Información devuelta al insertar varias filas, # es el número de filas insertadas.

Ejemplo

Crear la tabla COMPANY en la base de datos ejemplodb:

ejemplodb=# CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL,
   JOIN_DATE      DATE
);

Insertar los siguientes datos en la tabla COMPANY:

ejemplodb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');
INSERT 0 1

La siguiente sentencia de inserción ignora el campo SALARY:

ejemplodb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, 'Allen', 25, 'Texas', '2007-12-13');
INSERT 0 1

La siguiente sentencia de inserción usa la cláusula DEFAULT para establecer un valor predeterminado en el campo JOIN_DATE, en lugar de especificar un valor:

ejemplodb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT );
INSERT 0 1

El siguiente ejemplo inserta varias filas:

ejemplodb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13');
INSERT 0 2

Use la sentencia SELECT para consultar los datos de la tabla:

ejemplodb=# SELECT * FROM company;

ID        NAME        AGE        ADDRESS     SALARY   JOIN_DATE
----      ----------  -----      ----------  -------      --------
1         Paul        32         California  20000.0      2001-07-13
2         Allen       25         Texas                    2007-12-13
3         Teddy       23         Norway      20000.0
4         Mark        25         Rich-Mond   65000.0      2007-12-13
5         David       27         Texas       85000.0      2007-12-13
Otras extensiones