You are on page 1of 11

******SQL******

DDL: DATA DEFINITION LANGUAGE


CREATE
ALTER
DROP
TRUNCATE
RENAME

DML: DATA MANIPULATION LANGUAGE


INSERT
UPDATE
DELETE
PURGE

TCL: TRANSACTION CONTROL LANGUAGE


COMMIT
ROLLBACK
FLASHBACK

DQL: DATA QUERY LANGUAGE


SELECT

DCL: DATA CONTROL LANGUAGE


GRANT
REVOKE

CREATE: It is used to create the table.


CREATE TABLE TABLENAME(COL_NAME DATATYPE);

INSERT: It is used to insert the values.


INSERT INTO TABLENAME VALUES(VALUE1,VALUE2);

UPDATE: It is used to update the column values.


UPDATE TABLENAME SET COL_NAME=VALUE;
UPDATE TABLENAME SET COL_NAME=VALUE WHERE COL_NAME=VALUE;

ALTER: It is used to update the table structure


ALTER TABLE TABLENAME ADD(COL_NAME DATATYPE);

MODIFY: It is used to update the table DATATYPE.


ALTER TABLE TABLENAME MODIFY(COL_NAME DATATYPE);

DROP: It is used to delete the column.


ALTER TABLE TABLENAME DROP(COL_NAME);

PURGE: It is used to delete the data from database.


DROP TABLE TABLENAME PURGE;

RENAME: It is used to change the table name.


RENAME OLD_NAME TO NEW_NAME;
ALTER TABLE TABLENAME RENAME COLUMN OLD_NAME TO NEW_NAME;
FLASHBACK:
FLASHBACK TABLE TABLENAME TO BEFORE DROP;

DELETE: It is used to delete the row data.


DELETE FROM TABLENAME WHERE COL_NAME

DROP: It is used to drop the table.


DROP TABLE T_NAME;

TRUNCATE:
TRUNCATE TABLE T_NAME;

*****Dif between delete, Drop and Truncate*****


DELETE:
-It is used to delete the table data, but structure remains the same.
-Rollback
-Low Performance
-Delete the records row by row.
-space is not removed from arrays.

DROP:
-It is used to drop the table data along with structure.
-Flashback
-High Performance
-Delete all the records at a time
-Space is removed from arrays.

TRUNCATE:
-It is used to delete the table data but structure remains the same.
-Truncate:can not rollback
-High Performance
-Delete all the records at a time
-Space is removed from arrays.

***CHARACTER FUNCTIONS***
Taking values and converting into the required format and display on screen.

INITCAP:
SELECT INITCAP(COL_NAME) FROM TABLENAME;

LTRIM:
SELECT LTRIM(COL_NAME) FROM TABLENAME;

RTRIM:
SELECT RTRIM(COL_NAME) FROM TABLENAME;

TRIM:
SELECT TRIM(COL_NAME) FROM TABLENAME;

UPPER:
SELECT UPPER(COL_NAME) FROM TABLENAME;
LOWER:
SELECT LOWER(COL_NAME) FROM TABLENAME;
NVL:
SELECT NVL(COL_NAME,VALUE) FROM T_NAME;

NVL2:
SELECT NVL2(COL_NAME,EXISTING_VALUE,NULL_VALUE) FROM T_NAME;

DECODE:
SELECT DECODE(DEFAULT VALUE, SEARCHABLE VALUE, REPLACING VALUE, DEFAULT VALUE)
FROM T_NAME;

TRANSLATE:
SELECT TRANSLATE(COL_NAME, SEARCHABLE VALUE, REPLACING VALUE) FROM T_NAME;

REPLACE:
SELECT REPLACE(COL_NAME, OLD_CHAR, NEW_CHAR) FROM T_NAME;

CONCAT:
SELECT CONCAT(COL_NAME1,COL_NAME2) FROM T_NAME;

LPAD:
SELECT LPAD(STRING,LENGTH,PADDING CHECK) FROM T_NAME;

RPAD:
SELECT RPAD(STRING,LENGTH,PADDING CHECK) FROM T_NAME;

