/****************************DAY1: 5 JUNE 2017,MONDAY************************/
--INSERT INTO TABLES
INSERT
INTO CUSTOMER
(
CUSTOMER_ID,
FIRST_NAME,
LAST_NAME,
MIDDLE_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
CITY,
COUNTRY,
DATE_ADDED,
REGION
)
VALUES
(
10,
'JOHN',
'AMIRTHRAJ',
'T',
'2345 PETERDRIVE',
NULL,
'Atlanta',
'USA',
to_date('12-JAN-15','DD-MON-YY'),
'SOUTH'
);
INSERT
INTO CUSTOMER
(
CUSTOMER_ID,
FIRST_NAME,
LAST_NAME,
MIDDLE_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
CITY,
COUNTRY,
DATE_ADDED,
REGION
)
VALUES
(
11,
'TOM',
'JOSEPH',
'A',
'123SANDY DRIVE',
NULL,
'New York',
'USA',
to_date('12-JAN-15','DD-MON-YY'),
'SOUTH'
);
INSERT
INTO CUSTOMER
(
CUSTOMER_ID,
FIRST_NAME,
LAST_NAME,
MIDDLE_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
CITY,
COUNTRY,
DATE_ADDED,
REGION
)
VALUES
(
12,
'PETER',
'MANN',
'J',
'3456 GATES DRIVE',
NULL,
'Washington',
'USA',
to_date('13-JAN-15','DD-MON-YY'),
'NORTH'
);
COMMIT; /*COMMIT SAVES CHANGES IN DATABASE FOR CURRENT SESSION*/
INSERT
INTO PRODUCT
(
PRODUCT_ID,
PRODUCT_NAME,
STANDARD_COST,
COLOR,
LIST_PRICE,
PRODUCT_SIZE,
WEIGHT,
PRODUCT_CATEGORY
)
VALUES
(
100,
'Mobile Cover',
30,
NULL,
35,10,100,
'Mobile'
);
INSERT
INTO PRODUCT
(
PRODUCT_ID,
PRODUCT_NAME,
STANDARD_COST,
COLOR,
LIST_PRICE,
PRODUCT_SIZE,
WEIGHT,
PRODUCT_CATEGORY
)
VALUES
(
200,
'Samsung F7100',
80,
'BLACK',
35,6,50,
'Mobile'
);
INSERT
INTO PRODUCT
(
PRODUCT_ID,
PRODUCT_NAME,
STANDARD_COST,
COLOR,
LIST_PRICE,
PRODUCT_SIZE,
WEIGHT,
PRODUCT_CATEGORY
)
VALUES
(
105,
'HTC 7800',
70,
'BLACK',
80,6,40,
'Mobile'
);
INSERT
INTO PRODUCT
(
PRODUCT_ID,
PRODUCT_NAME,
STANDARD_COST,
COLOR,
LIST_PRICE,
PRODUCT_SIZE,
WEIGHT,
PRODUCT_CATEGORY
)
VALUES
(
106,
'Microsoft Keyboard 7865',
50,
'BLACK',
60,3,20,
'Computer'
);
INSERT
INTO PRODUCT
(
PRODUCT_ID,
PRODUCT_NAME,
STANDARD_COST,
COLOR,
LIST_PRICE,
PRODUCT_SIZE,
WEIGHT,
PRODUCT_CATEGORY
)
VALUES
(
501,
'Microsoft Mouse 7863',
30,
'GREY',
40,1,25,
'Computer'
);
INSERT
INTO PRODUCT
(
PRODUCT_ID,
PRODUCT_NAME,
STANDARD_COST,
COLOR,
LIST_PRICE,
PRODUCT_SIZE,
WEIGHT,
PRODUCT_CATEGORY
)
VALUES
(
101,
'iPhone',
500,
'GOLD',
600,6,20,
'Mobile'
);
COMMIT;
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('01-FEB-15','DD-MON-YY'),
1269,200,12,1000,20,80,1600,160,1760
);
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('01-JAN-15','DD-MON-YY'),
1267,100,10,1000,2,20,40,4,44
);
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('01-JAN-15','DD-MON-YY'),
1267,101,10,1000,2,30,60,6,66
);
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('02-JAN-15','DD-MON-YY'),
1268,100,11,2000,10,30,300,30,330
);
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('09-FEB-15','DD-MON-YY'),
1270,105,10,3000,20,70,1400,140,1540
);
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('09-FEB-15','DD-MON-YY'),
1270,106,10,3000,10,50,500,50,550
);
INSERT
INTO SALES
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('09-FEB-15','DD-MON-YY'),
1270,101,10,3000,10,30,300,30,330
);
COMMIT;
INSERT
INTO SALES_HISTORY
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('01-JAN-15','DD-MON-YY'),
1267,100,10,1000,2,20,40,4,44
);
INSERT
INTO SALES_HISTORY
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('01-JAN-15','DD-MON-YY'),
1267,101,10,1000,2,30,60,6,66
);
INSERT
INTO SALES_HISTORY
(
SALES_DATE,
ORDER_ID,
PRODUCT_ID,
CUSTOMER_ID,
SALESPERSON_ID,
QUANTITY,
UNIT_PRICE,
SALES_AMOUNT,
TAX_AMOUNT,
TOTAL_AMOUNT
)
VALUES
(
to_date('07-JAN-15','DD-MON-YY'),
1268,100,11,2000,10,30,300,30,330
);
COMMIT;
INSERT
INTO SALESPERSON
(
SALESPERSON_ID,
JOB_TITLE,
FIRST_NAME,
LAST_NAME,
MIDDLE_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
CITY,
COUNTRY,
DATE_ADDED
)
VALUES
(
1000,
'South Manager',
'PETER',
'MANN',
'R',
'4567 ASHFORDROAD',
NULL,
'CUMMING',
'USA',
to_date('12-JAN-14','DD-MON-YY')
);
INSERT
INTO SALESPERSON
(
SALESPERSON_ID,
JOB_TITLE,
FIRST_NAME,
LAST_NAME,
MIDDLE_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
CITY,
COUNTRY,
DATE_ADDED
)
VALUES
(
2000,
'North Manager',
'JOHN',
'KING',
'A',
'67 DUNWOODY ROAD',
NULL,
'LASVEGAS',
'USA',
to_date('14-JAN-14','DD-MON-YY')
);
INSERT
INTO SALESPERSON
(
SALESPERSON_ID,
JOB_TITLE,
FIRST_NAME,
LAST_NAME,
MIDDLE_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
CITY,
COUNTRY,
DATE_ADDED
)
VALUES
(
3000,
'East Manager',
'BOB',
'MORIS',
'A',
'679 GLENDRIGEDR',
NULL,
'FLORIDA',
'USA',
to_date('14-FEB-14','DD-MON-YY')
);
COMMIT;
/******************************EXERCISE 1*************************************/
--1.PRODUCE A LIST OF ALL COLUMNS IN SALES TABLE
SELECT * FROM SALES;
--2.PRODUCE A LIST OF ALL COLUMNS IN PRODUCT TABLE
SELECT * FROM PRODUCT;
--3.PRODUCE A LIST OF ALL COLUMNS IN CUSTOMER TABLE
SELECT * FROM CUSTOMER;
--4.PRODUCE A LIST OF ROWS SHOWING SALES DATE,ORDER NUMBER,PRODUCT NUMBER,
--CUSTOMER NUMBER,QUANTITY,TOTAL AMOUNT OF SALES TABLE
SELECT SALES_DATE,ORDER_ID,PRODUCT_ID,CUSTOMER_ID,QUANTITY,TOTAL_AMOUNT FROM SALES;
--5.PRODUCE A LIST OF ROWS SHOWING PRODUCT NUMBER,PRODUCT NAME,COLOR FROM PRODUCT
SELECT PRODUCT_ID,PRODUCT_NAME,COLOR FROM PRODUCT;
/*****************************EXERCISE 2**************************************/
--1.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM THE SALES TABLE WHERE TOTAL
--AMOUNT GREATER THAN 1000
SELECT * FROM SALES WHERE TOTAL_AMOUNT>1000;
--2.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE TOTAL AMOUNT
--IS NOT EQUAL TO 44
SELECT * FROM SALES WHERE TOTAL_AMOUNT!=44;
--3.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE QUANTITY
--IS LESS THAN OR EQUAL TO 10
SELECT * FROM SALES WHERE QUANTITY<=10;
--4.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE SALES DATA
--IS EQUAL TO 9TH FEBRUARY 2015
SELECT * FROM SALES WHERE SALES_DATE='09-02-15';
--5.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM PRODUCT TABLE WHERE COLOR
--IS EQUAL TO RED
SELECT * FROM PRODUCT WHERE COLOR='RED';
--6.PRODUCE LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE TOTAL AMOUNT
--IS GREATER THAN OR EQUAL TO SALES AMOUNT
SELECT * FROM SALES WHERE TOTAL_AMOUNT>=SALES_AMOUNT;
/*********************PRACTICE****************************/
SELECT * FROM SALES WHERE TOTAL_AMOUNT>1000 AND TOTAL_AMOUNT<2000;
SELECT * FROM SALES WHERE TOTAL_AMOUNT<1000 OR TOTAL_AMOUNT>1500;
SELECT * FROM SALES WHERE TOTAL_AMOUNT BETWEEN 1000 AND 2000;
SELECT * FROM SALES WHERE TOTAL_AMOUNT NOT BETWEEN 1000 AND 2000;
SELECT * FROM SALESPERSON;
SELECT * FROM SALESPERSON WHERE CITY IN ('CUMMING','FLORIDA');
SELECT * FROM SALESPERSON WHERE CITY NOT IN ('CUMMING','FLORIDA');
SELECT * FROM SALES_HISTORY;
SELECT * FROM SALES_HISTORY WHERE ORDER_ID LIKE '%67';
SELECT * FROM SALES WHERE UNIT_PRICE > ALL(20,30,40);
SELECT * FROM SALES WHERE UNIT_PRICE > ANY(30,40);
/********************************EXERCISE 3*********************************/
--1.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE
--TOTAL AMOUNT IS NOT BETWEEN 1 AND 100
SELECT * FROM SALES WHERE TOTAL_AMOUNT NOT BETWEEN 1 AND 100;
--2.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE
--QUANTITY HAS VALUES 2 OR 2 0R 10
SELECT * FROM SALES WHERE QUANTITY = ANY(20,2,10);
--3.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM PRODUCT TABLE WHERE
--PRODUCT NAME STARTS WITH 'Mob'
SELECT * FROM PRODUCT WHERE PRODUCT_NAME LIKE 'Mob%';
--4.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE
--TOTAL AMOUNT IS GREATER THAN 50,100 AND 200
SELECT * FROM SALES WHERE TOTAL_AMOUNT > ALL(50,100,200);
--5.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM PRODUCT TABLE WHERE
--COLOR IS EQUAL TO NULL VALUE
SELECT * FROM PRODUCT WHERE COLOR IS NULL;
--6.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM SALES TABLE WHERE
--TOTAL AMOUNT IS GREATER THAN 100 AND QUANTITY LESS THAN 20
SELECT * FROM SALES WHERE TOTAL_AMOUNT>100 AND QUANTITY<20;
--QUERY TO VIEW CURRENT DATE FORMAT
SELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER ='NLS_DATE_FORMAT';
--QUERY TO GET CPU, EXECUTION TIME OF A QUERY
SELECT CPU_TIME,EXECUTIONS FROM V$SQLAREA WHERE UPPER (SQL_TEXT) LIKE 'SELECT * FROM PRODUCT';
/***********************************DAY 2 : 6 JUNE 2017,TUESDAY**********************/
SELECT FIRST_NAME||' '||LAST_NAME FROM CUSTOMER;
SELECT FIRST_NAME||' '||MIDDLE_NAME||' '||LAST_NAME FROM CUSTOMER;
SELECT FIRST_NAME||' '||MIDDLE_NAME||' '||LAST_NAME AS FULL_NAME FROM CUSTOMER;
SELECT 'MY NAME IS '||FIRST_NAME||' '||MIDDLE_NAME||' '||LAST_NAME AS FULL_NAME FROM CUSTOMER ;
SELECT 'ADDRESS OF '||FIRST_NAME||' '||LAST_NAME ||' IS '||ADDRESS_LINE1 AS ADDRESS FROM CUSTOMER;
/*************************************************EXERCISE 4**********************************************/
--1.PRODUCE A LIST OF ROWS SHOWING SALES DATE,PRODUCT NUMBER,ORDER NUMBER,SALES AMOUNT,
--TAX AMOUNT AND A CALCULATED COLUMN(SUM OF SALES AMOUNT) FROM SALES TABLE
SELECT SALES_DATE,PRODUCT_ID,ORDER_ID,SALES_AMOUNT,TAX_AMOUNT,SALES_AMOUNT+TAX_AMOUNT
AS CALCULATED_AMOUNT FROM SALES;
--2.PRODUCE A LIST OF ROWS SHOWING ALL COLUMNS FROM THE SALES TABLE WHERE QUANTITY PLUS
--10 IS GREATER THAN OR EQUAL TO 20
SELECT * FROM SALES WHERE QUANTITY+10>=20;
--3.PRODUCE A LIST OF ROWS SHOWING SALES DATE,PRODUCT NUMBER,ORDER NUMBER,SALES AMOUNT,
--TAX AMOUNT AND CALCULATED COLUMN(TOTAL AMOUNT MINUS 30) FROM SALES TABLE
SELECT SALES_DATE,PRODUCT_ID,ORDER_ID,SALES_AMOUNT,TAX_AMOUNT,TOTAL_AMOUNT,TOTAL_AMOUNT-30
AS CALCULATED_AMOUNT FROM SALES ;
/**************ORDER BY STATEMENT*******************/
SELECT * FROM CUSTOMER ORDER BY CITY;
SELECT * FROM PRODUCT ORDER BY LIST_PRICE;
SELECT * FROM PRODUCT ORDER BY LIST_PRICE DESC;
SELECT LIST_PRICE,PRODUCT_NAME,COLOR FROM PRODUCT ORDER BY LIST_PRICE DESC;
SELECT PRODUCT_ID,PRODUCT_SIZE FROM PRODUCT ORDER BY PRODUCT_ID ASC;
SELECT PRODUCT_ID,PRODUCT_SIZE FROM PRODUCT ORDER BY PRODUCT_ID DESC;
/**************************EXERCISE 5**************************************/
--1.PRODUCE A LIST OF ALL ROWS SHOWING SALES DATE,PRODUCT NUMBER,ORDER NUMBER
--SALES AMOUNT,TAX AMOUNT FROM THE SALES TABLE AND SORT IT BY COLUMN TAX AMOUNT
--ASCENDING ORDER.
SELECT SALES_DATE,PRODUCT_ID,ORDER_ID,SALES_AMOUNT,TAX_AMOUNT FROM SALES ORDER BY TAX_AMOUNT ASC;
--2.PRODUCE A LIST OF ALL ROWS SHOWING SALES DATE,PRODUCT NUMBER,ORDER NUMBER
--SALES AMOUNT,TAX AMOUNT FROM THE SALES TABLE AND SORT IT BY COLUMN SALES AMOUNT
--AND TAX AMOUNT IN ASCENDING ORDER.
SELECT SALES_DATE,PRODUCT_ID,ORDER_ID,SALES_AMOUNT,TAX_AMOUNT FROM SALES ORDER BY SALES_AMOUNT,TAX_AMOUNT ASC;
--3.PRODUCE A LIST OF ALL ROWS SHOWING ORDER NUMBER,SALES DATE,PRODUCT NUMBER
--SALES AMOUNT,TAX AMOUNT FROM THE SALES TABLE AND SORT IT BY COLUMN ORDER NUMBER
-- IN DESCENDING ORDER.
SELECT ORDER_ID,SALES_DATE,PRODUCT_ID,SALES_AMOUNT,TAX_AMOUNT FROM SALES ORDER BY ORDER_ID DESC;
/*******************************UNION*************************/
SELECT SALES_DATE FROM SALES_HISTORY
UNION SELECT SALES_DATE FROM SALES
ORDER BY SALES_DATE;
SELECT SALES_DATE,CUSTOMER_ID FROM SALES_HISTORY
UNION SELECT SALES_DATE,CUSTOMER_ID FROM SALES
ORDER BY SALES_DATE;
SELECT UNIT_PRICE,QUANTITY FROM SALES_HISTORY /*DUPLICATE VALUES ALSO DISPLAY*/
UNION ALL SELECT UNIT_PRICE,QUANTITY FROM SALES
ORDER BY QUANTITY;
SELECT UNIT_PRICE,QUANTITY,SALES_DATE FROM SALES_HISTORY
UNION ALL SELECT UNIT_PRICE,QUANTITY,SALES_DATE FROM SALES
ORDER BY UNIT_PRICE;
/**************************EXERCISE 6********************************/
--1.PRODUCE A LIST OF ALL ROWS SHOWING ORDER NO BY COMBINING DATA FROM SALES AND SALES HISTORY TABLE.
SELECT ORDER_ID FROM SALES
UNION ALL
SELECT ORDER_ID FROM SALES_HISTORY;
--2.PRODUCE A LIST OF DISTINCT ROWS FROM SALES & SALES HISTORY TABLE USING COLUMN ORDER NUMBER.
SELECT ORDER_ID FROM SALES
UNION
SELECT ORDER_ID FROM SALES_HISTORY;
--3.PRODUCE A LIST OF ROWS WHICH ARE PRESENT IN SALES AND SALES HISTORY TABLE USING COLUMN ORDER NO.
SELECT ORDER_ID FROM SALES
INTERSECT
SELECT ORDER_ID FROM SALES_HISTORY;
--4.PRODUCE A LIST OF ROWS WHICH ARE PRESENT IN SALES TABLE AND ARE NOT PRESENT IN SALES HISTORY TABLE
--USING COLUMN ORDER NO
SELECT ORDER_ID FROM SALES
MINUS
SELECT ORDER_ID FROM SALES_HISTORY;
/**************************AGGREGATE FUNCTIONS**************************/
SELECT * FROM SALES;
SELECT MIN(UNIT_PRICE) FROM SALES; --MIN FUNCTION
SELECT MAX(UNIT_PRICE) FROM SALES; --MAX FUNCTION
SELECT AVG(UNIT_PRICE) FROM SALES; --AVG FUNCTION
SELECT COUNT(UNIT_PRICE) FROM SALES;--COUNT FUNCTION
SELECT SUM(UNIT_PRICE) FROM SALES; --SUM FUNCTION
SELECT COUNT (*) FROM SALES ; --COUNT OF ROWS IN SALES TABLE
SELECT VARIANCE (UNIT_PRICE) FROM SALES; --VARIANCE FUNCTION
SELECT STDDEV(UNIT_PRICE) FROM SALES;--STANDARD DEVIATION FUNCTION
SELECT COUNT(SALES_DATE)FROM SALES; --COUNT OF RECORDS IN SALES_DATE COLUMN
SELECT * FROM PRODUCT; /*COUNT DOES NOT TAKE NULL VALUES*/
SELECT COUNT(COLOR)FROM PRODUCT;
/*--GROUP BY CLAUSE--*/
SELECT * FROM SALES;
SELECT AVG(SALES_AMOUNT) FROM SALES
GROUP BY SALES_DATE;
SELECT * FROM PRODUCT;
SELECT COLOR,MAX(LIST_PRICE) FROM PRODUCT
GROUP BY COLOR;
SELECT * FROM SALES;
SELECT SUM(QUANTITY) FROM SALES
GROUP BY SALES_DATE
ORDER BY SALES_DATE;
SELECT * FROM SALES;
SELECT SALES_DATE,AVG(QUANTITY) FROM SALES
GROUP BY SALES_DATE
ORDER BY SALES_DATE;
SELECT * FROM SALES;
SELECT SALES_DATE,MIN(QUANTITY) FROM SALES
GROUP BY SALES_DATE
ORDER BY SALES_DATE;
/*--HAVING CLAUSE--*/
SELECT * FROM SALES; /*SALES TABLE*/
SELECT SALES_DATE,PRODUCT_ID,SUM(SALES_AMOUNT)
FROM SALES
GROUP BY SALES_DATE,PRODUCT_ID
ORDER BY SALES_DATE;
SELECT * FROM PRODUCT; /*PRODUCT TABLE*/
SELECT COUNT(PRODUCT_CATEGORY) FROM PRODUCT;
SELECT COUNT(*)FROM PRODUCT;
SELECT COUNT(DISTINCT PRODUCT_CATEGORY) FROM PRODUCT;
SELECT COUNT(DISTINCT COLOR) FROM PRODUCT;
/**********************************EXERCISE 7***************************************/
--1.WRITE A QUERY THAT SHOWS THE NUMBER OF ROWS IN SALES TABLE.
SELECT COUNT(*)FROM SALES;
--2.PRODUCE A LIST WHICH SHOWS TOTAL SALES VOLUME BROKEN BY SALES DATE FROM SALES TABLE.
SELECT * FROM SALES;
SELECT SALES_DATE,SUM(TOTAL_AMOUNT)
FROM SALES
GROUP BY SALES_DATE;
--3.PRODUCE A LIST WHICH SHOWS MAXIMUM SALES VOLUME BROKEN BY SALES DATE AND ORDER NUMBER FROM SALES TABLE.
SELECT ORDER_ID,SALES_DATE,MAX(TOTAL_AMOUNT)
FROM SALES
GROUP BY ORDER_ID,SALES_DATE;
--4.PRODUCE A LIST WHICH SHOWS MINIMUM SALES VOLUME BROKEN BY SALES DATE FROM SALES TABLE
--AND MINIMUM SALES VOLUME IS LESS THAN 100.
SELECT SALES_DATE,MIN(TOTAL_AMOUNT)
FROM SALES
GROUP BY SALES_DATE
HAVING MIN(TOTAL_AMOUNT)<100;
/*********************JOINS***************************/
SELECT * FROM PRODUCT;
SELECT * FROM SALES;
SELECT SALES.PRODUCT_ID ,SALES.SALES_DATE,SALES_HISTORY.ORDER_ID FROM SALES
INNER JOIN SALES_HISTORY
ON SALES.PRODUCT_ID=SALES_HISTORY.ORDER_ID;
SELECT S.SALES_DATE,S.ORDER_ID,S.PRODUCT_ID,P.PRODUCT_NAME
FROM SALES S
JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
SELECT S.SALES_DATE,S.ORDER_ID,S.PRODUCT_ID,P.PRODUCT_NAME
FROM SALES S
INNER JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
SELECT S.SALESPERSON_ID,S.CUSTOMER_ID,P.CUSTOMER_ID,P.CITY
FROM SALES S
INNER JOIN CUSTOMER P
ON S.CUSTOMER_ID=P.CUSTOMER_ID;
SELECT K.CUSTOMER_ID,K.FIRST_NAME,S.CUSTOMER_ID,S.QUANTITY,S.PRODUCT_ID,P.PRODUCT_ID
FROM CUSTOMER K
JOIN SALES S
ON K.CUSTOMER_ID=S.CUSTOMER_ID
JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
SELECT S.SALES_DATE,S.ORDER_ID,S.PRODUCT_ID,P.PRODUCT_NAME
FROM SALES S
JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
SELECT S.SALES_DATE,S.ORDER_ID,S.PRODUCT_ID,P.PRODUCT_NAME
FROM SALES S
INNER JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
SELECT S.SALESPERSON_ID,S.CUSTOMER_ID,P.CUSTOMER_ID,P.CITY
FROM SALES S
INNER JOIN CUSTOMER P
ON S.CUSTOMER_ID=P.CUSTOMER_ID;
SELECT K.CUSTOMER_ID,K.FIRST_NAME,S.CUSTOMER_ID,S.QUANTITY,S.PRODUCT_ID,P.PRODUCT_ID
FROM CUSTOMER K --MULTIPLE JOIN
JOIN SALES S
ON K.CUSTOMER_ID=S.CUSTOMER_ID
JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
/*--INNER JOIN EXAMPLES--*/
SELECT P.PRODUCT_ID,P.PRODUCT_NAME,S.PRODUCT_ID --INNER JOIN
FROM PRODUCT P
INNER JOIN SALES S
ON P.PRODUCT_ID=S.PRODUCT_ID;
SELECT P.PRODUCT_ID,P.PRODUCT_NAME,S.PRODUCT_ID --INNER JOIN USING WHERE CLAUSE
FROM PRODUCT P
INNER JOIN SALES S
ON P.PRODUCT_ID=S.PRODUCT_ID
WHERE P.PRODUCT_ID>105;
SELECT P.PRODUCT_ID,P.PRODUCT_NAME,S.PRODUCT_ID --INNER JOIN USING ORDER BY CLAUSE
FROM PRODUCT P
INNER JOIN SALES S
ON P.PRODUCT_ID=S.PRODUCT_ID
ORDER BY P.PRODUCT_NAME;
SELECT P.PRODUCT_ID,P.PRODUCT_NAME,S.PRODUCT_ID --INNER JOIN USING ORDER BY AND WHERE CLAUSE
FROM PRODUCT P --ANSI JOIN
INNER JOIN SALES S
ON P.PRODUCT_ID=S.PRODUCT_ID
WHERE P.PRODUCT_ID>105
ORDER BY P.PRODUCT_NAME;
SELECT P.PRODUCT_NAME,P.PRODUCT_ID,S.PRODUCT_ID --NON ANSI JOIN
FROM PRODUCT P,SALES S
WHERE P.PRODUCT_ID=S.PRODUCT_ID;
SELECT P.PRODUCT_NAME,P.PRODUCT_ID,S.PRODUCT_ID --ORDER BY
FROM PRODUCT P,SALES S
WHERE P.PRODUCT_ID=S.PRODUCT_ID
ORDER BY P.PRODUCT_NAME;
SELECT P.PRODUCT_ID,P.PRODUCT_NAME,S.PRODUCT_ID
FROM PRODUCT P
LEFT OUTER JOIN SALES S
ON P.PRODUCT_ID=S.PRODUCT_ID;
SELECT P.PRODUCT_ID,P.PRODUCT_NAME,S.PRODUCT_ID
FROM PRODUCT P
RIGHT OUTER JOIN SALES S
ON P.PRODUCT_ID=S.PRODUCT_ID;
/****************************EXERCISE 8******************************/
--1.PRODUCE A LIST WHICH RETURNS ALL ROWS FROM SALES AND PRODUCT TABLES WHERE THERE IS A
--MATCHING PRODUCT_ID VALUE IN BOTH THE SALES AND PRODUCT TABLES
SELECT * FROM SALES S
INNER JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
--2.PRODUCE A LIST WHICH RETURNS ALL ROWS FROM SALES AND ONLY THOSE ROWS FROM THE PRODUCT
--TABLE WHERE THE JOINED FIELD PRODUCT_ID IS EQUAL
SELECT * FROM SALES S
LEFT OUTER JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
--3.PRODUCE A LIST WHICH RETURNS ALL ROWS FROM PRODUCT AND ONLY THOSE ROWS FROM THE SALES
--TABLE WHERE THE JOINED FIELD PRODUCT_ID IS EQUAL
SELECT * FROM SALES S
RIGHT OUTER JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
--4.PRODUCE A LIST WHICH RETURNS ALL ROWS FROM SALES AND PRODUCT TABLE IRRESPECTIVE
--OF PRODUCT_ID MATCHED BETWEEN THESE TABLES(PRODUCT CAN MATCH BETWEEN BOTH THESE TABLES
--OR IT MIGHT NOT MATCH)
SELECT * FROM SALES S
FULL JOIN PRODUCT P
ON S.PRODUCT_ID=P.PRODUCT_ID;
/**************************NUMERIC FUNCTIONS******************************/
SELECT SIN(30 * 3.14159265359/180) --SINE FUNCTION
"SINE OF 30 DEGREE " FROM DUAL;
SELECT TAN(30 * 3.14159265359/180) --TANGENT FUNCTION
"TANGENT OF 30 DEGREE " FROM DUAL;
SELECT COS(30 * 3.14159265359/180) --COSINE FUNCTION
"COSINE OF 30 DEGREE " FROM DUAL;
SELECT ABS(-15) "ABSOLUTE" FROM DUAL; --ABSOLUTE FUNCTION
SELECT ACOS(.4)"ARC_COSINE" FROM DUAL; --RETURN ARC OF COSINE...N SHOULD BETWEEN -1 AND 1
SELECT ACOS(-0.4)"ARC_COSINE" FROM DUAL;
SELECT ASIN(.4)"ARC_SINE" FROM DUAL; --RETURN ARC OF SINE
SELECT ASIN(-0.7)"ARC_SINE" FROM DUAL;
SELECT ATAN(.4)"ARC_TANGENT" FROM DUAL; --RETURN ARC OF TANGENT
SELECT ATAN2(0.4,0.6)"ARC_TANGENT" FROM DUAL; --RETURN ARC OF TANGENT 0.4 AND 0.6
SELECT SQRT(36) "SQUARE ROOT" FROM DUAL; --SQUARE ROOT
SELECT LOG(10,100) "LOG BASE 10 OF 100" FROM DUAL; --LOGARITHMIC FUNCTION
SELECT MOD(11,4) "MODULUS" FROM DUAL; --MODULUS FUNCTION
/*********************CHARACTER FUNCTION*****************************/
SELECT * FROM CUSTOMER;
SELECT CHR(67)||CHR(65)||CHR(84) "DOG" FROM DUAL;
--C0NCATENATION--
SELECT CONCAT(CONCAT(FIRST_NAME, '''s ADDRESS IS '), ADDRESS_LINE1)
FROM CUSTOMER;
SELECT CONCAT(CONCAT(FIRST_NAME, '''s ADDRESS IS ') , ADDRESS_LINE1) AS DETAILS
FROM CUSTOMER ;
SELECT CUSTOMER_ID,CONCAT(CONCAT(FIRST_NAME, '''s ADDRESS IS ') , ADDRESS_LINE1) AS DETAILS
FROM CUSTOMER
ORDER BY CUSTOMER_ID;
SELECT CUSTOMER_ID,CONCAT(CONCAT(FIRST_NAME, '''s ADDRESS IS ') , ADDRESS_LINE1) AS DETAILS
FROM CUSTOMER
ORDER BY CUSTOMER_ID DESC;
--INIT CAP--
SELECT * FROM PRODUCT;
SELECT INITCAP('the soap') "Capitals" FROM DUAL;
/*DATE*/
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL; --CURRENT DATE
SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL;--CURRENT TIMESTAMP
SELECT TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "NOW"FROM DUAL; --SYSTEM DATE
SELECT TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS') "NOW"FROM DUAL;
SELECT DBTIMEZONE FROM DUAL; --DATABASE TIME ZONE
SELECT MONTHS_BETWEEN (TO_DATE('01-07-2017','DD-MM-YYYY'), --MONTHS BETWEEN 2 DATES
TO_DATE('01-01-2017','DD-MM-YYYY') ) "MONTHS"
FROM DUAL;
SELECT SYSDATE, --DAYS LEFT FROM CURRENT DATE
LAST_DAY(SYSDATE) "LAST",
LAST_DAY(SYSDATE) - SYSDATE "DAYS LEFT"
FROM DUAL;
SELECT TO_CHAR(SYSDATE,'DAY') AS CURRENT_DAY FROM DUAL ; --CURRENT DAY
SELECT CURRENT_TIMESTAMP FROM DUAL; --GET CURRENT TIMESTAMP
SELECT NEXT_DAY('06-07-2017','SUNDAY') "NEXT DAY" FROM DUAL; --WHEN IS NEXT SUNDAY
/**************NEW TABLE****************/
CREATE TABLE STUDENT --CREATE TABLE
(
ROLL_NO NUMBER,
STUDENT_NAME VARCHAR(30),
MARKS NUMBER(10,2)
);
INSERT INTO STUDENT --INSERT INTO TABLE
(
ROLL_NO,STUDENT_NAME,MARKS
)
VALUES
(
1,'SONALI',80
);
INSERT INTO STUDENT
(
ROLL_NO,STUDENT_NAME,MARKS
)
VALUES
(
2,'SHEETAL',85
);
INSERT INTO STUDENT
(
ROLL_NO,STUDENT_NAME,MARKS
)
VALUES
(
3,'PRIYANKA',70
);
INSERT INTO STUDENT
(
ROLL_NO,STUDENT_NAME,MARKS
)
VALUES
(
4,'NEHA',85
);
INSERT INTO STUDENT
(
ROLL_NO,STUDENT_NAME,MARKS
)
VALUES
(
5,'POOJA',75
);
INSERT INTO STUDENT
(
ROLL_NO,STUDENT_NAME,MARKS
)
VALUES
(
6,'RASHMI',82
);
SELECT * FROM STUDENT; --DISPLAY TABLE
UPDATE STUDENT SET MARKS = 93 WHERE ROLL_NO=2; --UPDATE ROW IN TABLE
ALTER TABLE STUDENT ADD BRANCH VARCHAR2(30); --ALTER TABLE ADD COLUMN BRANCH
UPDATE STUDENT SET BRANCH ='COMPUTERS';
ALTER TABLE STUDENT ADD ADMISSION_DATE DATE; --ALTER TABLE ADD COLUMN DATE
ALTER TABLE STUDENT ADD ADDRESS VARCHAR2(30); --ALTER TABLE ADD COLUMN ADDRESS
UPDATE STUDENT SET ADMISSION_DATE ='02-01-17' WHERE ROLL_N0<4;
COMMIT;
UPDATE STUDENT SET BRANCH='ENTC' WHERE ROLL_NO= 4;
UPDATE STUDENT SET BRANCH='IT' WHERE ROLL_NO>= 5;
SELECT * FROM STUDENT;
--NOT NULL CONSTRAINTS
CREATE TABLE DEMO
(
CODE NUMBER NOT NULL,
CITY VARCHAR(6) NOT NULL
);
SELECT * FROM DEMO;
--CHECK CONSTRAINT--
SELECT * FROM STUDENT; --SET CONSTRAINT ON MARKS
ALTER TABLE STUDENT
ADD CHECK(MARKS<100);
UPDATE STUDENT SET MARKS=20 WHERE STUDENT_NAME='RASHMI';
ALTER TABLE STUDENT --DEFINE CONSTRAINT
ADD CONSTRAINT MRK_CHECK CHECK (MARKS>50);
ALTER TABLE STUDENT --DEFINE CONSTRAINT
DROP CONSTRAINT MRK_CHECK;