Category: Keys

  • Alternate Key

    The SQL Alternate Key

    SQL Alternate Keys in a database table are candidate keys that are not currently selected as a primary key. They can be used to uniquely identify a tuple(or a record) in a table.

    There is no specific query or syntax to set the alternate key in a table. It is just a column that is a close second candidate which could be selected as a primary key. Hence, they are also called secondary candidate keys.

    If a database table consists of only one candidate key, that is treated as the primary key of the table, then there is no alternate key in that table.

    Let us understand the concept of alternate key with an example. Suppose we have a table named CUSTOMERS with various fields like ID, NAME, AGE, AADHAAR_ID, MOBILE_NO and SALARY as shown below.

    Alternate

    The details like id, mobile number and aadhaar number of a customer are unique, and we can identify the records from the CUSTOMERS table uniquely using their respective fields; ID, AADHAAR_ID and MOBILE_NO. Therefore, these three fields can be treated as candidate keys.

    And among them, if one is declared as the primary key of the CUSTOMERS table then the remaining two would be alternate keys.

    Features of Alternate Keys

    Following are some important properties/features of alternate keys −

    • The alternate key does not allow duplicate values.
    • A table can have more than one alternate keys.
    • The alternate key can contain NULL values unless the NOT NULL constraint is set explicitly.
    • All alternate keys can be candidate keys, but all candidate keys can not be alternate keys.
    • The primary key, which is also a candidate key, can not be considered as an alternate key.

    Example

    For a better understanding, let us create the above discussed table demonstrating the usage of the various keys and illustrating the fields that can be considered as alternate keys.

    CREATETABLE CUSTOMERS(
       ID INT,
       NAME VARCHAR(20),
       AGE INT,
       AADHAAR_ID BIGINT,
       MOBILE_NO BIGINT,
       SALARY DECIMAL(18,2),PRIMARYKEY(ID));

    Now, insert some records into the CUSTOMERS table using the INSERT statement as shown below −

    INSERTINTO CUSTOMERS VALUES(1,'Ramesh',32,90123498456,9023456789,22000.00),(2,'Khilan',25,91123249545,9032456578,24500.34),(3,'Kaushik',23,91223242546,9012436789,20000.12);

    The table will be created as −

    IDNAMEAGEAADHAAR_IDMOBILE_NOSALARY
    1Ramesh3290123498456902345678922000.00
    2Khilan2591123249545903245657824500.34
    3Kaushik2391223242546901243678920000.12

    Keys in a table

    As a summary lets revisit all the keys in a database table −

    Candidate Key

    Candidate key is a subset of super keys that is used to uniquely identify records of a table. It can be a single field or multiple fields. The primary keys, alternate keys, foreign keys in a table are all types of candidate key.

    Primary Key

    Primary Key is a main key that is used to retrieve records from a table. It is a single column or field in a table that uniquely identifies each record in a database table.

    It can be set using the PRIMARY KEY keyword while creating a table using the CREATE TABLE statement. Following is the basic syntax to create primary key constraint on a column in a table −

    CREATETABLE table_name(
       column1 datatype,
       column2 datatype,
       column3 datatype,.....
       columnN datatype,PRIMARYKEY(column_name));

    Foreign Key

    The Primary key of one table will be the Foreign key in another table. While inserting values into these tables, values in the primary key field must match the values in the foreign key field; otherwise, the foreign key column will not accept the INSERT query and throws an error.

    In SQL server, the syntax to set a foreign key field in a table is −

    CREATETABLE table_name (
    
    column1 datatype,
    column2 datatype,...CONSTRAINT fk_name 
    FOREIGNKEY(column_name)REFERENCES referenced_table(referenced_column));

    Alternate Key

    An Alternate key is a candidate key that could be a primary key but is not. Like primary key, it also uniquely identifies the records in a field of a table to retrieve row tuples from the said table. There can be a single or multiple fields identifying as alternate keys in a table.

  • Composite Key

    The SQL Composite Key

    An SQL Composite Key is a key that can be defined on two or more columns in a table to uniquely identify any record. It can also be described as a Primary Key created on multiple columns.

    Composite Keys are necessary in scenarios where a database table does not have a single column that can uniquely identify each row from the table. In such cases, we might need to use the combination of columns to ensure that each record in the table is distinct and identifiable.

    Let us understand the composite keys with an example. Suppose if we have a table named CUSTOMERS with various fields like ID, NAME, AGE, AADHAAR_ID, MOBILE_NO and SALARY as shown below −

    Alternate

    We can select the two columns AADHAAR_ID and MOBILE_NO and define a Composite key on them, and it can be used to fetch the records of the CUSTOMERS table uniquely.

    Features of Composite Keys

    Following are some important features of the SQL Composite Key −

    • A Composite Key can be created by combining more than one Candidate Key.
    • Each Candidate Key (or column) that makes up a Composite Key may or may not be a Foreign Key. However, if all the columns of the Composite Key are Foreign Keys in their own right, then the Composite Key is known as a Compound Key.
    • A Composite Key cannot be NULL; i.e. any column of the Composite Key must not contain NULL values.
    • The individual columns making up the Composite Key can contain duplicate values, but, the combination of these columns must be unique across the database table.

    Syntax

    Following is the syntax to create an SQL Composite Key while creating a table −

    CREATETABLE table_name(
       column1 datatype,
       column2 datatype,
       column3 datatype,.....
       columnN datatype,CONSTRAINT composite_key_name,PRIMARYKEY(column_name));

    Here, the composite_key_name is the optional placeholder which holds the name of a Composite Key in a table. It is used while dropping the constraint from a table in some databases.

    Example

    In the following example, we are creating a table named CUSTOMERS with multiple columns. The Composite Key is created when a PRIMARY KEY is defined on ID and NAME columns together. Look at the query below −

    CREATETABLE CUSTOMERS(
       ID INTNOTNULL,
       NAME VARCHAR(20)NOTNULL,
       AGE INTNOTNULL,
       ADDRESS CHAR(25),
       SALARY DECIMAL(18,2),CONSTRAINT ck_customers 
       PRIMARYKEY(ID, NAME));

    Where, ck_customers is the name of a composite key of this table.

    Output

    Following is the output of the above statement −

    Query OK, 0 rows affected (0.02 sec)
    

    Verification

    As we have created a Composite Key on the columns ID and NAME of the CUSTOMERS table, the combination of values in these columns can not be duplicated. To verify it, let us insert two records with same values in these columns into the CUSTOMERS table −

    INSERTINTO CUSTOMERS VALUES(1,'Ramesh',32,'Ahmedabad',2000.00),(1,'Ramesh',25,'Delhi',1500.00);

    You can observe that the second INSERT statement generates an error message saying “Duplicate entry” as shown below −

    ERROR 1062 (23000): Duplicate entry '1-Ramesh' for key 'customers.PRIMARY'
    

    Dropping a Composite Key in MySQL

    You can drop the composite key from a table in MySQL database using the ALTER TABLE… DROP statement.

    Syntax

    Following is the syntax to drop the Composite Key in MySQL −

    ALTERTABLE table_name DROPPRIMARYKEY;

    Example

    Using the following SQL statement, we can drop the Composite Key constraint from the CUSTOMERS table −

    ALTERTABLE CUSTOMERS DROPPRIMARYKEY;

    Output

    The above SQL statement produces the following output −

    Query OK, 1 row affected (0.02 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    

    Verification

    Since, we have dropped the composite from the CUSTOMERS table, so now you can insert the duplicate values in the columns ID and NAME.

    Let us insert two records with the same ID and NAME into the CUSTOMERS table −

    INSERTINTO CUSTOMERS VALUES(1,'Ramesh',25,'Delhi',1500.00),(1,'Ramesh',23,'Kota',2000.00);

    If you retrieve the contents the CUSTOMERS table you can find the records with same ID and NAME as −

    IDNAMEAGEADDRESSSALARY
    1Ramesh32Ahmedabad2000.00
    1Ramesh25Delhi1500.00
    1Ramesh23Kota2000.00

    Dropping a Composite Key in SQL Server

    In SQL Server, we have a different syntax to drop a composite key of a table. The syntax is almost similar, but we just need to specify the composite key name in order to drop it, rather than the keyword PRIMARY KEY.

    Syntax

    Following is the syntax to drop a composite key in SQL Server −

    ALTERTABLE table_name DROP composite_key_name;

    Example

    Assuming that a composite key “ck_customers” is created on ID and NAME columns of the CUSTOMERS table, we will use the following query to drop it −

    ALTERTABLE CUSTOMERS DROP ck_customers;

    Output

    When we execute the above query, the composite key will be dropped.

    Commands completed successfully.
    

    Verification

    To verify whether we have removed the composite key from the CUSTOMERS table or not, insert duplicate values into the ID and NAME columns using the following query −

    INSERTINTO CUSTOMERS VALUES(1,'Ramesh',25,'Delhi',1500.00),(1,'Ramesh',23,'Kota',2000.00);

    As we can see in the table below, both the customers have the same ID and NAME −

    IDNAMEAGEADDRESSSALARY
    1Ramesh32Ahmedabad2000.00
    1Ramesh25Delhi1500.00
    1Ramesh23Kota2000.00

  • Foreign Key

    The SQL Foreign Key

    In SQL, a Foreign Key is a column in one table that matches a Primary Key in another table, allowing the two tables to be connected together.

    A foreign key also maintains referential integrity between two tables, making it impossible to drop the table containing the primary key (preserving the connection between the tables).

    The foreign key can reference the unique fields of any table in the database. The table that has the primary key is known as the parent table and the key with the foreign key is known as the child table.

    Let’s consider an example scenario, assume we have two tables namely CUSTOMERS (ID, NAME, AGE, ADDRES, SALARY) and ORDERS (ID, DATE, CUSTOMER_ID, AMOUNT). Here the id of the customer is primary key (ID) in the CUSTOMERS table and foreign key in the ORDERS (CUSTOMER_ID) table observe the following diagram −

    foreign key

    Features of Foreign Key

    Following is the of features of Foreign Key −

    • A Foreign Key is used to reduce the redundancy (or duplicates) in the table.
    • It helps to normalize (or organize the data in a database) the data in multiple tables.

    Syntax

    Following is the basic syntax to add Foreign Key constraints on a column of a table in MySQL database −

    CREATETABLE table_name (
    
    column1 datatype,
    column2 datatype,...CONSTRAINT fk_name 
    FOREIGNKEY(column_name)REFERENCES referenced_table(referenced_column));

    Example

    Let us create two tables with the names CUSTOMERS and ORDERS. The following query creates a table with the name CUSTOMERS −

    CREATETABLE CUSTOMERS(
       ID INTNOTNULL,
       NAME VARCHAR(20)NOTNULL,
       AGE INTNOTNULL,
       ADDRESS CHAR(25),
       SALARY DECIMAL(18,2),PRIMARYKEY(ID));

    Output

    Following is the output of the above SQL statement −

    Query OK, 0 rows affected (0.02 sec)
    

    Now, let us create the ORDERS table. While doing so, we add the foreign key constraint on column CUSTOMER_ID reference on column ID of the CUSTOMERS table as shown in the statement below −

    CREATETABLE ORDERS (
       ID INTNOTNULL,DATEDATETIME, 
       CUSTOMER_ID INT,CONSTRAINT FK_CUSTOMER 
       FOREIGNKEY(CUSTOMER_ID)REFERENCES CUSTOMERS(ID),
       AMOUNT DECIMAL,PRIMARYKEY(ID));

    Output

    The above statement produces the following output −

    Query OK, 0 rows affected (0.04 sec)
    

    Verification

    We have created a Foreign Key Constraint on a column named CUSTOMER_ID in the ORDERS table that references the column named ID of the CUSTOMERS table; so you can’t drop table1 (CUSTOMERS) before dropping the table2 (ORDERS).

    First of all, let’s drop the CUSTOMERS table without dropping the ORDERS table using the DROP TABLE statement −

    DROPTABLE CUSTOMERS;

    If you verify the error message below, you will observe that it says that the table can not be dropped because it is referenced by a FOREIGN KEY constraint −

    ERROR 3730 (HY000): Cannot drop table 'customers' referenced by a foreign key constraint 'FK_CUSTOMER' on table 'orders'.
    

    Foreign Key Constraint on an Existing Column

    We can also create a Foreign key constraint on a column of an existing table. This is useful when you forget to add a Foreign Key constraint on a column while creating a table, or when you want to add this constraint on another column even if one Foreign Key column exists in a table.

    Syntax

    Using the ALTER TABLE statement we can add a Foreign Key constraint on an existing column in a table in MySQL database as shown below −

    ALTERTABLE TABLE2 
    ADDCONSTRAINT[symbol]FOREIGNKEY(column_name)REFERENCES TABLE1(column_name);

    Here, FK_ORDERS is the name of the foreign key constraint. It is optional to specify the name of a constraint but it comes in handy while dropping the constraint.

    Example

    Assume the CUSTOMERS and ORDERS tables have already been created in the SQL database. Now, we will add a Foreign Key Constraint on the ID column of the ORDERS table.

    Following is the SQL query to add the foreign key constraint on an the column of an existing table −

    ALTERTABLE ORDERS 
    ADDCONSTRAINT FK_ORDERS 
    FOREIGNKEY(ID)REFERENCES CUSTOMERS(ID);

    Output

    Following is the output of the above program −

    Query OK, 0 rows affected (0.04 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    

    Verification

    We have created a Foreign Key Constraint on a column named CUSTOMER_ID in the ORDERS table that references the column name ID of the CUSTOMERS table. So, you can’t drop table1 (CUSTOMERS) before dropping the table2 (ORDERS).

    First of all, let us drop the CUSTOMERS table without dropping the ORDERS table by executing the following statement −

    DROPTABLE CUSTOMERS;

    This generates an error message saying that the table can not be dropped because it is referenced by a FOREIGN KEY constraint −

    ERROR 3730 (HY000): Cannot drop table 'customers' referenced by a foreign key constraint 'FK_CUSTOMER' on table 'orders'.
    

    Dropping a FOREIGN KEY

    You can drop the foreign key from a table, without dropping that entire table, using the ALTER TABLE statement.

    Syntax

    Following is the syntax to drop the FOREIGN key constraint from the column of the table using the ALTER TABLE statement−

    ALTERTABLE table_name DROPFOREIGNKEY(constraint symbol);

    Where, FK_NAME is the name of the foreign key constraint you need to drop.

    Example

    The SQL query to drop the foreign key constraint from the column of a table is as follows −

    ALTERTABLE ORDERS DROPFOREIGNKEY FK_ORDERS;

    Output

    Following is the output of the above SQL query −

    Query OK, 0 rows affected (0.01 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    

    Verification

    Since we have dropped the Foreign key constraint from the ORDERS table, you can now directly drop the CUSTOMERS table without dropping the ORDERS table, as shown below −

    DROPTABLE CUSTOMERS;

    If you verify the below status code thrown by the above SQL command, you observe that the CUSTOMERS table has dropped.

    Query OK, 0 rows affected (0.02 sec)
    

    Primary Key vs Foreign Key

    Even though both the primary key and foreign key refer to the same column, there are many differences to be observed in the way they work. They are listed below −

    Primary KeyForeign Key
    The primary key is always unique.The foreign key can be duplicated.
    The primary key can not be NULL.The Foreign can be NULL.
    A table can contain only one Primary Key.We can have more than one Foreign Key per table.
  • Primary Key

    The SQL Primary Key

    The SQL Primary Key is a column (or combination of columns) that uniquely identifies each record in a database table. The Primary Key also speeds up data access and is used to establish a relationship between tables.

    Even though a table can only have one Primary Key, it can be defined on one or more fields. When a primary key is created on multiple fields of a table, it is called a Composite Key.

    Let us say, you are developing an application called “Customer Management System” to handle all the customer data of a member-only resort. This data can include their personal details, assigned member IDs, other details of the membership they opted, etc. And in all the tables created within this database, the member ID is used to distinguish the customers from each other. So, this field will be the Primary Key.

    Following is the diagram of a CUSTOMERS table that holds the personal details of the customers. And as we can observe, the primary key is defined on the CUST_ID column. Using this primary key, we can retrieve a unique record of any customer.

    Primary Key

    Points to Remember

    Here are some key points of the PRIMARY KEY −

    • It contains only a unique value.
    • It can not be null.
    • One table can have only one Primary Key.
    • A primary key length cannot be more than 900 bytes.

    Creating an SQL Primary Key

    While creating a table using the CREATE TABLE statement, you can add the primary key constraint on a particular column of the table just by to specifying the name of the column along with the keyword “PRIMARY KEY”.

    Syntax

    Following is the syntax to define a column of a table as a primary key −

    CREATETABLE table_name(
       column1 datatype,
       column2 datatype,
       column3 datatype,.....
       columnN datatype,PRIMARYKEY(column_name));

    Example

    In the following example, we are trying to create a table with the name CUSTOMERS with various fields in an SQL database. While creating the table, we will add the constraint “PRIMARY KEY” on the column named ID.

    CREATETABLE CUSTOMERS (
       ID INTNOTNULL,
       NAME VARCHAR(20)NOTNULL,
       AGE INTNOTNULL,
       ADDRESS CHAR(25),
       SALARY DECIMAL(18,2),PRIMARYKEY(ID));

    Output

    Following is the output of the above SQL statement −

    Query OK, 0 rows affected (0.03 sec)
    

    Verification

    As we know primary key value must be unique, so you can not insert the record with the same ID. Here, we will verify the constraint created on the ID column, by inserting records with duplicate ID values.

    First of all, let’s insert a record into the CUSTOMERS table −

    INSERTINTO CUSTOMERS VALUES(3,'Kaushik',23,'Kota',2000.00);

    Now, let’s insert one more record with same ID −

    INSERTINTO CUSTOMERS VALUES(3,'Chaitali',25,'Mumbai',6500.00);

    As we have mentioned above, if any field/column is defined as Primary Key in a database table, two records can not have the same value in that column/field. Therefore, the second insert statement generates the following error −

    ERROR 1062 (23000): Duplicate entry '3' for key 'customers.PRIMARY'
    

    Similarly, a primary key column cannot contain null values. Here, using the INSERT statement we are passing a NULL value to the primary key column (ID).

    INSERTINTO CUSTOMERS VALUES(NULL,'Komal',22,'Hyderabad',4500.00);

    This statement generates the following error −

    ERROR 1048 (23000): Column 'ID' cannot be null
    

    Creating Primary Key on an Existing Column

    We can also add the PRIMARY KEY constraint on an existing column of a table using the ALTER TABLE statement.

    Syntax

    Following is the syntax to create a primary constraint on existing columns of a table −

    ALTERTABLE table_name ADDCONSTRAINTPRIMARYKEY(column_name);

    Example

    In this example, we are adding the PRIMARY KEY constraint on the NAME column of the existing CUSTOMERS table −

    ALTERTABLE CUSTOMERS ADDCONSTRAINTPRIMARYKEY(NAME);

    Output

    Following is the output of the above statement −

    Query OK, 0 rows affected (0.05 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    

    Dropping an SQL Primary Key

    If you can add a Primary Key Constraint to a column in the table, you can drop it as well. This is done by using the ALTER TABLE… DROP statement.

    Syntax

    Following is the syntax of the ALTER TABLE statement to can drop the Primary key constraints from the column of a table −

    ALTERTABLE table_name DROPPRIMARYKEY;

    Example

    Let us consider the CUSTOMERS table where we have created a primary key constraint on a column named ID. You can drop this constraint from the column ID by executing the following statement −

    ALTERTABLE CUSTOMERS DROPPRIMARYKEY;

    Output

    The above SQL query produces the following output −

    Query OK, 1 row affected (0.03 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    

    Verification

    As we have dropped the Primary key from the column named ID, we can insert multiple records with the same ID. Following statement inserts four records with the same ID −

    INSERTINTO CUSTOMERS VALUES(3,'Chaitali',25,'Mumbai',6500.00),(3,'Hardik',27,'Bhopal',8500.00),(3,'Komal',22,'Hyderabad',4500.00),(3,'Muffy',24,'Indore',10000.00);

    If you verify the content of this table, you can find multiple records with same ID −

    SELECT*FROM CUSTOMERS;

    The table will be displayed as −

    IDNAMEAGEADDRESSSALARY
    3Kaushik23Kota2000.00
    3Chaitali25Mumbai6500.00
    3Hardik27Bhopal8500.00
    3Komal22Hyderabad4500.00
    3Muffy24Indore10000.00

  • Unique Key

    The SQL Unique Key

    The SQL Unique Key (or, Unique constraint) does not allow duplicate values in a column of a table. It prevents two records from having same values in a column.

    Unique Key is just an alternative to the Primary Key; as both Unique and Primary Key constraints ensure uniqueness in a column of the table.

    Suppose we have a table named CUSTOMERS to store the customer records in a Bank and if one of the column names is MOBILE_NO then, we can create a UNIQUE constraint on this column to prevent the entry of multiple records with the same mobile number.

    Features of Unique Keys

    Following is the list of some key features of the Unique Key in an SQL database −

    • The unique key is similar to the primary key in a table, but it can accept NULL values, whereas the primary key does not.
    • It accepts only one NULL value.
    • It cannot have duplicate values.
    • It can also be used as a foreign key in another table.
    • A table can have more than one Unique column.

    Creating SQL Unique Key

    You can create a Unique Key on a database table using the UNIQUE keyword in SQL. While creating a database table, specify this SQL keyword along with the column (where this key needs to be defined on).

    Syntax

    Following is the syntax to create a UNIQUE key constraint on a column in a table −

    CREATETABLE table_name(
       column1 datatype UNIQUEKEY,
       column2 datatype,..........
       columnN datatype
    );

    Example

    Using the following SQL query, we are creating a table named CUSTOMERS with five fields ID, NAME, AGE, ADDRESS, and SALARY in it. Here, we are creating a Unique Key on the ID column.

    CREATETABLE CUSTOMERS (
       ID INTNOTNULLUNIQUEKEY,
       NAME VARCHAR(20)NOTNULL,
       AGE INTNOTNULL,
       ADDRESS CHAR(25),
       SALARY DECIMAL(18,2));

    Output

    Following is the output of the above SQL statement −

    Query OK, 0 rows affected (0.03 sec)
    

    Verification

    Since we have created a UNIQUE constraint on the column named ID, we cannot insert duplicate values in it. Let us verify by inserting the following records with duplicate ID values into the CUSTOMERS table −

    INSERTINTO CUSTOMERS VALUES(1,'Ramesh',32,'Ahmedabad',2000.00),(1,'Khilan',25,'Delhi',1500.00);

    On execution, following error is displayed proving that the UNIQUE constraint is indeed defined on the ID column −

    ERROR 1062 (23000): Duplicate entry '1' for key 'customers.ID'
    

    Multiple Unique Keys

    We can create one or more Unique Keys on one or more columns in an SQL table.

    Syntax

    Following is the syntax to create unique key constraints on multiple columns in a table −

    CREATETABLE table_name(
       column1 datatype UNIQUEKEY,
       column2 datatype UNIQUEKEY,..........
       columnN datatype
    );

    Example

    Assume we have created a table with the name CUSTOMERS in the SQL database using CREATE TABLE statement. A Unique key is defined on columns ID and NAME using the UNIQUE keyword as shown below −

    CREATETABLE BUYERS (
       ID INTNOTNULLUNIQUEKEY,
       NAME VARCHAR(20)NOTNULLUNIQUEKEY,
       AGE INTNOTNULL,
       ADDRESS CHAR(25),
       SALARY DECIMAL(18,2));

    Output

    Following is the output of the above SQL statement −

    Query OK, 0 rows affected (0.03 sec)
    

    Verification

    Since we have created a UNIQUE constraint on the column named ID and NAME, we cannot insert duplicate values in it. Let us verify by inserting duplicate records into the BUYERS table using the following INSERT statement −

    INSERTINTO BUYERS VALUES(1,'Ramesh',32,'Ahmedabad',2000.00),(1,'Rajesh',25,'Delhi',1500.00);

    Following error is displayed −

    ERROR 1062 (23000): Duplicate entry '1' for key 'customers.ID'
    

    In the same way if you try to insert the another record with duplicate value for the column NAME as −

    INSERTINTO BUYERS VALUES(2,'Ramesh',36,'Chennai',1700.00);

    Following error is generated −

    ERROR 1062 (23000): Duplicate entry 'Ramesh' for key 'buyers.NAME'
    

    Unique Key on an Existing Column

    Until now, we have only seen how to define a Unique Key on a column while creating a new table. But, we can also add a unique key on an existing column of a table. This is done using the ALTER TABLE… ADD CONSTRAINT statement.

    Syntax

    Following is the syntax to create a unique constraint on existing columns of a table −

    ALTERTABLE table_name ADDCONSTRAINT 
    UNIQUE_KEY_NAME UNIQUE(column_name);

    Note − Here the UNIQUE_KEY_NAME is just the name of the UNIQUE KEY. It is optional to specify and is used to drop the constraint from the column in a table.

    Example

    In this example, we add a Unique Key on the ADDRESS column of the existing CUSTOMERS table −

    ALTERTABLE CUSTOMERS ADDCONSTRAINT 
    UNIQUE_ADDRESS UNIQUE(ADDRESS);

    Output

    Following is the output of the above statement −

    Query OK, 0 rows affected (0.05 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    

    Dropping an SQL Unique Key

    If you have already created a unique key on a column, you can drop it whenever it is not needed. To drop the Unique Key from the column of a table, you need to use the ALTER TABLE statement.

    Syntax

    Following is the SQL query to drop the UNIQUE constraint from the column of a table −

    ALTERTABLE table_name DROPCONSTRAINT UNIQUE_KEY_NAME;

    Example

    Consider the CUSTOMERS table created above, we have created the UNIQUE constraints on three columns named ID, NAME and ADDRESS; drop the UNIQUE constraints from the column ADDRESS by executing the following SQL query −

    ALTERTABLE CUSTOMERS DROPCONSTRAINT UNIQUE_ADDRESS;

    Output

    Following is the output of the above statement −

    Query OK, 0 rows affected (0.01 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    

    Verification

    Now, let us insert two duplicate records of column ADDRESS −

    INSERTINTO CUSTOMERS VALUES(1,'Ramesh',32,'Ahmedabad',2000.00),(2,'Khilan',25,'Ahmedabad',1500.00);

    If you verify the contents of the table, you can observe that both the records have the same ADDRESS as shown below −

    IDNAMEAGEADDRESSSALARY
    1Ramesh32Ahmedabad2000.00
    2Khilan25Ahmedabad1500.00