En este post de base de datos en MySQL te mostraré cómo crear una tabla con relaciones, es decir, un ejemplo de uso para que puedas guiarte. Simplemente vamos a relacionar dos tablas usando foreign key y primary key.
Vamos a relacionar las tablas en el momento de la creación de las mismas.
Si solo vienes por la sintaxis o un ejemplo simple para relacionar tablas, recuerda que en la principal debes declarar un id (puede ser autoincrementable) que sea la primary key:
CREATE TABLE tabla(
id bigint unsigned not null primary key auto_increment,
otro_campo varchar(255) not null
);
Presta atención al tipo de dato. En este caso es un bigint unsigned
. Ahora en la otra tabla haces dos cosas; declaras el id de la tabla a la que te refieres, y luego usas foreign key
para indicar la relación:
CREATE TABLE otra_tabla(
id bigint unsigned not null primary key auto_increment,
un_campo varchar(255) not null,
id_tabla_principal bigint unsigned not null,
foreign key (id_tabla_principal) references tabla(id) on delete cascade on update cascade
);
Si te fijas, estamos declarando también el id propio de la segunda tabla.
Lo que crea la relación es declarar el campo id_tabla_principal
que relacionará a la otra tabla, y la relación se indica usando foreign key
indicando que se va a usar la columna id_tabla_principal
la cual se refiere a la columna id
dentro de la tabla llamada tabla
.
De este modo puedes relacionar varias tablas entre sí, ya sea con un campo, dos, o más. En el ejemplo voy a relacionar más tablas.
Lo que vamos a hacer para ejemplificar es relacionar 3 tablas. Las segundas no tienen relación entre sí, pero la tercera las va a tener una relación de ambas:
CREATE TABLE estudiantes(
id bigint unsigned not null primary key auto_increment,
nombre varchar(255) not null,
grupo varchar(255) not null
);
CREATE TABLE materias(
id bigint unsigned not null primary key auto_increment,
nombre varchar(255) not null
);
CREATE TABLE notas_estudiantes_materias(
id bigint unsigned not null primary key auto_increment,
id_estudiante bigint unsigned not null,
id_materia bigint unsigned not null,
puntaje decimal(9,2) not null,
foreign key (id_estudiante) references estudiantes(id) on delete cascade on update cascade,
foreign key (id_materia) references materias(id) on delete cascade on update cascade
);
En este caso es para relacionar estudiantes, notas y materias. Es un ejemplo sencillo que convertido a diagrama se ve así:
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.