Sí, una clave externa es un tipo de restricción. MySQL tiene un soporte desigual para las restricciones:
PRIMARY KEY:sí como restricción de tabla y restricción de columna.FOREIGN KEY:sí como restricción de tabla, pero solo con motores de almacenamiento InnoDB y BDB; de lo contrario, se analizará pero se ignorará.CHECK:analizado pero ignorado en todos los motores de almacenamiento.UNIQUE:sí como restricción de tabla y restricción de columna.NOT NULL:sí como restricción de columna.DEFERRABLEy otros atributos de restricción:sin soporte.
La CONSTRAINT le permite nombrar la restricción explícitamente, ya sea para hacer que los metadatos sean más legibles o para usar el nombre cuando desee eliminar la restricción. El estándar SQL requiere que CONSTRAINT cláusula es opcional. Si lo omite, el RDBMS crea un nombre automáticamente y el nombre depende de la implementación.