0% found this document useful (0 votes)
5 views4 pages

Constraints

The document outlines the creation and constraints of various SQL tables, including NOT NULL, UNIQUE, and PRIMARY KEY constraints. It demonstrates how these constraints affect data insertion, showing examples of successful and failed insertions based on the defined rules. Additionally, it explains the differences between column-level and table-level constraints, as well as the behavior of foreign keys in relation to primary keys.
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)
5 views4 pages

Constraints

The document outlines the creation and constraints of various SQL tables, including NOT NULL, UNIQUE, and PRIMARY KEY constraints. It demonstrates how these constraints affect data insertion, showing examples of successful and failed insertions based on the defined rules. Additionally, it explains the differences between column-level and table-level constraints, as well as the behavior of foreign keys in relation to primary keys.
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/ 4

-- NOT NULL Constraint

-- Column Level Declaration

CREATE TABLE SAMPLENN (


SAMPID NUMBER(2)
CONSTRAINT SAMPLENN_SAMPID_NN NOT NULL,
SAMPNAME VARCHAR2(15)
CONSTRAINT SAMPLENN_SAMPNAME_NN NOT NULL,
SAMPDATE DATE
);

INSERT INTO SAMPLENN VALUES (1,'SAMPLE01',SYSDATE); -- ROW CRETAED


INSERT INTO SAMPLENN VALUES (NULL,'SAMPLE01',SYSDATE); -- ROW NOT CREATED DUE TO ID
COLUMN NULL VALUE
INSERT INTO SAMPLENN VALUES (2,NULL,SYSDATE); -- ROW NOT CREATED DUE TO COLUMN NULL
VALUE
INSERT INTO SAMPLENN VALUES (NULL,NULL,SYSDATE); -- ROW NOT CREATED DUE TO ID AND
NAME COLUMN NULL VALUE
INSERT INTO SAMPLENN VALUES (2,'SAMPLE02',NULL);

SELECT * FROM SAMPLENN;

--------------
-- NOT NULL DOES NOT SUPPORT TABLE LEVEL DECLARATION
CREATE TABLE SAMPLENNT (
SAMPID NUMBER(2),
SAMPNAME VARCHAR2(15),
SAMPDATE DATE,
CONSTRAINT SAMPLENNT_SAMPID_NN NOT NULL (SAMPID)
);

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

--UNIQUE CONSTRAINT
--COLUMN LEVEL

CREATE TABLE SAMPLEUNQ(


SAMPID NUMBER(2)
CONSTRAINT SAMPLEUNQ_SAMPID_UNQ UNIQUE,
SAMPNAME VARCHAR2 (15),
SAMPDATE DATE
);