INSTRING:
SELECT INSTR(COLUMN,'VALUE') FROM T_NAME;

SUBSTRING:
SELECT SUBSTR(COLUMN, INSTR(COLUMN, VALUE)) FROM DUAL;

***SET OPERATORS***
DATATYPE & COLUMN COUNT should be same.
It is used on multiple select queries.

UNION:
UNION will sort all the records from multiple tables and gives the unique records.
SELECT * FROM T_NAME1 UNION SELECT * FROM T_NAME2;

UNION ALL:
UNION ALL will retrieve all the data from multiple tables.
SELECT * FROM T_NAME1 UNION ALL SELECT * FROM T_NAME2;

INTERSECT:
INTERSECT will executes the query and gives the matched records.
SELECT * FROM A INTERSECT SELECT * FROM B;

MINUS:
MINUS will gives the result from first query and gives the unmatched records from first query.
SELECT ID FROM A MINUS SELECT ID FROM B;
***AGGRIGATE FUNCTIONS***
These are used to group the values.

COUNT:
SELECT COUNT(*) FROM T_NAME;

MIN:
SELECT MIN(*) FROM T_NAME;

MAX:
SELECT MAX(*) FROM T_NAME;

AVG:
SELECT AVG(*) FROM T_NAME;

SUM:
SELECT SUM(*) FROM T_NAME;

***DATE FUNCTIONS***

SYSDATE:
SELECT SYSDATE FROM DUAL;

CURRENT_DATE:
SELECT CURRENT_DATE FROM DUAL;

CURRENT_TIMESTAMP:
SELECT CURRENT_TIMESTAMP FROM DUAL;

SYSTIMESTAMP:
SELECT SYSTIMESTAMP FROM DUAL;

TO_CHAR:
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;

ADD_MONTHS:
SELECT ADD_MONTHS(SYSDATE,2) FROM DUAL;

LAST_DAY:
SELECT LAST_DAY(SYSDATE) FROM DUAL;

NEXT_DAY:
SELECT NEXT_DAY(SYSDATE,'MONDAY') FROM DUAL;

TO_DATE:
SELECT TO_DATE(SYSDATE)-TO_DATE('09-OCT-90')FROM DUAL;

***CLAUSES***
DISTINCT:
SELECT DISTINCT(COL_NAME) FROM T_NAME;
WHERE:
SELECT * FROM TABLENAME WHERE COL_NAME=VALUE;

AND:
SELECT * FROM TABLENAME WHERE COL_NAME=VALUE AND COL_NAME=VALUE;

OR:
SELECT * FROM TABLENAME WHERE COL_NAME=VALUE OR COL_NAME=VALUE;

IN:
SELECT * FROM TABLENAME WHERE COL_NAME IN(VALUE1,VALUE2,VALUE3);

LIKE:
SELECT * FROM TABLENAME WHERE COL_NAME LIKE 'A%';

GROUP BY:
SELECT * FROM TABLENAME GROUP BY COL_NAME;

HAVING:
SELECT * FROM TABLENAME GROUP BY COL_NAME HAVING COUNT(*)>1;

ORDER BY:
SELECT * FROM TABLENAME ORDER BY COL_NAME DESC;

***CONSTRAINTS***
These are nothing but Rules.
It is used to perform some rules on table coloumns.

NOT NULL:
CREATE TABLE T_NAME(COL_NAME DATATYPE,COL_NAME DATATYPE NOT NULL);

UNIQUE:
CREATE TABLE T_NAME(COL_NAME DATATYPE,COL_NAME DATATYPE UNIQUE);

PRIMARY KEY:
CREATE TABLE T_NAME(COL_NAME DATATYPE,COL_NAME DATATYPE PRIMARY KEY);

CHECK:
CREATE TABLE T_NAME(COL_NAME DATATYPE,COL_NAME DATATYPE CHECK(SAL BETWEEN
2000 AND 5000));

COMPOITE PRIMARY KEY:


CREATE TABLE T_NAME(COL_NAME DATATYPE,COL_NAME
DATATYPE,PRIMARY(SEATS,ID,TRAVELDATE));

FOREIGN KEY:
CREATE TABLE T_NAME1(COL_NAME1 DATATYPE PRIMARY KEY,COL_NAME2 DATATYPE);
CREATE TABLE T_NAME2(COL_NAME1 DATATYPE PRIMARY KEY,COL_NAME2
DATATYPE,COL_NAME3 DATATYPE, FOREIGN KEY(COL_NAME) REFERENCES
T_NAME1(COL_NAME));

REFERENTIAL INTIGRITY:
CREATE TABLE T_NAME1(COL_NAME1 DATATYPE PRIMARY KEY,COL_NAME2 DATATYPE);
CREATE TABLE T_NAME2(COL_NAME1 DATATYPE PRIMARY KEY,COL_NAME2
DATATYPE,COL_NAME3 DATATYPE REFERENCES T_NAME1(COL_NAME));
HOW TO CHECK CONSTRAINTS?
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='CHILD1';

HOW TO DROP THE CONSTRAINT COLUMN?


ALTER TABLE T_NAME DROP CONSTRAINT CONSTRAINT_NAME;

***JOINS***
It combines rows from multiple tables.

CROSS JOIN:
SELECT * FROM TABLE1 CROSS JOIN TABLE2;

SELF JOIN:
SELECT A.COL_NAME1,A.COL_NAME2,B.COL_NAME1 AS MANAGER FROM T_NAME A,T_NAME B
WHERE A.COL_NAME=B.COL_NAME;
SELECT A.E_ID,A.NAME,B.NAME AS MANAGER FROM EMPLOYEE A, EMPLOYEE B WHERE
A.MNGR=B.E_ID;

EQUI JOIN OR INNER JOIN:


SELECT A.SAL,B.SALARY FROM EMP A,EMPLOYEE B WHERE A.SAL=B.SALARY;
SELECT A.SAL,B.SALARY FROM EMP A INNER JOIN EMPLOYEE B ON A.SAL=B.SALARY;

LEFT OUTER JOIN:


SELECT A.SAL,B.SALARY FROM EMP A LEFT JOIN EMPLOYEE B ON A.SAL=B.SALARY;
SELECT A.SAL,B.SALARY FROM EMP A,EMPLOYEE B WHERE A.SAL=B.SALARY(+);

RIGHT OUTER JOIN:


SELECT A.SAL,B.SALARY FROM EMP A RIGHT JOIN EMPLOYEE B ON A.SAL=B.SALARY;
SELECT A.SAL,B.SALARY FROM EMP A,EMPLOYEE B WHERE B.SALARY=A.SAL(+);

FULL JOIN:
SELECT A.SAL,B.SALARY FROM EMP A FULL JOIN EMPLOYEE B ON A.SAL=B.SALARY;

***SUB QUERIES***
It is called as inner query or nested query.
It is usually used in where class.

DISPLAY THE 2ND MAX SALARY?


SELECT MAX(SAL) FROM T_NAME WHERE SAL<(SELECT MAX(SAL) FROM T_NAME);
SELECT * FROM T_NAME A WHERE 2=(SELECT COUNT(DISTINCT(SAL)) FROM T_NAME B WHERE
A.COL_NAME<=B.COL_NAME);

COLUMN NAME SUB QUERY:


DISPLAY EMPNO, NAME,SAL, HIGH SAL?
SELECT E_ID,NAME,SALARY,(SELECT MAX(SALARY) FROM EMPLOYEE) AS HIGH_SAL FORM
EMPLOYEE;

CORELATED SUBQUERY:
DISPLAY THE ALL THE EMPLOYEES WHO SAL IS LESS THAN THE AVG SAL OF ALL DEPTS?
SELECT * FROM EMP A WHERE A.SAL<(SELECT AVG(SAL) FROM EMP B WHERE
A.DEPTNO=B.DEPTNO);

INLINE SUBQUERY:
DISPLAY EMPNO, NAME,SAL, HIGH SAL,DIFF_SAL?
SELECT EMPNO,ENAME,SAL,HIGH_SAL,DIFF_SAL FROM(SELECT EMPNO,NAME,SAL,(SELECT
MAX(SAL) FROM EMP) AS HIGH_SAL,
(SELECT MAX(SAL) FROM EMP)-SAL AS DIFF_SAL FROM EMP);

