Saltar la navegación

4.3. Insertar con INSERT

INSERT INTO Categorias VALUES (9, "Legumbres", "Guisantes, garbanzos, lentejas y habas", NULL);

La línea anterior también podría escribirse de las siguientes maneras:

INSERT INTO Categorias(IdCategoria, NombreCategoria, Descripcion, Imagen) VALUES (9, "Legumbres", "Guisantes, garbanzos, lentejas y habas", NULL);

INSERT INTO Categorias(IdCategoria, NombreCategoria, Descripcion) VALUES (9, "Legumbres", "Guisantes, garbanzos, lentejas y habas");

INSERT INTO Categorias(NombreCategoria, Descripcion, IdCategoria) VALUES ("Legumbres", "Guisantes, garbanzos, lentejas y habas", 9);

Pero también...

En la última línea se han variado el orden. Esto no tiene importancia siempre que se pongan los valores en el mismo orden que las columnas declaradas.

El utilizar la opción de poner una lista de columnas tiene ventajas sobre todo cuando la sentencia la vamos a almacenar y reutilizar:

  • la sentencia queda más fácil de interpretar viendo qué valor asignamos a qué columna,
  • nos aseguramos que el valor lo asignamos a la columna que queremos,
  • si cambia el orden de las columnas en el diseño de la tabla, no afecta a la sentencia. En caso contrario, estaría intentando asignar valores a otra columna, produciendo errores de 'tipo no corresponde' y lo que es peor podría asignar valores erróneos,
  • si se añade una nueva columna a la tabla en el diseño, la primera sentencia INSERT daría error ya que el número de valores no corresponde con el número de columnas de la tabla, mientras que la última INSERT no daría error y en la nueva columna se insertaría el valor predeterminado.