Please enable JavaScript.
Coggle requires JavaScript to display documents.
Manejo de Tablas y Llaves Foráneas - Coggle Diagram
Manejo de Tablas y Llaves Foráneas
Llaves Foráneas
Para manejar las llaves foráneas, deben crearse al menos dos tablas
Primera tabla:
CREATE TABLE nombre_tabla (
nombre_columna_1 TIPO AUTO_INCREMENT PRIMARY KEY,
nombre_columna_2 TIPO,
nombre_columna_3 TIPO
) ENGINE=InnoDB
segunda tabla
) ENGINE=InnoDB
nombre_tabla_referencia (nombre_columna_referencia)
FOREIGN KEY (nombre_llave_foranea) REFERENCES
nombre_llave_foranea TIPO NOT NULL,
nombre_columna_1 TIPO,
CREATE TABLE nombre_tabla_1 (
Llave primaria
CREATE TABLE nombre_tabla_1 (
nombre_columna_primaria TIPO AUTO_INCREMENT PRIMARY KEY,
nombre_columna_1 TIPO,
nombre_llave_foranea TIPO NOT NULL,
FOREIGN KEY (nombre_llave_foranea) REFERENCES
nombre_tabla_referencia (nombre_columna_referencia)
) ENGINE=InnoDB
Restricciones con las Llaves Foráneas
Es posible indicar restricciones para cuando se realicen operaciones entre las tablas que están unidas a través de llaves foráneas. La primera restricción es que no se puede insertar un elemento en una tabla que contiene una llave foránea a menos que el valor al que se haga referencia exista en la tabla a la que se hace referencia. Esa restricción es automática, sin embargo hay otras que se deben especificar, en particular cuando se elimina o se actualiza un valor, para esto se utiliza la estructura ON DELETE para la eliminación u ON UPDATE para una actualización seguido de alguno de los siguientes modificadores:
• RESTRICT: no permite eliminar o modificar filas en la tabla referenciada si existen filas con el mismo valor de clave foránea.
• CASCADE: el borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica borrar las filas con el mismo valor de clave foránea o modificar los valores de esas claves foráneas.
• SET NULL: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica asignar el valor NULL a las claves foráneas con el mismo valor.
• NO ACTION: las claves foráneas no se modifican, ni se eliminan filas en la tabla que las contiene
• SET DEFAULT: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado implica asignar el valor por defecto a las claves foráneas con el mismo valor.
CREATE TABLE nombre_tabla_1 (
nombre_columna_1 TIPO,
nombre_llave_foranea TIPO NOT NULL,
FOREIGN KEY (nombre_llave_foranea) REFERENCES
nombre_tabla_referencia (nombre_columna_referencia)
ON DELETE RESTRICT) ENGINE=InnoDB
Operación Join
Esto regresará los elementos de la tabla tabla_A y de la tabla_B que coincidan en el atributo (columna).
SELECT * FROM tabla_A JOIN tabla_B USING(columna)
Si no existe el mismo atributo, se puede realizar lo mismo usando la expresión:
SELECT * FROM tabla_A JOIN tabla_B WHERE (tabla_A .columna_A = tabla_B.columna_B)
Versañez Soto Pablo Alejandro 2°B Vespertino
Manejo de Llaves Foráneas
Para esto se agrega la palabra CONSTRAINT seguido del nombre de la restricción antes de declarar la
llave foránea como se vio anteriormente.
CREATE TABLE nombre_tabla_1 (
nombre_columna_1 TIPO,
nombre_llave_foranea TIPO NOT NULL,
CONSTRAINT nombre_restriccion FOREIGN KEY (nombre_llave_foranea) REFERENCES
nombre_tabla_referencia (nombre_columna_referencia)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB
Para eliminar la relación, no se eliminan las columnas como tal, se elimina la relación (eliminando la
restricción).
ALTER TABLE nombre_tabla DROP FOREIGN KEY nombre_restriccion
Producto cartesiano
FROM nombre_tabla_1,nombre_tabla_2
nombre_tabla_1.columna_3, nombre_tabla_2.columna_1, nombre_tabla_2.columna_2
SELECT nombre_tabla_1.columna_1, nombre_tabla_1.columna_2,
Para consultar varias columnas de diferentes tablas se puede utiliza la siguiente sintaxis :
Regresará el producto Cartesiano de las dos tablas, es equivalente a la operación CROSS JOIN
SELECT * FROM nombre_tabla_1,nombre_tabla_2