We know that database uses tables to organize information. To maintain data integrity (that is data should be correct and in well formed) we use concept of keys. There are five types of keys in database which is as follows -
- Candidate key
- Primary Key
- Foreign Key
- Alternate Key
- Composite Key
Example:
STUDENT {SID, FNAME, LNAME, COURSEID}
Here in STUDENT table keys are:
Candidate keys are SID or FNAME+LAME
Primary Key: SID
Foreign Key: COURSEID
Alternate Key: FNAME+LAME
Composite Key: FNAME+LAME
Candidate Key
Candidate keys are those keys which is candidate for primary key of a table. In simple words we can understand that such type of keys which full fill all the requirements of primary key which is not null and have unique records is a candidate for primary key. So thus type of key is known as candidate key. Every table must have at least one candidate key but at the same time can have several.
Primary Key
Such type of candidate key which is chosen as a primary key for table is known as primary key. Primary keys are used to identify tables. There is only one primary key per table. In SQL Server when we create primary key to any table then a clustered index is automatically created to that column.
Foreign Key
Foreign key are those keys which is used to define relationship between two tables. When we want to implement relationship between two tables then we use concept of foreign key. It is also known as referential integrity. We can create more than one foreign key per table. foreign key is generally a primary key from one table that appears as a field in another where the first table has a relationship to the second. In other words, if we had a table A with a primary key X that linked to a table B where X was a field in B, then X would be a foreign key in B.
Alternate Key
If any table have more than one candidate key, then after choosing primary key from those candidate key, rest of candidate keys are known as an alternate key of that table. Like here we can take a very simple example to understand the concept of alternate key. Suppose we have a table named Employee which has two columns EmpID and EmpMail, both have not null attributes and unique value. So both columns are treated as candidate key. Now we make EmpID as a primary key to that table then EmpMail is known as alternate key.
Composite Key
When we create keys on more than one column then that key is known as composite key. Like here we can take an example to understand this feature. I have a table Student which has two columns Sid and SrefNo and we make primary key on these two column. Then this key is known as composite key.
Very useful. Clearly explained.
Upto This time i am confused in the difference between keys but now its cleared with this documenntation
Hi
such a lovely way to represent a love with SQL Concept. I like it……
Thanks for this sweet and short answers
That was very helpful. Thanks so much
hi very nice ,clean explanation. very easy and very quick to understand ! thanx budddy :))
Good explanation.. Thanks, it helped me to prepare for my interview
I have big confusion of keys before reading this website. nice document. thank u “crazyforcode”.
can anyone explain what is superkey??
U explained it in a very simple and easy to understand lang. Thnk u very much
well explained but plz update your types of keys bcoz their are 7 types of keys…..
super key
unique key
useful piece of knowledge
helped a lot to understand the difference between the keys……..
i’m little bit confused and i’m not getting it …
Great work !!
It is very use full for me to find about info for SQL
very informative it helped me alot,,,thank U
That was very helpful. Thanks so much
Thank You !!!
Very good Explanation…
Now i understood that difference…..
Nice article,i really understand now this keys clearly.
Thanks a lot….
Tell me about Super Key !!!!!!! plz
Thnks Its too easy language to learn
Nice answer
Good,These article is very understandable ,
I was confused , composit key and candidate key , But now I have clear
Thanks
Good explanation
Thanks a bunch for this post it really helped me understand the keys better
Thanks a lot.You have explained in a fantastic way so anyone can understand it in a better way.
Its very helpfully to my study. Can you give an example of each key / please….!!!!!
really nice explanation..Thanks a lot ..
Thank u so much.. Very good explanation. Simple and useful.
SQL Composite Key
A composite key is a combination of two or more columns in a table that can be used to uniquely identify each row in the table when the columns are combined uniqueness is guaranteed, but when it taken individually it does not guarantee uniqueness.
really helpful,
thanks man , thanks a bunch…………..
very nice,thanks it really help me
Nice article, apart from the keys mentioned here ( Candidate key, Primary Key, Foreign Key, Alternate Key, Composite Key), there are additional keys
Natural key – The key which existed in the real world and is used in business purpose for identifying a record. Example – Bank account number; it is quite “natural” that when a customer walks to his bank, he prefers this details to be identified by account number rather than is customer id. The natural key may or may not be the primary key.
Surrogate key – It is the system generated candidate key, often made a primary key.
Shall we make the natural key or Surrogate key as primary key? Both are candidate keys.
The disadvantage with natural key is that it its exposed to the business, hence at times there is request to change it. Hence designing database based on natural key as primary key is not a sustainable design.
If surrogate key is considered as primary key, then the design is sustainable. Business will never ask to change the surrogate key because this value is not shared with business. The slight disadvantage is that there is an additional column of surrogate key in the table. The advantage of sustainable design overpowers the dis-advantage. So now a days, systems are designed as surrogate key as primary key.
Wow some short and well explained answers. I like it
It is very useful for me, thanks…
Thanks for making my topic clear.
Awesome……
This paragraph will help the internet viewers for creating new website or
even a weblog from start to end.
Primary key definition not satisfiable
nice article sir
Good but not so.Can do better….
Good