Followers

Monday, 4 September 2017

ORACLE SQL Reference Queries for beginners

/****************************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;
























No comments: