Blog
Una vez la tabla es 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 será definido por su primera cláusula 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 fallará.
En un INSERT, si a la columna INTEGER PRIMARY KEY no se le da explícitamente un valor, se rellenará automáticamente con un número entero no utilizado, normalmente el siguiente número actualmente en uso en la columna. Esto es así independientemente de que se utilice o no la palabra clave AUTOINCREMENT.
Si no especificamos las columnas entonces se asume que en todas las columnas se insertará el valor que definimos con INSERT.
INSERT INTO tabla VALUES (valor1, valor2, valor3, valor4...);
Si uno de los valores no está especificado entonces INSERT fallará, 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 más 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 por lo 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 si quitamos la edad, esto causará 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 más 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 fallará y actualmente borrará la antigua fila e insertara una nueva.
REPLACE fallará si esa fila no existe donde INSERT OR REPLACE siempre funcionará e insertará una nueva fila o reemplazará 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 para aprender SQL: