Special OFFER: 1st Enroll Flat 25% OFF OR 2nd Enroll Get 40% OFF | Use Coupon JTOFFER25

- SQL Server Blogs -

What is Primary Key in SQL? How to Add, Remove, Or Set Primary Key


What is a primary key in SQL? The answer to this question is a Primary Key is a special column in the relational database table that is dedicated to identifying records within a table uniquely. In other words, a single column or a set of columns that uniquely identifies each row in the table is called the Primary key or generally abbreviated as PK in the SQL. The similar concept of MySQL primary key is used in all types of database platforms.

Before you add a primary key to the database, you should add primary key constraints first. In case, there are multiple columns used as the primary key then it is named as the composite primary key but make sure that you are using a few columns only.

The Primary Key is good in both performance and storage. The more columns you use as the primary key, the more storage you need generally. When we are talking about the performance, then less data generally leads to better performance standards.

What are the Features?

  • What is a primary key in sql? The Primary Key in SQL works on entity integrity of one table and Foreign key in SQL works on the referential integrity of one table. You must be wondering what is a Foreign key in SQL, for more detail you should check our clog on foreign key and the related terminologies.
  • The primary key always has unique data.
  • The length of a primary key cannot be exceeded more than 900 Bytes.
  • There could not be NULL values for a primary key.
  • You could not add duplicate values to the primary key.
  • One table could have only one primary key constraint.

Time frame required to learn SQL

Learn SQL Server in the Easiest Way

  • Learn from the videos
  • Learn anytime anywhere
  • Pocket-friendly mode of learning
  • Complimentary eBook available

What is Primary Key in SQL?

A primary key is defined as the single column or a set of columns that uniquely identifies each row in the table. As soon as one primary key constraint is defined for the table, the database engine automatically creates a unique index for the primary key column. The biggest advantage of defining a primary key is that we get faster access. This is not possible adding a primary key constraint if it contains more than 32 columns.

The primary key is taken as the critical component of an efficient relational database system. In the absence of the primary key that is closely related to the Foreign key in SQL, the relational database system would not work as usual. Almost everyone deals with the primary key in their daily life unknowingly. For example, students are given unique ID no in Schools and college, employees are given a unique ID in the offices, all US citizens have uniquely identifiable social security numbers as given by the government.

Read: What Is The Difference Between The SQL Inner Join And Outer Joins?

If we will take the example of a Bank then branch code or bank name is the same for all users but they are given a unique account number for identification. In order to identify all customers uniquely, the bank makes sure two of the users should not have the same account number. In case, values are the same then they should be eliminated quickly. As soon as some column is defined as allows secure handling of data and faster method of data access too.

For example, if you are asked to tell your surname then multiple results will be displayed but with the help of primary key only one result is returned and it makes data handling much easier than your expectations.

Read: SQL Fiddle: The Best Resource to Practice SQL online

There is and another term to be considered. What is primary key clustered in SQL Server? It basically refers to a clustered index that defines the order in which rows or physically stored.

How to add a primary key in SQL?

The MySQL Primary key   is usually specified at the time of new table creation or at the time when changing the structure of the existing table using the Alter Table statement. Here, in the example below, we have given the general syntax for the primary key constraint using ‘Create Table’ and ‘Alter Table’ both.

both. Primary Key in SQLPrimary Key in SQL

A constraint is the combination of the NOT NULL and the UNIQUE constraint. It ensures that the particular column is the combination of two or more columns in a table and have a unique identity too that helps in identifying the particular record within a table more quickly and easily.

Read: What is the time-frame Required to Learn the SQL Programming?

Syntax to add a primary key for one column using Create table -

Primary Key in SQL

Syntax to add a primary key for one column on Alter table -

Primary Key in SQL

Syntax to add a primary key for multiple columns -

Primary Key in SQL

Syntax to add a primary key for multiple columns on Alter table -

Primary Key in SQL

How to set the primary keys in SQL?

Setting the MySQL primary key  in SQL is one of the important factors in database design because the choice of a primary key could have a significant impact on the performance, and usability of the entire database. Here, we have given the best practices to follow when setting the primary key in SQL to make sure that database lookups are speedy and reliable.

Read: How To Start Your Career As MSBI Developer?

Best choice to set the primary key

Best choice to set the primary key

  • Keep it Short – try to make the primary key as small as possible. It is generally needed for the database lookups and the comparisons. When it will be kept short then easy to process as compared to the long Primary Key.
  • Use a number – Put the primary key in numeric whenever possible. Numeric data is easy to process and remember as compared to the character data.
  • Never change – Once the primary key has been assigned, it should never change. In a few cases, the primary key is used as the pointer as well to refer to the other tables in a relational database system. This dependency is the reason why the primary key should never change in the SQL.
  • Make it Simple – You should not use any special characters, or symbols when defining the primary keys. Also, you should not use passport number, social security number or the employee Id because they could change for real-world situations.
  • Surrogate Keys – One of the excellent techniques for defining the primary key is using surrogate keys. These are system generated keys whose values are never defined NULL and unique for each entry.
  • Non-identifying values – One of the most common mistakes made by database designers to put intelligence when defining the primary key. Mostly, one descriptive primary key could become obsolete later.
  • Data Types – When it comes to data types, you could have plenty of choices. But you are strongly recommended using numeric data types that can process faster as compared to the character data types. Further, fixed-length data types are easy to process when compared to the variable-length data types.

