0% encontró este documento útil (0 votos)
13 vistas6 páginas

Instrucción INSERT en MySQL: Guía Práctica

La instrucción INSERT en MySQL permite insertar una o más filas en una tabla especificando el nombre de la tabla y los valores de las columnas. Se puede insertar filas individuales o múltiples filas separadas por comas. También se puede copiar datos de una tabla a otra usando una instrucción INSERT con una cláusula SELECT. Si la inserción viola una restricción como una clave primaria, la opción ON DUPLICATE KEY UPDATE actualiza la fila existente en lugar de generar un error.

Cargado por

Maualeo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas6 páginas

Instrucción INSERT en MySQL: Guía Práctica

La instrucción INSERT en MySQL permite insertar una o más filas en una tabla especificando el nombre de la tabla y los valores de las columnas. Se puede insertar filas individuales o múltiples filas separadas por comas. También se puede copiar datos de una tabla a otra usando una instrucción INSERT con una cláusula SELECT. Si la inserción viola una restricción como una clave primaria, la opción ON DUPLICATE KEY UPDATE actualiza la fila existente en lugar de generar un error.

Cargado por

Maualeo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Insertando datos en una tabla utilizando la instrucción INSERT en MySQL

Declaración simple de la instrucción INSERT en MySQL

La instrucción INSERT en MySQL le permite insertar una o más filas en una table. A
continuación se muestra la sintáxis de la instrucción INSERT

Primero, especifique el nombre de la tabla y una lista de columnas separadas por comas
entre paréntesis después de la cláusula INSERT INTO.

Luego, coloca un valor separado por comas de las columnas correspondientes dentro del
paréntesis seguido de la palabra clave VALUES.

Necesita tener un privilegio INSERT para usar la instrucción INSERT.

Vamos a crear una nueva tabla llamada tareas para practicar la declaración INSERT.

CREATE TABLE IF NOT EXISTS tasks (


task_id INT(11) AUTO_INCREMENT,
subject VARCHAR(45) DEFAULT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
description VARCHAR(200) DEFAULT NULL,
PRIMARY KEY (task_id)
);

Bases de Datos para Ingeniería


Por ejemplo, si desea insertar una nueva tarea en la tabla de tareas, use la instrucción
INSERT de la siguiente manera:

INSERT INTO tasks(subject,start_date,end_date,description)


VALUES('Learn MySQL INSERT','2010-01-01','2010-01-02','Start
learning..');

Después de ejecutar la instrucción, MySQL devuelve un mensaje para informar el número


de filas afectadas. En este caso, una fila se vio afectada.

SELECT
*
FROM
tasks;

FUNCIÓN MySQL INSERT – insertar filas múltiples Para insertar varias filas en una tabla,
utilice la instrucción INSERT con la siguiente sintáxis:

En esta forma, la lista de valores de cada fila está separada por una coma. Por ejemplo,
para insertar múltiples filas en la tabla tasks, se utilizará la siguiente instrucción:

INSERT INTO tasks(subject,start_date,end_date,description)


VALUES ('Task 1','2010-01-01','2010-01-02','Description 1'),
('Task 2','2010-01-01','2010-01-02','Description 2'),
('Task 3','2010-01-01','2010-01-02','Description 3');

3 filas afectadas. Genial!

Bases de Datos para Ingeniería


Si especifica el valor de la columna correspondiente para todas las columnas de la tabla,
puede ignorar la lista de columnas en la instrucción INSERT de la siguiente manera:

Nótese que no se necesita tener que especificar el valor para auto incrementar la
columna, por ejemplo, la columna taskid es porque MySQL genera el valor para auto
incrementar la columna automáticamente.

Función MySQL INSERT con la cláusula SELECT

En MySQL, se pueden especificar los valores para la instrucción INSERT desde la


instrucción SELECT. Esta característica es muy amigable porque se puede copiar una
table completa o parcialmente utilizando las cláusulas INSERT y SELECT como se
menciona a continuación:

Enseguida, copie la tabla tasks a la tabla task_1.

Primero, crear una nueva tabla llamada tasks_1 copiando la estructura de la tabla tasks
como a continuación se menciona:

CREATE TABLE tasks_1 LIKE tasks;

Bases de Datos para Ingeniería


Segundo, insertar los datos desde la tabla tasks dentro de la tabla tasks_1 utilizando la
instrucción INSERT:

INSERT INTO tasks_1


SELECT * FROM tasks;

Tercero, checar la tabla tasks_1 para ver si actualmente se copia desde la tabla tasks.

SELECT
*
FROM
tasks_1;

Función INSERT en MySQL INSERT con la función ON DUPLICATE KEY UPDATE

Bases de Datos para Ingeniería


Si la nueva fila viola la restricción PRIMARY KEY o UNIQUE, Por ejemplo, si se ejecuta la
siguiente instrucción:

INSERT INTO tasks(task_id,subject,start_date,end_date,description)


VALUES (4,'Test ON DUPLICATE KEY UPDATE','2010-01-01','2010-01-
02','Next Priority');

MySQL emite un mensaje de error:

Error Code: 1062. Duplicate entry '4' for key 'PRIMARY' 0.016 sec

Porque la fila con la clave primaria task_id 4 ya existe en la tabla llamada tasks, la
instrucción viola la restricción PRIMARY KEY constraint.

Sin embargo, si especifica la opción ON DUPLICATE KEY UPDATE en la instrucción


INSERT, MySQL insertará una nueva fila o actualizará la fila existente con los nuevos
valores.

Por ejemplo, la siguiente instrucción actualiza la fila existente cuyo task_id es 4 con la
nueva task_id y subject.

INSERT INTO tasks(task_id,subject,start_date,end_date,description)


VALUES (4,'Test ON DUPLICATE KEY UPDATE','2010-01-01','2010-01-
02','Next Priority')
ON DUPLICATE KEY UPDATE
task_id = task_id + 1,
subject = 'Test ON DUPLICATE KEY UPDATE';

MySQL emite un mensaje diciendo que 2 líneas fueron afectadas .

Bases de Datos para Ingeniería


Favor de checar la tabla tasks:

SELECT
*
FROM
tasks;

La nueva fila no fue insertada. Pero la fila existente con la task_id 4 fue actualizada.

La instrucción INSERT ON DUPLICATE KEY UPDATE arriba es equivalente a la siguiente


instrucción UPDATE:

UPDATE tasks
SET
task_id = task_id + 1,
subject = 'Test ON DUPLICATE KEY UPDATE'
WHERE
task_id = 4;

Bases de Datos para Ingeniería

También podría gustarte