Para entender lo que son las claves for�neas, tal vez sea necesario entender primero lo que son las claves primarias.
Es un hecho que las claves juegan un papel muy importante no s�lo en MySQL, sino en cualquier base de datos relacional. De manera simple, las claves proporcionan una manera r�pida y eficiente de buscar datos en una tabla, adem�s de que permiten preservar la integridad de los datos.
Una clave candidata es un campo, o una combinaci�n de campos, que identifican de manera �nica un registro de una tabla. �stas no pueden contener valores nulos, y su valor debe ser �nico.
Una clave primaria es una clave candidata que ha sido dise�ada para identificar de manera �nica a los registros de una tabla a trav�s de toda la estructura de la base de datos.
La selecci�n de una clave primaria es muy importante en el dise�o de una base de datos, ya que es un elemento clave de los datos que facilita la uni�n de tablas y el concepto total de una base de datos relacional.
Las claves primarias deben ser �nicas y no nulas, de manera que garanticen que una fila de una tabla pueda ser siempre referenciada a trav�s de su clave primaria.
MySQL requiere que se especifique NOT NULL para las columnas que se van a utilizar como claves primarias al momento de crear una tabla.