0% found this document useful (0 votes)
25 views3 pages

Class-6 (Constraint-Unique, Not Null, Check, Foreign Key)

The document discusses different types of database constraints - unique, not null, check and foreign key. It provides examples of creating tables with these constraints and performing insert operations that violate the constraints.

Uploaded by

Nihar Sahoo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views3 pages

Class-6 (Constraint-Unique, Not Null, Check, Foreign Key)

The document discusses different types of database constraints - unique, not null, check and foreign key. It provides examples of creating tables with these constraints and performing insert operations that violate the constraints.

Uploaded by

Nihar Sahoo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

Class-6(Constraint Contdd..

)
----------------------------
(2) Unique
----------
> It will not allow duplicate value in that column
> It allows NULL value to store in the column
> We can have any number of unique key in a table

DROP TABLE STUDENTS_DATA PURGE;

CREATE TABLE STUDENTS_DATA(ROLL_NO NUMBER(4) CONSTRAINT ROLL_NO_PK PRIMARY KEY,


SNAME VARCHAR2(30),
AGE NUMBER(2),
ADDRESS VARCHAR2(100),
DOB DATE,
MOB_NO VARCHAR(12) CONSTRAINT MOB_NO_UK
UNIQUE
);

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='STUDENTS_DATA';


SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='STUDENTS_DATA';

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE) VALUES (1001,'Kishore',25);--1 row


inserted.

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE,MOB_NO) VALUES


(1002,'Kishore',25,'123456');

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE,MOB_NO) VALUES


(1003,'Pramod',26,'123456');--ORA-00001: unique constraint (USER1.MOB_NO_UK)
violated

COMMIT;

(3) NOT NULL


------------
> It will not allow NULL value to a column
> It will allow duplicate value
> It is common type of constraint which was used for most columns
> No need to give a constraint name
> We can have any number of NOT NULL constraint in a table

DROP TABLE STUDENTS_DATA PURGE;

CREATE TABLE STUDENTS_DATA(ROLL_NO NUMBER(4) CONSTRAINT ROLL_NO_PK PRIMARY KEY,


SNAME VARCHAR2(30) NOT NULL,
AGE NUMBER(2) NOT NULL,
ADDRESS VARCHAR2(100) NOT NULL,
DOB DATE,
MOB_NO VARCHAR(12) CONSTRAINT MOB_NO_UK
UNIQUE
);

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='STUDENTS_DATA';


SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='STUDENTS_DATA';

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE) VALUES (1001,'Kishore',25);--ORA-


01400: cannot insert NULL into ("USER1"."STUDENTS_DATA"."ADDRESS")
INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE,ADDRESS,MOB_NO) VALUES
(1002,'Kishore',25,'Bangalore','123456');--1 row inserted.

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE,MOB_NO) VALUES


(1003,'Pramod',26,'123456');--ORA-01400: cannot insert NULL into
("USER1"."STUDENTS_DATA"."ADDRESS")

COMMIT;

(4) CHECK
---------
> It is used to check a condition
> If the condition is true then it allows to perform INSERT/UPDATE operation

DROP TABLE STUDENTS_DATA PURGE;

CREATE TABLE STUDENTS_DATA(ROLL_NO NUMBER(4) CONSTRAINT ROLL_NO_PK PRIMARY KEY,


SNAME VARCHAR2(30) NOT NULL,
AGE NUMBER(2) NOT NULL CONSTRAINT
AGE_CHK CHECK(AGE>10),
ADDRESS VARCHAR2(100) NOT NULL,
DOB DATE,
MOB_NO VARCHAR(12) CONSTRAINT MOB_NO_UK
UNIQUE
);

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='STUDENTS_DATA';


SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='STUDENTS_DATA';

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE) VALUES (1001,'Kishore',25);--ORA-


01400: cannot insert NULL into ("USER1"."STUDENTS_DATA"."ADDRESS")

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE,ADDRESS,MOB_NO) VALUES


(1002,'Kishore',5,'Bangalore','123456');--ORA-02290: check constraint
(USER1.AGE_CHK) violated

INSERT INTO STUDENTS_DATA(ROLL_NO,SNAME,AGE,ADDRESS,MOB_NO) VALUES


(1002,'Kishore',15,'Bangalore','123456');--1 row inserted.

COMMIT;

(5) FOREIGN Key


---------------

Primary Key=UNIQUE + NOT NULL

Primary key is a combination of Unique and Not Null key

> It is used to create a relationship between a parent table and child table
> To create a link/relationship , we must have a common column in both the table
> The table on which we will create a Foreign Key is called as Child table
> The child table can depend with a parent table
> This is called as Parent-Child /Primary-Foreign Key relationship.

Syntax
-------
CONSTRAINT <Constraint Name> FOREIGN KEY (<Child Column Name>) REFERENCES <Parent
Table Name>(<Parent column name>)
Scenario
--------
Employee---->Working----->Under----->Department

Who is child?Employee
Who is parent?Department

Table Name:Department
---------------------
Column Name Data Type Size Constraint
----------- --------- ---- ----------
DEPTNO NUMBER 2 PRIMARY KEY
DNAME VARCHAR2 20 NOT NULL
LOC VARCHAR2 20 NOT NULL

Table Name:Employee
---------------------
Column Name Data Type Size Constraint
----------- --------- ---- ----------
EMPNO NUMBER 4 PRIMARY KEY
ENAME VARCHAR2 30 NOT NULL
SAL NUMBER 8 NOT NULL
DEPTNO NUMBER 2 FOREIGN KEY

DROP TABLE DEPARTMENT;


DROP TABLE EMPLOYEE;
DROP TABLE DEPARTMENT;
DROP TABLE EMPLOYEE;
CREATE TABLE DEPARTMENT(DEPTNO NUMBER(2) CONSTRAINT DEPTNO_PRM_KEY PRIMARY KEY,
DNAME VARCHAR2(20) NOT NULL,
LOC VARCHAR2(20) NOT NULL
);

CREATE TABLE EMPLOYEE (EMPNO NUMBER(4) CONSTRAINT EMPNO_PRM_KEY PRIMARY KEY,


ENAME VARCHAR2(30) NOT NULL,
SAL NUMBER(8) NOT NULL,
DEPTNO NUMBER(2),
CONSTRAINT DEPTNO_FRGN_KEY FOREIGN KEY(DEPTNO)
REFERENCES DEPARTMENT(DEPTNO)
);

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='DEPARTMENT';


SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='EMPLOYEE';

SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='DEPARTMENT';


SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='EMPLOYEE';

You might also like