SQL Constraints Example
Welcome readers, in this tutorial, we will understand the different SQL Constraints that maintain the data integrity inside a database table.
1. Introduction
SQL Constraints are the restrictions that help maintain the data integrity inside a database table. Constraints can be divided into column level (i.e. limiting only column data) or table level (i.e. limiting whole data in a database table). The commonly used constraints are,
NOT NULL
: This constraint restricts a column from the null valueUNIQUE
: This constraint restricts a column to have different values i.e. a column cannot have a duplicate valuePRIMARY KEY
: This constraint uniquely identifies each record in a database table. This also ensures that column values must be unique and not nullFOREIGN KEY
: This constraint unique identifies each record in a different tableCHECK
: This constraint restricts a column value if it does not satisfy the given conditionDEFAULT
: This constraint sets a default value for the column. This value is set when no value is specified by the user
To start with this tutorial, we are hoping that users at present have their preferred database installed on their machines. For easy usage, I am using MySQL on a Windows operating system. If someone needs to go through the MySQL installation, please watch this video.
2. SQL Constraints Example
Here is a systematic guide and we are using MySQL Database and Workbench.
2.1 NOT NULL Constraint
The following command will declare the id
and fullname
fields of table1
as not null i.e. these columns cannot have a null value.
1 2 3 4 5 6 | /* Query #1 :: Adding NOT NULL constraint on the table */ CREATE TABLE IF NOT EXISTS table1 ( id INT (6) NOT NULL , fullname VARCHAR (10) NOT NULL , address VARCHAR (20) ); |
If everything goes well, the table with not null constraint will be created.
2.2 UNIQUE Constraint
The following command will declare the id
field of table2
as not null and unique i.e. this column will have only unique and not null value.
/* Query #2 :: Adding UNIQUE constraint on the table */ CREATE TABLE IF NOT EXISTS table2 ( id INT(6) NOT NULL UNIQUE, fullname VARCHAR(10), address VARCHAR(20) );
If everything goes well, the table with unique constraint will be created.
2.3 PRIMARY KEY Constraint
The following command will declare the id column as a primary key. This column must contain a unique & not null value and works like an index in a database table.
/* Query #3 :: Adding PPRIMARY KEY constraint on the table */ CREATE TABLE IF NOT EXISTS table3 ( id INT(6) NOT NULL, fullname VARCHAR(10), address VARCHAR(20), PRIMARY KEY (id) );
If everything goes well, the table with a primary key constraint will be created.
2.4 FOREIGN KEY Constraint
The following command will declare the id
field as a foreign key and establishes a relationship with table3
.
/* Query #4 :: Adding FOREIGN KEY constraint on the table */ CREATE TABLE IF NOT EXISTS table4 ( refid INT(10) NOT NULL, id INT(10), PRIMARY KEY (refid), FOREIGN KEY (id) REFERENCES table3 (id) );
If everything goes well, the table with foreign key constraint will be created.
2.5 CHECK Constraint
The following command will apply a constraint on the age
field to have a value greater than 21.
/* Query #5 :: Adding CHECK constraint on the table */ CREATE TABLE IF NOT EXISTS table5 ( id INT(6) NOT NULL, fullname VARCHAR(10), address VARCHAR(20), age INT(5), CHECK (age >= 21) );
If everything goes well, the table with check constraint will be created.
2.6 DEFAULT Constraint
The following command will set a default value for the product_manufacture_city
column. This default value will be added to all new records if no value is specified by the user.
/* Query #6 :: Adding DEFAULT constraint on the table */ CREATE TABLE IF NOT EXISTS table6 ( id INT(6) NOT NULL, product_name VARCHAR(50) NOT NULL, product_manufacture_city VARCHAR(30) DEFAULT 'India' );
If everything goes well, the table with default constraint will be created.
2.7 Dropping a Constraint
Let’s say we want to drop a constraint on a column. Developers can use the following command syntax to drop an existing constraint from a column.
1 2 | /* Query #6 :: Adding DEFAULT constraint on the table */ ALTER TABLE 'table_name' DROP CONSTRAINT 'constraint_name' ; |
For e.g., if want to remove the foreign key constraint from table4, we can run the following command in terminal.
1 | ALTER TABLE 'table4' DROP FOREIGN KEY 'id' ; |
That is all for this tutorial and I hope the article served you whatever you were looking for. Happy Learning and do not forget to share!
3. Conclusion
In this section, developers learned how to create different SQL Constraints in a database table. Always remember, users can specify these constraints even after creating a table. For that, they will have to use the ALTER statement like below:
ALTER TABLE 'table_name' ADD CONSTRAINT 'constraint_name' 'constraint_type'
Developers can download the sample scripts in the Downloads section.
4. Download the SQL Script
This was an example of creating SQL Constraints in a database table.
You can download the full source code of this example here: SQL Constraints Example