La sentencia Insert es una sentencia SQL que pertenece al grupo DML(Data Manipulation Language) «Lenguaje de manipulación de datos en español » la cual nos permite insertar o ingresar filas de datos en las tablas de nuestra base de datos.
↡ Ejemplos desarrollados al final ↡
Sintaxis:
INSERT INTO mi_tabla(campo1,campo2,campo3,...) VALUES (valor1,valor2,valor3,...)
Donde:
- Campo: Son los nombres de los campos que se van a insertar.
- Valor: Los valores que se van a insertar.
Los valores que se van a insertar deben estar en el mismo orden y ser del mismo tipo de la tabla.
Consideraciones al insertar una fila
- Si necesita actualizar una fila de datos insertada en una tabla, es necesario usar la sentencia UPDATE.
- Si ha creado una clave primaria en una tabla y trata de INSERTAR una fila de datos con un valor que ya se encuentra registrado, el motor de base de datos le arrojará un error
- Si necesita insertar varios registros de otra tabla con alguna condición se debe combinar con la SENTENCIA SELECT.
- Si existe un campo AUTONUMÉRICO creado en la tabla que deseamos INSERTAR, ese campo no deberá ser especificado en la sentencia insert porque nos arrojará un mensaje de error.
Ejemplos sentencia Insert
TABLA DIRECCIONES_RESTAURANTES
ID | DIRECCION | TELEFONO | CODIGOPOSTAL |
---|---|---|---|
1 | AV 5 DE JUNIO Y CALLE EL ROSARIO | 2563366 | 098568 |
2 | EL SALVADOR Y CALLE QUINTA | 2585474 | 098599 |
3 | CHILE Y CALLE EL OBELISCO | 2452152 | 088577 |
4 | CALLE MAYOR Y AV 10 DE AGOSTO | 2526321 | 096588 |
5 | CALLE EL ALFARO Y AV 5 DE ABRIL | 2256323 | 098565 |
Caso desarrollado #1
Insertar 2 direcciones a la tabla DIRECCIONES_RESTAURANTES.
CODIGO SQL »
INSERT INTO DIRECCIONES_RESTAURANTES VALUES (6,'CALLE DECIMA Y LA OCTAVA','2452120','098745'), (6,'CALLE DECIMA Y LA OCTAVA','2452120','098745')
NOTA: Cuando solo se especifica los valores a insertar mas no las columnas , los valores deben ir en el orden y el tipo correcto como estén definidos en la tabla.
RESULTADO »
ID | DIRECCION | TELEFONO | CODIGOPOSTAL |
---|---|---|---|
1 | AV 5 DE JUNIO Y CALLE EL ROSARIO | 2563366 | 098568 |
2 | EL SALVADOR Y CALLE QUINTA | 2585474 | 098599 |
3 | CHILE Y CALLE EL OBELISCO | 2452152 | 088577 |
4 | CALLE MAYOR Y AV 10 DE AGOSTO | 2526321 | 096588 |
5 | CALLE EL ALFARO Y AV 5 DE ABRIL | 2256323 | 098565 |
6 | CALLE DECIMA Y LA OCTAVA | 2452120 | 098745 |
7 | AV MARISCAL Y 5 DE NOVIEMBRE | 2698954 | 091223 |
Caso desarrollado #2
Insertar 3 direcciones a la tabla DIRECCIONES_RESTAURANTES pero solamente especificar el ID y la Dirección sin el Teléfono ni el Código postal.
CODIGO SQL »
INSERT INTO DIRECCIONES_RESTAURANTES (ID, Direccion) VALUES (8,'AV PRIMERA Y VICTOR EMILIO'), (9,'AV BOLIVAR Y LA NOVENA'), (10,'LIBERTADOR Y LA CUARTA')
NOTA: Cuando al insertar no se especifican todos los campos de un registro, esos campos se insertarán con valor NULL a menos que se especifique un valor por defecto.
RESULTADO »
ID | DIRECCION | TELEFONO | CODIGOPOSTAL |
---|---|---|---|
1 | AV 5 DE JUNIO Y CALLE EL ROSARIO | 2563366 | 098568 |
2 | EL SALVADOR Y CALLE QUINTA | 2585474 | 098599 |
3 | CHILE Y CALLE EL OBELISCO | 2452152 | 088577 |
4 | CALLE MAYOR Y AV 10 DE AGOSTO | 2526321 | 096588 |
5 | CALLE EL ALFARO Y AV 5 DE ABRIL | 2256323 | 098565 |
6 | CALLE DECIMA Y LA OCTAVA | 2452120 | 098745 |
7 | AV MARISCAL Y 5 DE NOVIEMBRE | 2698954 | 091223 |
8 | AV PRIMERA Y VICTOR EMILIO | NULL | NULL |
9 | AV BOLIVAR Y LA NOVENA | NULL | NULL |
10 | LIBERTADOR Y LA CUARTA | NULL | NULL |
Sentencia Insert Into Select
Cuando necesitemos insertar filas de datos en una tabla pero tomando valores de otra tabla y con ciertas condiciones, tenemos que hacer uso de la sentencia INSERT INTO SELECT, para poder hacer esto debemos realizar la siguiente sintaxis:
Sintaxis:
INSERT INTO mi_tabla(campo1,campo2,campo3,...) SELECT campo1, campo2, campo3 FROM otra_tabla WHERE condición1, condición2,...
NOTA: Los campos recuperados con la sentencia SELECT deben ser del mismo tipo que el campo a insertar y estar en el mismo orden que se especificaron en el insert.
Caso desarrollado #3
Creamos una Tabla llamada DIRECCIONES_2 y la llenamos con la mismos datos que la tabla DIRECCIONES_RESTAURANTES.
CODIGO SQL »
CREATE TABLE
DIRECCIONES_2(
ID INT NOT NULL,
DIRECCION CHAR(250),
TELEFONO CHAR(10),
CODIGO_POSTAL CHAR(10)
)
INSERT INTO DIRECCIONES_2(CODIGO_POSTAL,TELEFONO, DIRECCION, ID) SELECT CODIGO_POSTAL,TELEFONO, DIRECCION, ID FROM DIRECCIONES_RESTAURANTES
NOTA: Como observamos en la sentencia anterior, debemos colocar los campos en el mismo orden tanto en el INSERT INTO como en el SELECT.
Comentarios