PostgreSQL INSERT INTO: Una Guía Completa para Agregar Datos a tus Tablas
El comando INSERT INTO es esencial en PostgreSQL para agregar nuevas filas de datos a tus tablas. Esta poderosa herramienta te permite insertar una fila a la vez, o incluso varias filas en una sola consulta. En este artículo, te guiaremos a través de la sintaxis de INSERT INTO, las mejores prácticas y ejemplos concretos para que puedas dominar esta sentencia fundamental de PostgreSQL.
Sintaxis Básica de INSERT INTO
La sintaxis básica de INSERT INTO es bastante sencilla:
sql
INSERT INTO TABLE_NAME (column1, column2, ...) VALUES (value1, value2, ...);
TABLE_NAME: El nombre de la tabla a la que se insertarán las filas.column1,column2, …: Lista de nombres de columna (opcional). Si se omiten, se insertarán valores para todas las columnas de la tabla en el orden en que aparecen en la definición de la tabla.value1,value2, …: Los valores que se insertarán en las columnas correspondientes. El número de valores debe coincidir con el número de columnas especificadas.
Inserción de una Sola Fila
Para insertar una sola fila en una tabla, simplemente proporciona los valores de las columnas en la cláusula VALUES. Por ejemplo, para insertar una nueva fila en una tabla llamada COMPANY con la información de un nuevo empleado:
sql
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS) VALUES (10, 'John Doe', 30, 'New York');
En este ejemplo, especificamos el nombre de las columnas ID, NAME, AGE y ADDRESS y proporcionamos los valores correspondientes para la nueva fila.
Inserción de Múltiples Filas
Si necesitas insertar varias filas a la vez, puedes utilizar la sintaxis VALUES múltiple:
sql
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS) VALUES
(11, 'Jane Doe', 28, 'Los Angeles'),
(12, 'Peter Pan', 35, 'London');
Esta consulta insertará dos nuevas filas en la tabla COMPANY, una con los datos de Jane Doe y otra con los datos de Peter Pan.
Inserción con Valores Predeterminados
Si no especificas un valor para una columna, PostgreSQL utilizará el valor predeterminado definido para esa columna, si existe. Por ejemplo, si la columna ADDRESS tiene un valor predeterminado de ‘Unknown’, la siguiente consulta insertará una nueva fila con el valor predeterminado para ADDRESS:
sql
INSERT INTO COMPANY (ID, NAME, AGE) VALUES (13, 'Alice Wonderland', 25);
Inserción con INSERT INTO ... SELECT
Para insertar datos de otra tabla, puedes utilizar la sentencia SELECT en la cláusula VALUES. Esta es una forma muy útil de replicar o actualizar datos entre tablas:
sql
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS)
SELECT ID, NAME, AGE, ADDRESS
FROM CUSTOMER
WHERE CITY = 'New York';
Esta consulta insertará todas las filas de la tabla CUSTOMER en la tabla COMPANY donde la columna CITY sea igual a ‘New York’.
Consideraciones Importantes al Usar INSERT INTO
- Valores Nulos: Si una columna permite valores nulos, puedes insertar un valor nulo utilizando la palabra clave
NULL. Por ejemplo:
sql
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS) VALUES (14, 'Bob Builder', 32, NULL);
- Tipos de Datos: Asegúrate de que los valores que se insertan coincidan con los tipos de datos de las columnas correspondientes. PostgreSQL realizará conversiones implícitas en algunos casos, pero siempre es mejor ser explícito para evitar errores.
- Claves Primarias: Si la tabla tiene una clave primaria, asegúrate de no insertar valores duplicados para esa columna. PostgreSQL generará un error si intentas violar la restricción de clave primaria.
- Restricciones de Integridad Referencial: Si la tabla tiene restricciones de integridad referencial, debes asegurarte de que los valores insertados sean válidos según las restricciones.
Ejemplo Completo de INSERT INTO
«`sql
— Crear la tabla COMPANY
CREATE TABLE COMPANY (
ID INT PRIMARY KEY,
NAME VARCHAR(255) NOT NULL,
AGE INT,
ADDRESS VARCHAR(255),
SALARY DECIMAL(10,2)
);
— Insertar varias filas en la tabla COMPANY
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) VALUES
(1, ‘Alfred Jessop’, 25, ‘London’, 60000.00),
(2, ‘Bernard J. L. M. Smith’, 30, ‘New York’, 70000.00),
(3, ‘Catherine McDowell’, 35, ‘Paris’, 80000.00),
(4, ‘David Jones’, 40, ‘Berlin’, 90000.00),
(5, ‘Emily Brown’, 45, ‘Tokyo’, 100000.00);
— Insertar una fila con valores predeterminados
INSERT INTO COMPANY (ID, NAME, AGE) VALUES (6, ‘Frank Wilson’, 50);
— Insertar una fila con un valor nulo
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS) VALUES (7, ‘George Harrison’, 55, NULL);
— Insertar datos desde otra tabla
INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)
SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMER
WHERE CITY = ‘London’;
— Mostrar la tabla COMPANY después de las inserciones
SELECT * FROM COMPANY;
«`
Conclusión
En este artículo, hemos explorado la poderosa sentencia INSERT INTO en PostgreSQL, una herramienta fundamental para agregar datos a tus tablas. Ya sea que necesites insertar una sola fila, varias filas o datos de otra tabla, hemos cubierto los conceptos clave, la sintaxis y ejemplos específicos para ayudarte a dominar esta función esencial de PostgreSQL. Con el conocimiento adquirido, estarás listo para gestionar tus datos de manera eficiente y eficaz en tu base de datos PostgreSQL.