Friday 12 July 2013

Constraints in SQL

Hi,
                    In This artcle we will see about Constraints in sql indetails.

SQL Constraints:

Constraints are the rules enforced on data columns on table.These are used to limit the type of data that
can go into a table.This ensures the accuracy and reliability of the data in the database.
Contraints could be column level or table level. Column level constraints are applied only
to one column where as table level constraints are applied to the whole table.

Following are commonly used constraints available in SQL

NOT NULL Constraint:

Ensures that a column cannot have NULL value.

DEFAULT Constraint :

Provides a default value for a column when none is specified.

UNIQUE Constraint:

Ensures that all values in a column are different.

PRIMARY Key:

Uniquely identified each rows/records in a database table.

FOREIGN Key:

Uniquely identified a rows/records in any another database table.

CHECK Constraint:

The CHECK constraint ensures that all values in a column satisfy certain conditions.

INDEX:

Use to create and retrieve data from the database very quickly.

NOT NULL Constraint:

By default, a column can hold NULL values. If you do not want a column to have a NULL value then
you need to define such constraint on this column specifying that NULL is now not allowed for that column
. A NULL is not the same as no data, rather, it represents unknown data.

Example:

For example, the following SQL creates a new table called CUSTOMERS and adds five columns, three
of which, ID and NAME and AGE, specify not to accept NULLs

CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR
(20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );

DEFAULT Constraint:

The DEFAULT constraint provides a default value to a column when the INSERT INTO statement
does not provide a specific value.

Example:

For example, the following SQL creates a new table called CUSTOMERS and adds five columns.
Here SALARY column is set to 5000.00 by default, so in case INSERT INTPO statement
does not provide a value for this column then by default this
column would be set to 5000.00.

CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL,
ADDRESS CHAR (25) , SALARY DECIMAL (18, 2) DEFAULT 5000.00, PRIMARY KEY (ID) );

UNIQUE Constraint:

The UNIQUE Constraint prevents two records from having identical values in a particular column.

Example:

you might want to prevent two or more people from having identical age. For example, the following SQL
creates a new table called CUSTOMERS and adds five columns. Here AGE column is set to UNIQUE, so
that you can not have two records with same age:

CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL UNIQUE, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );

PRIMARY Key:

A primary key is a field in a table which uniquely identifies the each rows/records in a database table.
Primary keys must contain unique values. A primary key column cannot have NULL values.
A table can have only one primary key which may consist of single or multiple fields.
When multiple fields are used as a primary key, they are called a composite key.
If a table has a primary key defined on any field(s) then you can not have two records having the same value
of that field(s).

Example:

Note: You would use these concepts while creating database tables. Create Primary Here is the syntax to
define ID attribute as a primary key in a CUSTOMERS table.

CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL,
ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );

FOREIGN Key:

A foreign key is a key used to link two tables together. This is sometimes called a referencing key.
Primary key field from one table and insert it into the other table where it becomes a foreign key
ie. Foreign Key is a column or a combination of columns whose values match a Primary Key in a different table.
The relationship between 2 tables matches the Primary Key in one of the tables with a Foreign Key in the
second table. If a table has a primary key defined on any field(s) then you can not have two records having
the same value of that field(s).


Example:

Consider the structure of the two tables as follows:

CUSTOMERS table:

CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );


ORDERS table:

CREATE TABLE ORDERS ( ID INT NOT NULL, DATE DATETIME, CUSTOMER_ID INT references CUSTOMERS(ID),
AMOUNT double, PRIMARY KEY (ID) );

CHECK Constraint:

The CHECK Constraint enables a condition to check the value being entered into a record.
If the condition evaluates to false, the record violates the constraint and isn.t entered into the table.

Example:

For example, the following SQL creates a new table called CUSTOMERS and adds five columns.
Here we add a CHECK with AGE column, so that you can not have any CUSTOMER below 18 years:

CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL CHECK (AGE >= 18)
, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );

No comments:

Post a Comment

if you have any doubt any suggestions do comment