Above guy is just right..
Basic idea behind the primary key is
Each database table must have a field or a combination of fields that holds a value that uniquely identifies each record.
For example, a customer number would uniquely identify each customer. This field or fields are called the primary key of the table. The primary key serves several purposes in a RDBMS. Because the value is unique, it ensures there are no duplicate records in the database. The primary key is also used to establish table relationships and, thereby, connect the data in related records held in different tables. Records are stored in order by the primary key.
In order to be a primary key, the field must never be null. Null means there is a missing or unknown value. A null value is not the same as a zero or a blank. In a numeric field, a zero may be a real value. Another characteristic of a primary key field is that the values in that field are rarely (ideally never) changed.
In trying to identify what the primary key should be for a table, first look for a single field that will hold a value that is unique for each record. For example, in a table holding information on orders placed with a company, there would be a field with a unique number for each order.
To summarize, the characteristics of a primary key field or fields are that its values:
* uniquely identify each record (no duplicate values);
* are never null;
* rarely (if ever) change;
* and the key includes as few fields as possible.
Primary key are very important factor while doing query tuning/performance enhancement issues with applications.
Hope this helps
Cheers:)