Insertar registros en un una tabla MySQL, es una acción muy común dentro de la operación de las bases de datos.

La inserción de registros permite el ingreso de datos a una tabla, ya sea un solo vector de valores, varias líneas a la vez, o una o más líneas a partir de la consulta a otra tabla o tablas.
Así pues vamos a instruir de manera sencilla cómo insertar registros. Vamos a usar una tabla llamada empleados como ejemplo:
id | nombre | apellido | cedula |
---|---|---|---|
1 | Juan | Pardo | 123 |
2 | Luis | Cadavid | 456 |
3 | María | Mora | 899 |
Insertar un solo registro
Si deseamos insertar un solo registro, debemos usar la siguiente sintaxis:
INSERT INTO <nombre tabla>(campo1,campo2,...,campo-n) values(valor1,valor2,...,valor-n);
Donde la cantidad de campos debe coincidir con la cantidad de valores, y tienen que ser del mismo tipo de datos.
Se puede obviar la lista de campos del comando, si se insertan como valores todos los campos de la tabla, en el mismo orden en el que están listados en su diseño.
En nuestro ejemplo, podemos insertar un registro en la tabla empleados, de la siguiente forma:
INSERT INTO empleados(id,nombre,apellido,cedula) values(4,"Jose","Acevedo","7491");
Insertar varios registros
Para el caso de varios registros, se debe usar la siguiente sintaxis:
INSERT INTO <nombre tabla>(campo1,campo2,...,campo-n) values (valor11,valor12,...,valor-1n), (valor21,valor22,...,valor-2n), ... (valor-n1,valor-n2,...,valor-nn);
En nuestro ejemplo, la inserción de varios registros sería como:
INSERT INTO empleados(id,nombre,apellido,cedula) values (5,"Camilo","Montoya","74997"), (6,"Joaquin","Carrizales","8538"), (7,"Maritza","Miranda","6384");
Suponiendo que el campo id es una llave única autoincremental, se puede obviar tanto en el listado de campos, como en el listado de valores. MySQL se encargará de ingresar automáticamente el siguiente valor de la secuencia.
Si un campo no se nombra en la inserción, el comando trata de insertar el valor por defecto definido para el campo, en el diseño de la tabla. Por ejemplo, un campo puede tener por defecto un valor NULL o vacío, cuando en la inserción no se pone un valor explícito para dicho campo. Si un campo no permite un valor nulo, entonces se generará un error en la inserción, si no se pone un valor diferente a nulo para dicho campo.
Insertar registros a partir de una Consulta MySQL
En este caso la inserción no depende de unos valores fijos, como en los casos anteriores, sino que los valores son devueltos desde una consulta, que se realiza a otra tabla, o conjunto de tablas.
Como en el caso de la inserción de valores fijos, la cantidad de campos a insertar, debe coincidir con la cantidad de valores devueltos por la consulta, sino la inserción fallará. Así pues se debe seguir la siguiente sintaxis:
INSERT INTO <nombre tabla>(campo1,campo2,...,campo-n) SELECT campo11,campo12,...,campo1n) FROM <nombre tabla 2> WHERE <condicional>;
Para nuestro ejemplo, consideremos otra tabla llamada operarios:
id | nombres | apellidos | cc | cargo |
---|---|---|---|---|
1 | Luis | Bolaños | 887 | Auxiliar |
2 | Martha | Caviedes | 9781 | Documentación |
3 | Miguel | Castaño | 835 | Auxiliar |
Supongamos que queremos insertar en la tabla empleados, los registros de la tabla operarios que tengan como cargo «Auxiliar».
Como el campo id de empleado es autoincremental, no debemos incluir el id de operario en la consulta:
INSERT INTO empleados(nombre,apellido,cedula) SELECT nombres,apellidos,cc FROM operarios WHERE cargo="Auxiliar";
De este modo se inserta el primer y tercer registro de la tabla operarios, en la tabla empleados.
Te puede interesar leer también cómo copiar filas de una tabla en ella misma
Restricciones en la inserción de registros
Dado que las tablas pueden tener restricciones según su diseño, la inserción puede fallar en alguno de los siguientes casos:
1- Por el tipo de dato del campo: El valor a insertar debe ser del mismo tipo del campo, o debe ser posible una conversión automática del tipo. Por ejemplo, si tenemos un campo de tipo entero, no se podrá insertar un valor de texto.
2- Llaves de la tabla: Las llaves permiten la creación de índices, controlar valores únicos y mantener la consistencia referencial de la base de datos. Estas llaves pueden definir que un campo sólo puede tener valores diferentes, o que la combinación de campos debe ser única, o que un campo sea una llave foránea, lo que indica que dicho campo debe contener un valor, que de debe existir como llave única en otra tabla, con el fin de tener una integridad referencial de los datos.
3- Campos nulos o vacíos: Dependiendo de la definición de los campos de la tabla, éstos pueden permitir o no un valor nulo por defecto, lo que debe ser considerado en el momento de armar la inserción de datos.
En otro artículo, estaremos hablando en más detalle sobre la importancia de las llaves de una tabla en MySQL.
Este artículo hace parte del sistema de divulgación de conocimiento de ITSoftware.