En este apartado veremos la sentencia SQL usada para relacionar tablas en nuestra Base de datos de MySQL Server:
ALTER TABLE `testudio_realizado`
ADD CONSTRAINT `tcontacto_testudior`
FOREIGN KEY (`id_contacto`)
REFERENCES `bdcontactos`.`tcontacto` (
`id_contacto`)
ON DELETE NO ACTION ON UPDATE NO ACTION;
VIDEO TUTORIAL (PASO A PASO)
Este código lo podemos usar desde la consola de comandos de MySQL Server (MySQL Command Line Client), o desde los editores SQL de herramientas gráficas como MySQL Workbench y phpMyAdmin:
1- Digita la sentencia SQL en la consola de comandos de tu preferencia.
2- En la primera sección de nuestra sentencia, ALTER TABLE es una expresión reservada del lenguaje SQL para modificar una tabla en la Base de datos, por lo cual no debes cambiar dicha expresión, seguida de esta, encontramos la palabra
`testudio_realizado`
, este es el nombre de nuestra tabla en la cual se establecerá la llave foránea.Nuestra primera parte de la sentencia SQL quedaría de esta manera:
ALTER TABLE `testudio_realizado`
3- Para la segunda sección de la sentencia, encontramos la expresión
ADD CONSTRAINT
propia del lenguaje SQL para añadir una restricción (la cual implementa reglas con el fin de proteger la integridad de los datos) a una tabla; luego, encontramos la palabra `tcontacto_testudior`
y que hace referencia al nombre que queremos asignarle a la restricción, por lo cual puedes modificarla y colocar la que necesites.Teniendo en cuenta todo lo anterior, esta parte o sección del código quedaría así:
ADD CONSTRAINT
`tcontacto_testudior`
4- En la tercera sección de esta sentencia, se usará la expresión FOREIGN KEY, la cual es propia del lenguaje SQL (no debemos modificarla) y se usa para asignar y/o definir la llave foránea en una tabla; seguidamente, encontramos entre paréntesis (), la palabra `id_contacto` y que hace referencia al campo de la tabla que hará las veces de llave foránea; cabe aclarar que dicho campo deberá tener las mismas características que el campo correspondiente a la llave principal de la tabla con la cual estamos realizando la relación; en otras palabras, ambos campos deben tener el mismo tipo de datos y la misma longitud. Teniendo todo claro, esta parte del código quedaría de esta manera:
FOREIGN KEY (`id_contacto`)
5- En la siguiente línea, se usa la expresión del lenguaje SQL conocida como REFERENCES (No modificar) cuya funcionalidad es establecer como su nombre lo indica una referencia y/o relación en este caso con un campo de otra tabla. Ahora, encontraremos la palabra `bdcontactos`, con la cual indicamos o seleccionamos la base de datos sobre la que estamos trabajando, luego encontraremos un punto (.), seguidamente veremos la palabra `tcontacto` para hacer referencia a la tabla con la cual estableceremos la relación, y por último entre paréntesis () la palabra `id_contacto` la cual representa al campo que es llave primaria en la tabla `tcontacto`.
REFERENCES `bdcontactos`.`tcontacto` (`id_contacto`)
6- En la parte final de nuestra sentencia, encontramos las expresiones ON DELETE y ON UPDATE, las cuales son propias del lenguaje SQL (No modificar), y que nos permitirán establecer propiedades a la hora de realizar ciertas acciones en nuestras tablas; además, podemos observar que luego de cada expresión encontramos la palabra NO ACTION la cual podemos cambiar por otras acciones, tales como: CASCADE, SET NULL o RESTRICT; pero dependerá de nuestras necesidades y/o requerimientos (conoce un poco más acerca de cada una de estas acciones).
Para ser un poco más claros, la expresión ON UPDATE NO ACTION lo que conlleva por así decirlo, es que si un registro de nuestra tabla `tcontacto` posee relación con uno o más registros de la tabla `testudio_realizado`, en el caso dado de que queramos modificar la llave principal de dicho registro en nuestra tabla `tcontacto` no se nos permitirá, algo similar ocurre con la expresión ON DELETE NO ACTION; es decir, si tratamos de borrar el registro de la tabla `tcontacto` que contiene relación con uno o más registros de la tabla `testudio_realizado` no lo podremos realizar.
ON DELETE NO ACTION ON UPDATE NO ACTION
7- Al terminar de escribir nuestra sentencia, debemos cerrarla con punto y coma (;), esto es obligatorio principalmente si usas la consola de comandos que trae MySQL Server, y opcional en los editores SQL de entornos gráficos como MySQL Workbench y phpMyAdmin.
8- Ahora sólo basta con ejecutar tu sentencia y quedará creada la relación entre las tablas de tu Base de datos.
9- Si deseas ver cómo relacionar tablas en MySQL de forma netamente gráfica, usando entornos como phpMyAdmin y MySQL Workbench puedes visitar el siguiente enlace:
Si te fue de gran ayuda esta información, no olvides compartirla con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios. Bendiciones...
Muy bien explicado Eduardo, Excelente tu tarea, Felicitaciones y Bendiciones!
ResponderBorrar