INSERT INTO SAMPLEUNQ VALUES (1,'SAMPLE01',SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQ VALUES (1,'SAMPLE02',SYSDATE); -- ROW NOT CREATED

INSERT INTO SAMPLEUNQ VALUES (NULL,'SAMPLE02',SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQ VALUES (NULL,'SAMPLE02',SYSDATE); -- ROW CREATED

-- WHEN WE PROVIDE NULL FOR UNIQUE CONSTRAINT IT WILL NO ERROR

SELECT * FROM SAMPLEUNQ;

-- TABLE LEVEL

CREATE TABLE SAMPLEUNQT(


SAMPID NUMBER(2),
SAMPNAME VARCHAR2 (15),
SAMPDATE DATE,
CONSTRAINT SAMPLEUNQT_SAMPID_UNQ UNIQUE (SAMPID)
);

INSERT INTO SAMPLEUNQT VALUES (1,'SAMPLE01',SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQT VALUES (1,'SAMPLE02',SYSDATE); -- ROW NOT CREATED

INSERT INTO SAMPLEUNQT VALUES (NULL,'SAMPLE02',SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQT VALUES (NULL,'SAMPLE02',SYSDATE); -- ROW CREATED

SELECT * FROM SAMPLEUNQT;

--COLUMN LEVEL AND TABLE LEVEL @ A TIME

CREATE TABLE SAMPLEUNQCT(


SAMPID NUMBER(2),
SAMPNAME VARCHAR2 (15)
CONSTRAINT SAMPLEUNQCT_SAMPNAME_UNQ UNIQUE, -- COLUMN LEVEL
SAMPDATE DATE,
CONSTRAINT SAMPLEUNQCT_SAMPID_UNQ UNIQUE (SAMPID) -- TABLE LEVEL
);

-- COMPOSITE UNIQUE CONSTRAINT (TABLE LEVEL)


CREATE TABLE SAMPLEUNQCMP(
SAMPID NUMBER(2),
SAMPNAME VARCHAR2 (15),
SAMPDATE DATE,
CONSTRAINT SAMPLEUNQCMP_SAMPID_UNQ UNIQUE (SAMPID,SAMPNAME) -- TABLE LEVEL
);

INSERT INTO SAMPLEUNQCMP VALUES (1,'SAMPLE01',SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQCMP VALUES (1,'SAMPLE01',SYSDATE); -- ROW NOT CREATED
INSERT INTO SAMPLEUNQCMP VALUES (1,'SAMPLE02',SYSDATE); -- ROW CREATED

INSERT INTO SAMPLEUNQCMP VALUES (NULL,'SAMPLE02',SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQCMP VALUES (NULL,'SAMPLE02',SYSDATE); -- ROW NOT CREATED

INSERT INTO SAMPLEUNQCMP VALUES (NULL,NULL,SYSDATE); -- ROW CREATED


INSERT INTO SAMPLEUNQCMP VALUES (NULL,NULL,SYSDATE); -- ROW CREATED

INSERT INTO SAMPLEUNQCMP VALUES (NULL,NULL,NULL);

SELECT * FROM SAMPLEUNQCMP;

SELECT * FROM SAMPLEUNQCMP WHERE SAMPID IS NULL AND SAMPNAME IS NULL;

-- PRIMARY KEY (WHCIH HELPS UNIQUELY IDENTIFYING THE RECORD OF THE TABLE, ONE TABLE
ALLOWS ONLY ONE PRIMARY KEY)
-- COMBINATION OF NOT NULL AND UNIQUE

--UNIQUE AND PRIMARY KEY

CREATE TABLE SMAPLEPK(


SAMPID NUMBER(2)
CONSTRAINT SAMPLEPK_SAMPID_PK PRIMARY KEY, -- COLUMN LEVEL
SAMPNAME VARCHAR2(15),
SAMPDATE DATE
);

INSERT INTO SMAPLEPK VALUES (1,'SAMPLE01',SYSDATE);


INSERT INTO SMAPLEPK VALUES (NULL,'SAMPLE01',SYSDATE); -- ROW CREATED
INSERT INTO SMAPLEPK VALUES (2,NULL,NULL);

SELECT * FROM SMAPLEPK;

--ONE TABLE ALLOWS ONLY ONE PRIMARY KEY

CREATE TABLE SAMPLEPK1(


SAMPID NUMBER(2)
CONSTRAINT SAMPLEPK_SAMPID_PK PRIMARY KEY,
SAMPNAME VARCHAR2(15)
CONSTRAINT SAMPLEPK_SAMPID_PK PRIMARY KEY,
SAMPDATE DATE
);

ERROR - ORA-02260: table can have only one primary key

-- COMBINATION OF NOT NULL AND UNIQUE, MULTIPLE CONSTRAINT IN A SINGLE COLUMN

CREATE TABLE SAMPLEPK2(


SAMPID NUMBER(2)
CONSTRAINT SAMPLEPK2_SAMPID_PK PRIMARY KEY,
SAMPNAME VARCHAR2(15)
CONSTRAINT SAMPLEPK2_SAMPNAME_NN NOT NULL
CONSTRAINT SAMPLEPK2_SAMPNAME_UNQ UNIQUE,
SAMPDATE DATE
);

-- TABLE LEVEL

CREATE TABLE SAMPLEPKT(


SAMPID NUMBER(2),
SAMPNAME VARCHAR2(15),
SAMPDATE DATE,
CONSTRAINT SAMPLEPKT_SAMPID_PK PRIMARY KEY (SAMPID)
);

SELECT * FROM SAMPLEPKT;

-- PRIMARY KEY - ONE COLUMN


-- COMPOSITE PRIMARY KEY (MULTIPLE COLUMN) DOES NOIT SUPPORT COLUMN LVEL SUPPORT
ONLY TABLE LEVEL

CREATE TABLE SAMPLECPK(


SAMPID NUMBER(2),
SAMPNAME VARCHAR2(15),
SAMPDATE DATE,
CONSTRAINT SAMPLECPK_SAMPID_PK PRIMARY KEY (SAMPID,SAMPNAME)
);

-- FOREIGN KEY (BUILD RELATIONSHIP BETWEEN TWO TABLES)


-- fOREIGN KEY CONTAIN DUPLICATE AND NULL VALUES BUT PRIMARY KEY DOES NOT CONTAIN
DUPLICATE AND NULL VALUE.

You might also like