From: Weasley on
A foreign key in a My Sql database is a field (or fields) of a table
that points to a primary key of an other table. Such keys are defined
in a database to ensure that only fields that supposed to appear in a
database may be permitted.

What is their requirement ? Why are they useful ?

For enhancing the referential integrity of your database, you need
foreign key. Read more on how they are defined and created. Learn
through some examples.

http://sulabhjain.wordpress.com/2010/02/01/foreign-keys-and-referential-integrity-in-database/