CAST:
SELECT ID,CAST(NAME AS CHAR(5))AS NAME FROM CAST1
MINUS SELECT ID,NAME FROM CAST2;

CASE:
SELECT CASE WHEN ID>0 THEN ID END AS POSITIVE,CASE WHEN ID<0 THEN ID END AS NEGATIVE
FROM TABLEA;

***ANALYTICAL FUNCTIONS***
RANK:
SELECT COL_NAME1,COL_NAME2,RANK() OVER(ORDER BY COL_NAME1) AS RANK FROM T_NAME;
DENSE_RANK:
SELECT COL_NAME1,COL_NAME2,DENSE_RANK() OVER(ORDER BY COL_NAME1) AS RANK FROM
T_NAME;

PARTITION BY:
SELECT * FROM (SELECT T_NAME.*,DENSE_RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL)
AS RN FROM T_NAME) WHERE RN=2;

DISPLAY 5TH SAL BY USING DENSE_RANK?


SELECT * FROM (SELECT EMP.*,DENSE_RANK() OVER(ORDER BY SAL DESC) AS RANK FROM EMP)
WHERE RANK=&RANK;
SELECT * FROM (SELECT EMP.*,DENSE_RANK() OVER(ORDER BY SAL DESC) AS RANK FROM EMP)
WHERE RANK=5;

DISPLAY ALL THE DUPLICATE RECORDS?


SELECT * FROM EMP A WHERE A.ROWID>(SELECT MIN(ROWID)FROM EMP B WHERE
A.EMPNO=B.EMPNO);
SELECT * FROM CUSTOMER A WHERE A.ROWID>(SELECT MIN(ROWID)FROM CUSTOMER B WHERE
A.ID=B.ID);

DISPLAY ORIGINAL RECORDS?


SELECT * FROM CUSTOMER A WHERE A.ROWID=(SELECT MIN(ROWID)FROM CUSTOMER B WHERE
A.ID=B.ID);

DISPLAY DUPLICATE RECORDS?


SELECT E_ID FROM EMPLOYEE GROUP BY E_ID HAVING COUNT(*)>1;

MOD:
SELECT * FROM (SELECT T_NAME.*,ROWNUM AS RN FROM T_NAME) WHERE MOD(RN,2)=0;

***VIEWS***
It is nothing but virtual table.
It is used to create a virtual table for code security.

HOW TO CREATE A VIEW FROM ANOTHER TABLE?


CREATE VIEW VMADHU AS SELECT ENAME,JOB,SAL FROM EMP;
CONNECT SYSTEM/manager;
SHOW USER;
GRANT DBA TO scott;
CONNECT scott/tiger;

***INDEX***
It is used to speed up the queries
CREATE INDEX COL_NAME ON T_NAME(COL_NAME);

1.DISPLAY POSITIVE & NEGATIVE NUMBERS FROM A TABLE?


SELECT CASE WHEN ID>0 THEN ID END AS POSITIVE, CASE WHEN ID<0 THEN ID END AS NEGATIVE
FROM TABLEA;

2.DISPLAY 5TH SAL BY USING DENSE_RANK?


SELECT * FROM (SELECT EMP.*,DENSE_RANK() OVER(ORDER BY SAL DESC) AS RANK FROM EMP)
WHERE RANK=&RANK;
SELECT * FROM (SELECT EMP.*,DENSE_RANK() OVER(ORDER BY SAL DESC) AS RANK FROM EMP)
WHERE RANK=5;

3.DISPLAY 5TH LOW SAL FROM TABLE?


SELECT * FROM EMPLOYEE ORDER BY SALARY;
SELECT * FROM EMPLOYEE A WHERE 5=(SELECT COUNT(DISTINCT(SALARY)) FROM EMPLOYEE B
WHERE A.SALARY<B.SALARY);
SELECT * FROM EMPLOYEE A WHERE 5=(SELECT COUNT(DISTINCT(B.SALARY)) FROM EMPLOYEE B
WHERE A.SALARY<B.SALARY) ORDER BY SALARY DESC;

4.DISPLAY DUPLICATE RECORDS?


SELECT E_ID FROM EMPLOYEE GROUP BY E_ID HAVING COUNT(*)>1;

5.DISPLAY ALL THE DUPLICATE RECORDS?


SELECT * FROM EMP A WHERE A.ROWID>(SELECT MIN(ROWID)FROM EMP B WHERE
A.EMPNO=B.EMPNO);
SELECT * FROM CUSTOMER A WHERE A.ROWID>(SELECT MIN(ROWID)FROM CUSTOMER B WHERE
A.ID=B.ID);

6.DISPLAY ORIGINAL RECORDS?


SELECT * FROM CUSTOMER A WHERE A.ROWID=(SELECT MIN(ROWID)FROM CUSTOMER B WHERE
A.ID=B.ID);

7.HOW TO CREATE A VIEW FROM ANOTHER TABLE?


CREATE VIEW VMADHU AS SELECT ENAME,JOB,SAL FROM EMP;
CONNECT SYSTEM/manager;
SHOW USER;
GRANT DBA TO scott;
CONNECT scott/tiger;

8.DISPLAY ALL EMPLOYEES COUNT WHO JOINED IN B/W 1982 TO 2000?


SELECT COUNT(*) FROM EMP WHERE HIREDATE BETWEEN '01-JAN-1982' AND '31-DEC-2000';

9.DISPLAY TOP 5 RECORDS AND LEAST 5 RECORDS?


SELECT * FROM EMP A WHERE 5>(SELECT COUNT( B.SAL) FROM EMP B WHERE A.SAL<B.SAL) ORDER
BY SAL DESC;
SELECT * FROM (SELECT * FROM EMP ORDER BY SAL)WHERE ROWNUM<=5;

10.WRITE ANY QUERY USING GROUP BY & HAVING?


SELECT E_ID FROM EMPLOYEE GROUP BY E_ID HAVING COUNT(*)>1; --(OR)--
SELECT DEPT_NO, COUNT(*) FROM EMPLOYEE GROUP BY DEPT_NO HAVING COUNT(*)>3;

11.DISPLAY DEPARTMENT WISE MAX SAL, IF MAX SAL IS NULL?


SELECT DEPTNO,DECODE(SAL,NULL,'NOSAL',SAL) FROM
(SELECT DEPTNO,MAX(SAL) AS SAL FROM
(SELECT A.DEPTNO,A.SAL FROM TRANSACTION B,CUSTOMER A WHERE A.DEPTNO=B.DEPTNO)
GROUP BY DEPTNO);

CREATE TABLE STORE_DIMENSION(STORE_KEY NUMBER(5),


STORE_NAME VARCHAR2(10),
STORE_NUMBER NUMBER(5),
STORE_STREET_ADDRESS VARCHAR2(20),
STORE_CITY VARCHAR2(10),
STORE_STATE NUMBER(5),
STORE_REGION VARCHAR2(10),
FLOOR_PLAN_TYPE VARCHAR2(10),
PHOTO_PROCESSING_TYPE VARCHAR2(10),
FINANCIAL_SERVICE_TYPE VARCHAR2(10),
SELLING_SQUARE_FOOTAGE NUMBER(5),
TOTAL_SQUARE_FOOTAGE NUMBER(5),
FIRST_OPEN_DATE DATE,
LAST_REMODEL_DATE DATE);

CREATE TABLE RETAIL_SALES_FACT(DATE_KEY NUMBER(5),


PRODUCT_KEY NUMBER(5),
STORE_KEY NUMBER(5),
PROMOTION_KEY NUMBER(5),
POS_TRANSACTION_NUMBER NUMBER(5),
SALES_QUANTITY NUMBER(5),
SALES_DOLLOR_AMOUNT NUMBER(5),
COST_DOLLOR_AMOUNT NUMBER(5),
GROSS_PROFIT_DOLLOR_AMOUNT NUMBER(5));

