Blog
Una vez la tabla fue creada es hora de insertar filas en SQL, puedes llenarla con datos usando el comando INSERT.
Esta es la sintaxis:
INSERT INTO nombreTabla (columna1, columna2) VALUES (valor11, valor12), (valor21, valor22), (valor31, valor32), ...
Después de INSERT INTO especifica las columnas que serán parte de lo que vayamos a insertar en cada fila.
Cada dato que se inserte en las filas sera definido por su primera clausula y en el mismo orden, cualquier columna que no se especifique un valor recibirá lo que se conoce como un valor por defecto, si usamos la palabra NOT NULL y luego olvidamos insertar un valor en la columna el comando INSERT fallara.
Si no definimos un valor clave con INTEGER PRIMARY KEY entonces sera rellenado automáticamente con un numero entero que no ha sido usado, usualmente el siguiente valor en uso de la columna, esto sucede así exista o no la palabra AUTOINCREMENT.
Si no especificamos las columnas entonces se asume que en todas las columnas se insertara el valor que definimos con INSERT.
INSERT INTO tabla VALUES (valor1, valor2, valor3, valor4...);
Si uno de los valores no esta especificado entonces INSERT fallara, a menos que la consulta pueda intuir cuales campos tendrán valores por defecto, en general este método para insertar no es recomendado por que la estructura de la base de datos puede cambiar el significado de la consulta lo cual puede ser muy peligroso.
Nota: es mucho mas eficiente insertar varios valores usando una sola consulta y no muchas consultas INSERT nuevas por cada nuevo dato, esto puede influir en en el rendimiento así que tenlo en cuenta.
A continuación te dejamos varios ejemplos de INSERT en acción:
CREATE TABLE clientes (nombre NOT NULL, apellido NOT NULL, edad); INSERT INTO clientes (nombre, apellido, edad) VALUES ("Camilo", "Fernandez", 23); SELECT * FROM clientes;
Ahora veamos lo que pasa si omitimos la columna.
CREATE TABLE clientes (nombre NOT NULL, apellido NOT NULL, edad); INSERT INTO clientes VALUES ("Camilo", "Fernandez", 23); SELECT * FROM clientes;
Ahora quitemos la edad, esto causara que falle la consulta.
CREATE TABLE clientes (nombre NOT NULL, apellido NOT NULL, edad); INSERT INTO clientes VALUES ("Camilo", "Fernandez"); SELECT * FROM clientes;
Ahora agreguemos mas personas.
CREATE TABLE clientes (nombre NOT NULL, apellido NOT NULL, edad); INSERT INTO clientes (nombre, apellido, edad) VALUES ("Camilo", "Fernandez", 23), ("David", "Quintero", 26); SELECT * FROM clientes;
Reemplazando e ignorando
SQL suporta tres tipos de sintaxis adicionales para insertar datos, INSERT OR REPLACE (insertar o reemplazar), REPLACE INTO (reemplazar en), INSERT OR IGNORE (insertar o ignorar)
la palabra REPLACE significa que si estas insertando en una fila que ya existe (es decir que ya existe una llave primera en la tabla ) entonces la palabra INSERT no fallara y actualmente borrara la antigua fila e insertara una nueva.
REPLACE fallara si esa fila no existe donde INSERT OR REPLACE siempre funcionara e insertara una nueva fila o reemplazara una existente.
INSERT OR IGNORE es similar a INSERT OR REPLACE, pero esta ignorara hacer INSERT para una fila si ya existe en la base de datos, esto es útil cuando se va a insertar gran cantidad de datos en el cual algunos datos o su llave primaria ya existe.
Ejercicio:
Usaremos la siguiente tabla Sqlite para este ejercicio.
Insertar “Julian Ramirez” en la base de datos, Julian tiene 33 años.
INSERT INTO clientes (nombre, apellido, edad) VALUES ("Julian", "Ramirez", 33); SELECT * FROM clientes
Una vez aprendido como usar la sentencia INSERT INTO te invitamos a hacer nuestro curso gratuito para aprender otras que son igual de útiles: