Anuncios

Bienvenidos sean a este post, hoy veremos el primero de una serie de comandos particulares de las tablas.

Anuncios

Este comando es el encargado de ingresar informacion en nuestras tablas porque hasta ahora vimos como crearlas, como eliminarlas y como modificarlas pero nunca vimos como ingresar informacion en ellas, este comando tiene varias formas de pasar la informacion pero despues les dire cual es mi favorita, veamos las sintaxis posibles:

INSERT [LOW PRIORITY | DELAYED | HIGH PRIORITY] [IGNORE]
    [INTO] nombre_tabla (columnas_de_la_tabla)
    {VALUES | VALUE} ({valores | DEFAULT});
Anuncios
INSERT [LOW PRIORITY | DELAYED | HIGH PRIORITY] [IGNORE]
    [INTO] nombre_tabla {VALUES | VALUE} ({valores | DEFAULT});
Anuncios
INSERT [LOW PRIORITY | DELAYED | HIGH PRIORITY] [IGNORE]
    [INTO] nombre_tabla SET nombre_col={valores | DEFAULT}, nombre_col=...;
Anuncios

Vamos a hablar de los modificadores que son opcionales:

  • LOW PRIORITY, establece que este comando de escritura tendra baja prioridad en el momento de bloqueo de las bases
  • HIGH PRIORITY, hace exactamente lo opuesto a lo anterior, es el valor predeterminado de las ejecuciones
  • DELAYED, es para informarle al servidor que esta bien que se retrase un poco la ejecucion
  • IGNORE, permite convertir errores en avisos y no impide la ejecucion del comando
  • INTO, se sigue usando para mantener compatibilidad con declaraciones viejas de SQL pero es opcional
Anuncios
Anuncios

Despues son mas o menos similares con diferencias sutiles pero siempre despues del INSERT ira el nombre de la tabla, para dar comienzo a las diferencias, en el primer caso pasamos entre parentesis todas las columnas de la tabla en el mismo orden que esta, despues usaremos a VALUES o VALUE lo cual es indistinto de la cantidad que enviemos, para finalmente por medio de otro parentesis enviaremos todos los valores de cada columna en el mismo orden que las informada en el otro parentesis, si las columnas poseen un valor predeterminado podemos usar la palabra DEFAULT para que la complete con dicho valor.

Anuncios

La segunda forma es igual a la anterior pero sin informar las columnas pero los valores del parentesis si o si deben respetar el orden de la base porque de lo contrario nos devolvera un error ante cualquier incompatibilidad, por ultimo tenemos el caso donde por medio de SET pasaremos columna por columna y el valor asociado, esta puede ser la mas segura pero en caso de tablas con muchos valores puede ser la menos practica.

Anuncios
Anuncios

Des las tres opciones yo siempre me decanto por la primera porque me permite tener de un vistazo las columnas de la tabla, esto es para el caso donde tenemos que ejecutar el query en otro codigo (p.e PHP) y nos evita tener que repasarlas y ante cualquier error nos puede dar una mano y descubrir el porque, la segunda y tercer opcion son practicas para el interprete y si tenemos pocas columnas pero eso siempre deben adecuarlo a sus necesidades, veamos un ejemplo de cada uno:

MariaDB [base1]> insert into tabla3
    -> (id, nombre, apellido, correo, edad, ciudad)
    -> values
    -> (NULL,'Martin','Miranda','tinchicus@gmail.com',45,'Santa Monica');
Anuncios

Este es el caso que mas me gusta a mi, porque tenemos todo completamente identificado y ante una eventualidad podemos ver donde fue la falla, veamos el siguiente caso:

MariaDB [base1]> insert into tabla3 value
    -> (NULL,'Enzo','Tortore','elgary@tinchicus.com',33,'Cordoba');
Anuncios
Anuncios

Como pueden ver es exactamente lo mismo pero omitimos el parentesis de las columnas, si respetamos el orden de los valores no ocurrira nada, si se preguntan porque el primer valor es NULL esto es debido a que esta tabla tiene como primer campo uno que sirve de id interno del valor que tambien es la clave primaria y se autoincrementa, por lo tanto para evitar conflictos lo pasamos como nulo para que el sistema lo maneje a su manera, tiene sus inconvenientes pero en general es lo mas practico y rapido para hacer, por ultimo tenemos el tercer caso:

MariaDB [base1]> insert into tabla3
    -> set nombre='DarkZero', apellido='Aleman',
    -> correo='dark@tinchicus.com', edad = 32,
    -> ciudad = 'Miskatonic';
Anuncios

Como pueden ver puede resultar mas practico hacerlo de esta forma pero si son muchas columnas nos puede generar un error al pasarlas y podemos repetir sin querer alguna, lo bueno es que por ejemplo no debimos pasar la que representa a id y por lo tanto la paso como NULL para que trabaje el AUTO_INCREMENT, vamos a ver un ejemplo mas:

MariaDB [base1]> insert into tabla3
    -> set nombre='Ariel', apellido='Polizzi',
    -> correo='polizzia@tinchicus.com', edad = 47,
    -> ciudad = 'San Fernando';
Anuncios

Si ejecutamos este comando nos devolvera el siguiente error:

ERROR 1406 (22001): Data too long for column 'correo' at row 1
Anuncios

Esto es debido a que el correo es demasiado largo y se excede del limite que establecimos, para solucionarlo vamos a agregar lo siguiente:

MariaDB [base1]> insert ignore into tabla3
    -> set nombre='Ariel', apellido='Polizzi',
    -> correo='polizzia@tinchicus.com', edad = 47,
    -> ciudad = 'San Fernando';
Query OK, 1 row affected, 1 warning (0.010 sec)

MariaDB [base1]>
Anuncios

Es lo mismo que hicimos anteriormente pero con la palabra ignore para que nos transforme el error en un aviso pero lo ejecute igualmente, esto como dijimos en otros posts usenlo para cuando necesitamos ejecutarlo masivamente via un script y necesitamos que no se detenga dado que despues lo podemos solucionar en cada caso, con esto ya podemos ingresar los valores a nuestras tablas, antes de terminar veamos como quedo el contenido de la misma:

+----+----------+----------+----------------------+------+--------------+
| id | nombre   | apellido | correo               | edad | ciudad       |
+----+----------+----------+----------------------+------+--------------+
|  1 | Martin   | Miranda  | tinchicus@gmail.com  |   45 | Santa Monica |
|  2 | Enzo     | Tortore  | elgary@tinchicus.com |   33 | Cordoba      |
|  3 | DarkZero | Aleman   | dark@tinchicus.com   |   32 | Miskatonic   |
|  4 | Ariel    | Polizzi  | polizzia@tinchicus.c |   47 | San Fernando |
+----+----------+----------+----------------------+------+--------------+
Anuncios

Para ver el contenido de una tabla es una comando muy especial pero que necesita todo un post para el solo el cual veremos mas adelante.

Anuncios

En resumen, hoy hemos visto como ingresar valores a nuestras tablas, como son sus posibles sintaxis, en que se diferencian unos de otros, sus pros y sus contras, despues vimos un par de ejemplos de como se carga informacion con cada uno de ellos y el uso de ignore, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50