CREATE TABLE PRODUCT_DIMENSION(PRODUCT_KEY NUMBER(5),


PRODUCT_DESCRIPTION VARCHAR2(20),
SKU_NUMBER NUMBER(5),
CATEGORY_DESCRIPTION NUMBER(5),
DEPARTMENT_DESCRIPTION NUMBER(5),
PACKAGE_TYPE_DESCRIPTION NUMBER(5),
PACKAGE_SIZE NUMBER(5),
FAT_CONTENT NUMBER(5),
DIET_TYPE NUMBER(5),
WEIGHT NUMBER(5),
WEIGHT_UNITS_OF_MEASURE NUMBER(5),
SHELF_WIDTH NUMBER(5),
SHELF_HEIGHT NUMBER(5),
SHELF_DEPTH NUMBER(5));

CREATE TABLE DATE_DIMENSION(DATE_KEY NUMBER(5),


DATE_A DATE,
FULL_DATE_DESCRIPTION VARCHAR2(10),
DAY_OF_WEEK VARCHAR2(10),
DAY_NUMBER_IN_CALENDAR_MONTH NUMBER(5),
DAY_NUMBER_IN_CALENDAR_YEAR NUMBER(5),
DAY_NUMBER_IN_FISCAL_MONTH NUMBER(5),
DAY_NUMBER_IN_FISCAL_YEAR NUMBER(5),
LAST_DAY_WEEK_INDICATOR NUMBER(5),
LAST_DAY_MONTH_INDICATOR NUMBER(5),
CALENDAR_WEEK_NUMBER_IN_YEAR NUMBER(5),
CALENDAR_MONTH_NAME VARCHAR2(10),
CALENDAR_MONTH_NUMBER_IN_YEAR NUMBER(5),
CALENDAR_YEAR_MONTH NUMBER(5),
CALENDAR_QUARTER NUMBER(5),
CALENDAR_YEAR_QUARTER NUMBER(5),
CALENDAR_HALF_QUARTER NUMBER(5),
CALENDAR_YEAR NUMBER(5),
HOLIDAY_INDICATOR VARCHAR2(10),
WEEKLY_INDICATOR NUMBER(5),
SELLING_SEASON VARCHAR2(10));

CREATE TABLE PROMOTION_DIMENSION(PROMOTION_KEY NUMBER(5),


PROMOTION_NAME VARCHAR2(20),
PRICE_REDUCTION_TYPE VARCHAR2(10),
PROMOTION_MEDIA_TYPE VARCHAR2(10),
AD_TYPE VARCHAR2(10),
DISPLAY_TYPE VARCHAR2(10),
COUPON_TYPE VARCHAR2(10),
AD_MEDIA_NAME VARCHAR2(10),
DISPLAY_PROVIDER VARCHAR2(20),
PROMOTION_COST NUMBER(5),
PROMOTION_BEGIN_DATE DATE,
PROMOTION_END_DATE DATE);

SELECT * FROM STORE_DIMENSION;


SELECT * FROM RETAIL_SALES_FACT;
SELECT * FROM PRODUCT_DIMENSION;
SELECT * FROM DATE_DIMENSION;
SELECT * FROM PROMOTION_DIMENSION;

INSERT INTO STORE_DIMENSION VALUES(


1,'ANIL_MED',11,'METTUGUDA','HYDERABAD',111,'SEC_BAD','FPT1','PPT1','FST1',121,1231,'01-JAN-
1990','31-DEC-2016');
INSERT INTO STORE_DIMENSION VALUES(
2,'KAMAL_MED',12,'TARNAKA','HYDERABAD',112,'SEC_BAD','FPT2','PPT2','FST2',122,1232,'01-FEB-
1990','30-DEC-2016' );
INSERT INTO STORE_DIMENSION VALUES(
3,'RAJU_MED',13,'UPPAL','MALKAJGIRI',111,'UPPAL_REG','FPT3','PPT3','FST3',123,1233,'02-MAR-1990','25-
DEC-2016' );
INSERT INTO STORE_DIMENSION VALUES(
4,'RAMU_MED',14,'BEGUMPET','HYDERABAD',114,'BEG_PET','FPT4','PPT4','FST4',124,1234,'01-APR-1990','01-
DEC-2016' );
INSERT INTO STORE_DIMENSION VALUES(
5,'KING_MED',15,'AMEERPET','SECBAD',115,'AMR_PET','FPT5','PPT5','FST5',125,1235,'01-MAY-1991','30-
OCT-2015' );

INSERT INTO RETAIL_SALES_FACT VALUES(10,101,1,1001,1101,20,524,512,12);


INSERT INTO RETAIL_SALES_FACT VALUES(11,102,2,1002,1102,21,5241,5121,121);
INSERT INTO RETAIL_SALES_FACT VALUES(12,103,3,1003,1103,22,5242,5122,122);
INSERT INTO RETAIL_SALES_FACT VALUES(13,104,4,1004,1104,23,5243,5123,123);
INSERT INTO RETAIL_SALES_FACT VALUES(14,105,5,1005,1105,24,5244,5124,124);

INSERT INTO PRODUCT_DIMENSION VALUES(


101,'HONEY',201,301,401,501,601,701,801,901,1900,1800,1700,1600);
INSERT INTO PRODUCT_DIMENSION VALUES(
102,'GHEE',202,302,402,502,602,702,802,902,1901,1801,1701,1601);
INSERT INTO PRODUCT_DIMENSION VALUES(
103,'OIL',203,303,403,503,603,703,803,903,1902,1802,1702,1602);
INSERT INTO PRODUCT_DIMENSION VALUES(
104,'RICE',204,304,404,504,604,704,804,904,1903,1803,1703,1603);
INSERT INTO PRODUCT_DIMENSION VALUES(
105,'CLOTHS',205,305,405,505,605,705,805,905,1904,1804,1704,1604);

INSERT INTO DATE_DIMENSION VALUES(21,'01-JAN-2017','FDD1','MONDAY',


12,42,13,43,7,31,14,'JAN',1,5,3,34,6,12,'PONGAL',17,'SANKRANTHI');
INSERT INTO DATE_DIMENSION VALUES(22,'05-DEC-2017','FDD2','TUESDAY',
13,43,14,44,8,30,15,'DEC',2,6,4,35,7,11,'UGADI',18,'TELUGU_NEW');
INSERT INTO DATE_DIMENSION VALUES(23,'05-OCT-2017','FDD3','WEDNESDAY',
14,44,15,45,9,29,16,'OCT',3,7,5,36,8,10,'DASARA',18,'TS_FEST');
INSERT INTO DATE_DIMENSION VALUES(24,'05-NOV-2017','FDD4','THURSDAY',
15,45,16,46,10,28,17,'NOV',4,8,6,37,9,09,'CHRISTMAS',19,'ENG_FEST');
INSERT INTO DATE_DIMENSION VALUES(25,'09-OCT-2017','FDD5','FRIDAY',
16,46,17,47,11,27,18,'OCT',5,9,7,38,10,08,'NEWYEAR',19,'YEAR_END');

INSERT INTO PROMOTION_DIMENSION VALUES(10001,'JUNIOR','PRT1','PMT1','AT1',


'DT1','CT1','AMN1','DP1',1001,'01-OCT-2016','31-DEC-2017');
INSERT INTO PROMOTION_DIMENSION VALUES(10002,'SENIOR','PRT2','PMT2','AT2',
'DT2','CT2','AMN2','DP2',1002,'01-SEP-2016','30-SEP-2017');
INSERT INTO PROMOTION_DIMENSION VALUES(10003,'ASSTMAN','PRT3','PMT3','AT3',
'DT3','CT3','AMN3','DP3',1003,'01-AUG-2016','30-AUG-2017');
INSERT INTO PROMOTION_DIMENSION VALUES(10004,'TL','PRT4','PMT4','AT4',
'DT4','CT4','AMN4','DP4',1004,'01-NOV-2016','30-NOV-2017');
INSERT INTO PROMOTION_DIMENSION VALUES(10005,'MANAGER','PRT5','PMT5','AT5',
'DT5','CT5','AMN5','DP5',1005,'01-JUL-2016','30-JUL-2017');

You might also like