Based on the conditions as specified earlier, you should match the criteria and define the primary key accordingly. The candidate that satisfies the maximum number of conditions is taken as the primary key of a table. If you don’t find any suitable candidate then consider the surrogate key as the primary key.

SQL Server Training & Certification

  • No cost for a Demo Class
  • Industry Expert as your Trainer
  • Available as per your schedule
  • Customer Support Available

Poor choices to set the Primary Key

A few database developers may consider these options the obvious choices for the primary key but we strongly recommend avoiding these values or they are taken as the poor choice instead, by experienced database developers.

Poor choices to set the Primary Key

  • ZIP CODES – you should never use the ZIP Code as the primary keys. When looking up the cities, zip code is a common choice. Based on a detailed investigation, you will quickly realize that zip codes are common in different cities and creating confusion too. For example, the New Jersey cities of Neptune, Neptune City, Tinton Falls, and Wall Township all share the 07753 ZIP code.
  • SSNs (Social Security Numbers) – SSNs don’t make good primary keys due to several reasons. Most people don’t want to make their SSNs public or clearly visible to others. At the same time, there are a few people who don’t have any social security numbers. Also, SSNs are assigned on the death of an individual. An individual could have more than one social security number in case of identity theft.
  • Email Address – This is another poor choice for the primary key. Although they are unique, it may change over time especially when it is an official ID because people keep changing their jobs after a few years. Most importantly, even in the internet age, not everyone has a unique email ID.

Read: What Is The Difference Between Tables And Views In SQL?

How to remove the primary key in SQL?

The process of removing a primary key is pretty straightforward. If you can create the primary key then there is a provision to delete it as well based on the requirements. To remove the primary key in SQL, the drop keyword is used. Here, is the syntax to remove the primary key in the SQL-

Primary Key in SQL Primary Key in SQL

SQL Server Training & Certification

  • Personalized Free Consultation
  • Access to Our Learning Management System
  • Access to Our Course Curriculum
  • Be a Part of Our Free Demo Class


Now you must be aware of what is primary key in SQL Server and as you can see that deleting a primary key in SQL is quite easier but it will remove all indexes too associated with the primary key. If the index is clustered, it means that we have a huge heap on our hands and it can affect the performance of non-clustered indexes that were pointing to the clustered indexes. Further, it will hit the performance as well based on the complexity of queries and the amount of data. So, you have to be extra careful when dropping the primary keys. You should not drop the primary key on production servers during peak hours. With this blog, you will get a deep idea of the primary key and how to create, set, or remove the primary key in SQL. A depth understanding of the concept always helps you in successful implementation and wondering database management too.

Read: SSIS Package - SSIS DB, Security and Upgrades

SQL Tutorial Overview

FaceBook Google+ LinkedIn Pinterest

    Janbask Training

    A dynamic, highly professional, and a global online training course provider committed to propelling the next generation of technology learners with a whole new way of training experience.


Trending Courses


  • AWS & Fundamentals of Linux
  • Amazon Simple Storage Service
  • Elastic Compute Cloud
  • Databases Overview & Amazon Route 53

Upcoming Class

3 days 24 Sep 2021


  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing

Upcoming Class

3 days 24 Sep 2021

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning

Upcoming Class

4 days 25 Sep 2021


  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation

Upcoming Class

10 days 01 Oct 2021


  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL

Upcoming Class

4 days 25 Sep 2021


  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing

Upcoming Class

3 days 24 Sep 2021

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum

Upcoming Class

3 days 24 Sep 2021

MS SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design

Upcoming Class

4 days 25 Sep 2021


  • Features of Python
  • Python Editors and IDEs
  • Data types and Variables
  • Python File Operation

Upcoming Class

4 days 25 Sep 2021

Artificial Intelligence

  • Components of AI
  • Categories of Machine Learning
  • Recurrent Neural Networks
  • Recurrent Neural Networks

Upcoming Class

4 days 25 Sep 2021

Machine Learning

  • Introduction to Machine Learning & Python
  • Machine Learning: Supervised Learning
  • Machine Learning: Unsupervised Learning

Upcoming Class

17 days 08 Oct 2021


  • Introduction to Tableau Desktop
  • Data Transformation Methods
  • Configuring tableau server
  • Integration with R & Hadoop

Upcoming Class

3 days 24 Sep 2021

Search Posts


Receive Latest Materials and Offers on SQL Server Course