Insert
La sentencia insert nos permitirá insetar filas a la base de datos, tenemos por el momento dos tablas creadas, la tabla PAIS y la tabla CIUDAD. La tabla PAIS, tiene la siguiente estructura
Utilizaremos la sentencia INSERT para insertar un nuevo registro y después explicaremos la sentencia. ¿Les parece?
Ejercicio 1:
Insertar una
nueva fila en la tabla en la tabla PAIS
de la base de datos PAISES utilizando la sentencia INSERT
insert into pais values ('MEX', 'México', '18210921');
Como vemos en la sentencia se usa la insert into + nombre tabla + values, los campos de la tabla se sustituyen por los valores que ingresaremos, tal en el orden en el que estan creados, por ejemplo el primer campo es cod_pais y su valor será México, es importante observar que el campo va entre comillas simples(''), esto es porque cuando insertamos un campo que contiene texto, siempre lo ingresaremos entre comillas, el siguiente campo es nombre y lo sustuiremos por el dato México, también es texto y va entre comillas, el siguiente dato es fecha_independencia, y lo suplimos por 18210921, tambien entre comillas, y con formato yyyymmdd, no olviemos el punto y coma del final, y ejecutamos la consulta.
Ahora veremos la manera de decirle al programa que nos muestre los datos ingresados en la tabla y para eso veremos la sentencia SELECT, tambien le dedicaremos varios capitulos a esa sentencia, ahorita por el momento basta con que sepan la siguiente instrucción:
Ejercicio 2
Mostrar los registros de
la tabla PAIS utilizando a sentencia SELECT
select * from pais;
En lenguaje natural le estamos diciendo al MySQL que nos seleccione (SELECT) todos (*) los registros en la tabla PAIS
Al ejecutar la sentencia obtenemos la siguiente respuesta:
Si se fijan sobre el campo cod_pais aparece una llave, esto es porque definimos el campo cod_pais como llave primaria (PRIMARY KEY), la primary key segun vimos el post pasado es el identificador del registro, esto es que no es posible tener otro cod_pais 'MEX', ya que habría duplicidad y una de las politicas en base de datos es la NO Duplicidad de información. ¿Que pasa si quiero insertar nuevamente ese registro? Ejecutemos nuevamente la sentencia insert into
insert into pais values ('MEX', 'México', '18210921');
Al ejecutarla, el sistema nos muestra el siguiente error:
Como ven, el error se refiere a que se intenta duplicar el valor de la llave primaria con el dato 'MEX', ese dato solo puede aparecer una vez, convirtiéndose así en el campo identificador o campo único, como les dije el post pasado, la llave primaria puede estar comprendida por uno, o por varios campos, en este caso es un solo campo.
Vamos ahora a ingresar el registro a la base de datos de alguna ciudad de México, la estructura de la tabla es como sigue:
Utilizaremos la sentencia INSERT para insertar un nuevo registro
Ejercicio 3
Insertar una nueva fila
a la tabla CIUDAD de la base de datos PAISES utilizando la sentencia INSERT
insert into ciudad values ('GDL', 'Guadalajara', 'MEX', false);
Como vemos insertaremos los valores en las columnas correspondientes, cod_ciudad, será 'GDL', nombre, se insertará 'Guadalajara', cod_pais, se insertará MEX, es el código del país al que pertenece la ciudad, este campo es una llave foránea, es decir es el campo que relaciona a las dos tablas, tiene que ser exactamente igual, a la tabla principal, de manera que si el código el país en la tabla PAIS es 'MEX', aquí debe ser igual, veremos este tema más adelante, capital este recordemos era un valor bool, que solo guardaba un true/false, en este caso es false, porque Guadalajara no es capital de México, no olvidamos el punto y coma (;) y ejecutamos la consulta. Ahora recuperaremos los registros de la tabla CIUDAD
Ejercicio 4
Mostrar los registros de
la tabla CIUDAD en la base de datos PAISES utilizando la sentencia SELECT
select * from ciudad;
Al ejecutar la sentencia obtenemos la siguiente respuesta:
Como ven aparecen en esta ocasión dos campos llave, el primero que es la llave principal de color amarillo es el campo cod_ciudad, esto es que es el campo llave, el campo identificador que hará único el registro, esto quiere decir que solo puede haber un cod_ciudad con valor 'GDL' en toda la tabla, y la llave foránea de color verde, que indica que el campo cod_pais, tiene relación con otra tabla. ¿Que pasa si intentamos agregar el mismo registro nuevamente?
Adivinaron, muestra un error en la llave primaria por duplicidad, nos indica que se quiere duplicar el valor GDL en la tabla y no nos lo permitirá para respetar a integridad de la información, ahora otra pregunta. ¿Que pasaría si intentamos ingresar otra ciudad en un país que no existe, es decir que no hemos agregado a la base de datos? Vamos a averiguarlo, dando de alta otra ciudad.
insert into ciudad values ('LIM', 'Lima', 'PERU', false);
Obtenemos el siguiente error
Este error hace referencia a que no se puede agregar o actualizar el registro porque hay un arror en la clave foránea, pero ya sabemos porque es, es porque no existe el país 'PERU'. Vamos a agregar el país PERU a la base de datos con la sentencia INSERT.
insert into pais values ('PERU', 'Peru', '18210728');
Una vez insertado el país PERU, procederemos a comprobarlo con la sentencia SELECT
select * from pais;
Al ejecutar la sentencia obtendremos a siguiente respuesta:
Como ven ya se inserto Perú, ahora podremos insertar la ciudad de Lima, puesto que el país con código PERU, a existe
insert into ciudad values ('LIM', 'Lima', 'PERU', false);
Comprobamos que efectivamente se agrego y utlizamos la sentencia SELECT
select * from ciudad;
Al ejecutar la sentencia obtendremos a siguiente respuesta:
Como vemos el registro ya se insertó correctamente, pero hasta que ingresamos el país con el código PERU, llegamos a la conclusión de la gran utilidad que tiene relacionar de manera correcta las tablas, esto nos aydará a mantener la integridad de la información, en post posteriores veremos como borrar registros en la base de datos y como las relaciones de las tablas afectan también el borrado de la misma.
Hasta aquí el post queridos lectores, espero que haya sido de su agrado, interés y utilidad, espero tambien comenten, compartan, den +1 o por lo menos un clic a algún anuncio que les interese.
Un abrazo!
No hay comentarios.:
Publicar un comentario