Sunteți pe pagina 1din 47

DHARMSINH DESAI UNIVERSITY, NADIAD

PROJECT REPORT

SUBJECT: DATABASE MANAGEMENT SYSTEM

ON

ONLINE SHOPPPING PORTAL

GUIDED BY—PROF. S.K.VITHLANI


PREPARED BY – DIVYA.K.VAKIL (IT-121)
B. Tech 2015-2019 Batch
DEPARTMENT OF INFORMATION TECHNOLOGY

CERTIFICATE
This is to certify that
DIVYA.K.VAKIL

student of B. Tech. Semester V have completed her


project work entitled
“ONLINE SHOPPING PORTAL ”
in the subject of DATABASE MANAGEMENT SYSTEM
of DHARAMSINH DESAI UNIVERSITY, Faculty of
Technology of academic year 2017.

PROF: S.K. VITHLANI PROF: R.S. CHHAJED


ASSISTANT PROFFESOR HEAD OF DEPARTMENT
INDEX

 Acknowledgement 4

 System Overview 5

 ER Diagram 6

 Relational Schema Diagram 7

 Database Schema 8

 Queries 9

 Conclusion 45

 Bibliography 46
ACKNOWLEDGEMENT

The success and final outcome of this project required a lot of guidance
and assistance from many people and I am extremely privileged to have
got this all along the completion of my project. All that I have done is only
due to such supervision and assistance and I would not forget to thank
them.

I respect and thank R.S.CHHAJED , for providing me an opportunity to do


the project work in the subject of DATABASE MANAGEMENT SYSTEM on
ONLINE SHOPPING PORTAL and giving us all support and guidance which
made me complete the project duly. I am extremely thankful to him for
providing such a nice support and guidance.

I owe my deep gratitude to our project guide S.K.VITHLANI , who took keen
interest on our project work and guided us all along, till the completion of
our project work by providing all the necessary information for developing
a good system.

I heartily thank my fellow mates for guidance and suggestions during this
project work.
SYSTEM OVERVIEW

Here I present you a database system for ONLINE SHOPPING


PORTAL.

The system stores data related to numerous Stores , product ,


users and their details.

Usage of the internet in our day to day life is increasing rapidly


and so is increasing the effort to make everything as easy as
possible for the consumers and therefore this system is made
which makes shopping
easier.
ER DIAGRAM
RELATIONAL DIAGRAM
CREATE Queries:

1. STORE
CREATE table "STORE" (
"ST_ID" VARCHAR2(20) NOT NULL,
"NAME"VARCHAR2(20),
"WB_ADD" VARCHAR2(50),
"CC_NO." NUMBER(12,0),
"A_ID"VARCHAR2(20) NOT NULL,
constraint "STORE_PK" primary key ("ST_ID")
)

ALTER TABLE "STORE" ADD CONSTRAINT "STORE_FK"


FOREIGN KEY ("A_ID")
REFERENCES "ADMIN" ("A_ID")
ON DELETE CASCADE

DESC STORE:
INSERT INTO STORE (ST_ID, NAME ,WB_ADD,CC_NO. ,A_ID) VALUES
(―ST01‖, ‖MYNTRA‖, ―www.Myntra.com‖, ‖9856478569‖, ‖A01‖);

2. ADMIN
CREATE table "ADMIN" (
"A_ID"VARCHAR2(20) NOT NULL,
"A_NAME" VARCHAR2(20),
"A_PHONE_NO." NUMBER(10,0) NOT NULL,
"A_USERNAME" VARCHAR2(20),
"A_EMAILID" VARCHAR2(20) NOT NULL,
"A_PASSWORD" VARCHAR2(20),
constraint "ADMIN_PK" primary key ("A_ID")
)
DESC ADMIN:

INSERT INTO ADMIN (A_ID, A_NAME, A_PHONE_NO.,


A_USERNAME, A_EMAILID, A_PASSWORD) VALUES (‗A01‘,
‗AJAY PATEL‘, ‗985689523‘ , ‗AJAY111‘, ‗ajayp@gmail.com‘,
‗12345abc‘);
3. CUSTOMER
CREATE table "CUSTOMER" (
"CS_ID"NUMBER(10,0) NOT NULL,
"CS_USERNAME" VARCHAR2(20),
"CS_PASSWORD" VARCHAR2(10),
"CS_EMAILID" VARCHAR2(15),
"CS_PHONE_NO." NUMBER(10,0),
"CART_ID" NUMBER(10,0),
"STREET_NAME" VARCHAR2(15),
"CITY_NAME" VARCHAR2(15),
"STATE_NAME" VARCHAR2(15),
constraint "CUSTOMER_PK" primary key ("CS_ID")
)
alter table "CUSTOMER" add
("HOUSE_NAME/NO." VARCHAR2(10) NULL)
alter table "PRODUCT" add
("ST_ID" VARCHAR2(15) NOT NULL)
alter table "PRODUCT" add constraint
"PRODUCT_CON" foreign key ("ST_ID") references "STORE"
("ST_ID") on delete cascade

DESC CUSTOMER:
INSERT INTO CUSTOMER (CS_ID, CS_USERNAME, CS_PASSWORD,
CS_EMAILID, CS_PHONE_NO., CART_ID, STREET_NAME, CITY_NAME,
STATE_NAME) VALUES (‗991‘, ‗URVISH VASANI‘ , ‗KJGEWB‘,
‗vas20@gmail.com‘, ‗9856712458‘, ‗NIKOL‘, ‗AHMEDABAD‘, ‗GUJARAT‘,
‗SARGAM‘, ‗ST01‘);

4. CATEGORIES
CREATE table "CATEGORIES" (
"CG_ID" VARCHAR2(10) NOT NULL,
"CG_NAME" VARCHAR2(30),
constraint "CATEGORIES_PK" primary key ("CG_ID")
)
alter table "CATEGORIES" add
("ST_ID" VARCHAR2(15) NOT NULL)

alter table "CATEGORIES" add constraint


"CATEGORIES_CON" foreign key ("ST_ID") references "STORE"
("ST_ID") on delete cascade
DESC CATEGORIES:

INSERT INTO CATEGORIES (CG_ID,CG_NAME, ST_ID)


VALUES (‗C01‘, ‗MEN‘, ‗ST01‘);

5. SUB CATEGORIES
CREATE table "SUB-CATEGORIES" (
"SCG_ID" VARCHAR2(20) NOT NULL,
"CG_ID" VARCHAR2(10) NOT NULL,
"SCG_NAME" VARCHAR2(20),
constraint "SUB-CATEGORIES_PK" primary key
("SCG_ID")
)
alter table "SUB-CATEGORIES" add
("ST_ID" VARCHAR2(15) NOT NULL)

alter table "SUB-CATEGORIES" add constraint


"SUB-CATEGORIES_CON" foreign key ("ST_ID") references "STORE"
("ST_ID") on delete cascade

alter table ―SUB-CATEGORIES" rename


to ―SUB_CATEGORIES"

DESC SUB_CATEGORIES:

INSERT INTO SUB_CATEGORIES (SCG_ID, CG_ID, SCG_NAME,


ST_ID)
VALUES (‗SC101‘, ‗C01‘, ‗SHIRT‘, ‗ST01‘);
6. BRAND
CREATE table "BRAND" (
"B_ID"VARCHAR2(10) NOT NULL,
"CG_ID" VARCHAR2(10) NOT NULL,
"SCG_ID" VARCHAR2(20) NOT NULL,
"B_NAME" VARCHAR2(20),
constraint "BRAND_PK" primary key ("B_ID")
)

ALTER TABLE "BRAND" ADD CONSTRAINT "BRAND_FK"


FOREIGN KEY ("SCG_ID")
REFERENCES "SUB-CATEGORIES" ("SCG_ID")
ON DELETE CASCADE

ALTER TABLE "BRAND" ADD CONSTRAINT "BRAND_FK2"


FOREIGN KEY ("CG_ID")
REFERENCES "CATEGORIES" ("CG_ID")
ON DELETE CASCADE

alter table "BRAND" add


("ST_ID" VARCHAR2(15) NOT NULL)

alter table "BRAND" add constraint


"BRAND_CON" foreign key ("ST_ID") references "STORE" ("ST_ID") on
delete cascade
DESC BRAND:

INSERT INTO BRAND (B_ID, CG_ID, SCG_ID, B_NAME, ST_ID) VALUES


(‗B01‘, ‗C01‘, ‗SC101‘, ‗BENETTON‘, ‗ST01‘);
7. PRODUCT

CREATE table "PRODUCT" (


"P_ID"VARCHAR2(10) NOT NULL,
"B_ID"VARCHAR2(20) NOT NULL,
"CG_ID" VARCHAR2(10) NOT NULL,
"SCG_ID" VARCHAR2(20) NOT NULL,
"P_NAME" VARCHAR2(15),
"P_PRICE" NUMBER(7,2),
"P_SIZE" VARCHAR2(5),
constraint "PRODUCT_PK" primary key ("P_ID")
)
ALTER TABLE "PRODUCT" ADD CONSTRAINT "PRODUCT_FK"
FOREIGN KEY ("B_ID")
REFERENCES "BRAND" ("B_ID")
ON DELETE CASCADE
alter table "CUSTOMER" add
("HOUSE_NAME/NO." VARCHAR2(10) NULL)

ALTER TABLE "PRODUCT" ADD CONSTRAINT "PRODUCT_FK2"


FOREIGN KEY ("CG_ID")
REFERENCES "CATEGORIES" ("CG_ID")
ON DELETE CASCADE

ALTER TABLE "PRODUCT" ADD CONSTRAINT "PRODUCT_FK3"


FOREIGN KEY ("SCG_ID")
REFERENCES "SUB-CATEGORIES" ("SCG_ID")
ON DELETE CASCADE
alter table "PRODUCT" add
("DS_ID" VARCHAR2(10) NOT NULL)

alter table "PRODUCT" add constraint


"PRODUCT_CON" foreign key ("DS_ID") references "DISCOUNT"
("DS_ID")

alter table ―PRODUCT" add


("ST_ID" VARCHAR2(15) NOT NULL)
alter table ―PRODUCT" add constraint
―PRODUCT_CON1" foreign key ("ST_ID") references "STORE"
("ST_ID") on delete cascade

DESC PRODUCT:

INSERT INTO PRODUCT (P_ID, B_ID, CG_ID, SCG_ID, P_NAME, P_PRICE


,P_SIZE, DS_ID, P_CODE, ST_ID) VALUES (‗P112‘, ‗B01‘, ‗C01‘, ‗SC101‘,
‗STRIPPED RED SHIRT‘, ‗4699‘, ‗38‘, ‗D01‘, ‗356987‘, ‗ST01‘);
8. CART ITEM
CREATE table "CART_ITEM" (
"CI_ID" VARCHAR2(10) NOT NULL,
"P_ID"VARCHAR2(20) NOT NULL,
"QUANTITY" NUMBER(20,0)
)
alter table "CART_ITEM" add constraint "CART_ITEM_PK" primary key
("CI_ID―)

ALTER TABLE "CART_ITEM" ADD CONSTRAINT "CART_ITEM_FK"


FOREIGNKEY ("P_ID")
REFERENCES "PRODUCT" ("P_ID") ON DELETE CASCADE

alter table "CART_ITEM" add


("CR_ID" VARCHAR2(10) NOT NULL)
alter table "CART_ITEM" add constraint
"CART_ITEM_CON" foreign key ("CR_ID") references "CART" ("CR_ID")
on delete cascade

DESC CART_ITEM:

INSERT INTO CART_ITEM (CI_ID, P_ID, QUANTITY, CR_ID) VALUES


(‗CI01‘, ‗P111‘,‗1‘, ‗CR501‘);
9. CART
CREATE table "CART" (
"CR_ID" VARCHAR2(50) NOT NULL,
"CS_ID" NUMBER(10,0) NOT NULL,
constraint "CART_PK" primary key ("CR_ID")
)

ALTER TABLE "CART" ADD CONSTRAINT "CART_FK"


FOREIGN KEY ("CS_ID")
REFERENCES "CUSTOMER" ("CS_ID")
ON DELETE CASCADE

DESC CART:

INSERT INTO CART (CR_ID, CS_ID) VALUES (‗CR501‘, ‗991‘);


10. PAYMENT
CREATE table "PAYMENT" (
"PY_ID" NUMBER(20,0) NOT NULL,
"CS_ID" NUMBER(10,0) NOT NULL,
"P_MODE" VARCHAR2(20),
―CR_ID" VARCHAR2(20),
constraint "PAYMENT_PK" primary key ("PY_ID")
)
ALTER TABLE "PAYMENT" ADD CONSTRAINT "PAYMENT_FK"
FOREIGN KEY ("CS_ID")
REFERENCES "CUSTOMER" ("CS_ID")
ON DELETE CASCADE
ALTER TABLE "PAYMENT" ADD CONSTRAINT "PAYMENT_FK1"
FOREIGN KEY ("CR_ID")
REFERENCES "CART" ("CR_ID")
ON DELETE CASCADE

DESC PAYMENT:

INSERT INTO PAYMENT (PY_ID, CS_ID, P_MODE, CR_ID) VALUES( ‗881‘,


‗991‘, ‗COD‘, ‗CR501‘);
11. DELIVERY
CREATE table "DELIVERY" (

―CR_ID‖ VARCHAR2(20,0) NOT NULL,


"D_HOUSE_NAME/NO." VARCHAR2(10),
"D_STREET_NAME" VARCHAR2(15),
"D_CITY_NAME" VARCHAR2(15),
"D_STATE_NAME" VARCHAR2(15),
)

ALTER TABLE "DELIVERY" ADD CONSTRAINT "DELIVERY_FK"


FOREIGN KEY ("CR_ID")
REFERENCES "CART" ("CR_ID")
ON DELETE CASCADE

DESC DELIVERY:
INSERT INTO DELIVERY (D_HOUSE_NAME/NO., D_STREET_NAME,
D_CITY_NAME,D_STATE_NAME, CR_ID) VALUES (‗SANJEEVNI‘, ‗CG
ROAD‘,‗SURAT‘, ‗GUJARAT‘, ‗CR502‘);

12. DISCOUNT
CREATE table "DISCOUNT" (
"DS_ID"VARCHAR2(10) NOT NULL,
"DS_OFFER" VARCHAR2(20),
"DS_VALIDITY" DATE,
constraint "DISCOUNT_PK" primary key ("DS_ID")
)
DESC DISCOUNT:

INSERT INTO DISCOUNT (DS_ID, DS_OFFER, DS_AMT) VALUES (‗D02‘,


‗GETOFF‘,‗300‘);

13. WISHLIST - CUSTOMER


CREATE table "WISHLIST-CUSTOMER" (
"W_ID"NUMBER(10,0) NOT NULL,
"CS_ID" NUMBER(10,0) NOT NULL,
"W_NAME" VARCHAR2(20),
constraint "WISHLIST-CUSTOMER_PK" primary key ("W_ID")
)

ALTER TABLE "WISHLIST-CUSTOMER" ADD CONSTRAINT


"WISHLIST-
CUSTOMER_FK"
FOREIGN KEY ("CS_ID")
REFERENCES "CUSTOMER" ("CS_ID")
ON DELETE CASCADE
alter table "WISHLIST-CUSTOMER" rename
to "WISHLIST_CUSTOMER"

DESC WISHLIST_CUSTOMER:

INSERT INTO WISHLIST_CUSTOMER (W_ID, CS_ID, W_NAME) VALUES


(‗1‘,‗991‘, ‗SUMMER‘);
14. WISHLIST - PRODUCT
CREATE table "WISHLIST-PRODUCT" (
"W_ID"NUMBER(10,0) NOT NULL,
"P_ID"VARCHAR2(20) NOT NULL
)

alter table "WISHLIST-PRODUCT" add constraint "WISHLIST-


PRODUCT_PK" primary key ("W_ID","P_ID")

ALTER TABLE "WISHLIST-PRODUCT" ADD CONSTRAINT "WISHLIST-


PRODUCT_FK"
FOREIGN KEY ("W_ID")
REFERENCES "WISHLIST-CUSTOMER" ("W_ID")
ON DELETE CASCADE

ALTER TABLE "WISHLIST-PRODUCT" ADD CONSTRAINT "WISHLIST-


PRODUCT_FK2"
FOREIGN KEY ("P_ID")
REFERENCES "PRODUCT" ("P_ID")
ON DELETE CASCADE
alter table "WISHLIST-PRODUCT" rename
to "WISHLIST_PRODUCT"

DESC WISHLIST_PRODUCT:
INSERT INTO WISHLIST_PRODUCT (W_ID,P_ID) VALUES (‗1‘, ‗P112‘);
Queries:
1. DISPLAY BRAND NAME AND THEIR CORRESPONDING CATEGORY

SELECT CG_NAME,B_NAME FROM CATEGORIES C, BRAND B WHERE


C.CG_ID=B.CG_ID;

2. DISPLAY ALL PRODUCTS WHICH AVAILS DISCOUNT OFFER

SELECT P_NAME,DS_ID FROM PRODUCT P WHERE P.DS_ID!= '0'


Aggregate Functions

1. LIST OF CUSTOMERS WHO HAVE SHOPPED

SELECT DISTINCT(CS_ID) FROM CART'

2. COUNT TOTAL NO. OF SHOPPINGS DONE:

SELECT COUNT(CR_ID) FROM CART WHERE CS_ID


IN(SELECT
DISTINCT(CS_ID) FROM CART)
Joins:
1. SHOW ALL PRODUCTS IN EACH WISHLIST

SELECT W_NAME , P_NAME FROM WISHLIST_CUSTOMER W INNER


JOIN WISHLIST_PRODUCT I ON W.W_ID=I.W_ID INNER JOIN PRODUCT
P ON I.P_ID=P.P_ID
Group by Clause:
1. COUNT TOTAL NO. OF PRODUCTS IN EACH SUB-CATEGORY

SELECT SCG_NAME, COUNT(P_NAME) FROM SUB_CATEGORIES S,


PRODUCT P WHERE S.SCG_ID=P.SCG_ID GROUP BY S.SCG_NAME

2. COUNT NO. OF TIMES EACH CUSTOMER HAS SHOPPED

SELECT CS_USERNAME, COUNT(CR_ID) FROM CUSTOMER C


INNER
JOIN CART CR ON C.CS_ID=CR.CS_ID GROUP BY C.CS_USERNAME
3.COUNT TOTAL AMOUNT OF EACH CART

SELECT C.CR_ID, SUM(P.P_PRICE) FROM CART C INNER JOIN


CART_ITEM
CI ON C.CR_ID=CI.CR_ID INNER JOIN PRODUCT P ON CI.P_ID=P.P_ID
GROUP BY C.CR_ID

Sub– Queries :
1. CUSTOMER WHO HAS OPTED FOR COD:

SELECT * FROM CUSTOMER WHERE CS_ID IN( SELECT CS_ID FROM


PAYMENT
WHERE P_MODE ='COD')
2. DISPLAY CART-ID WHICH AVAILS THE DISCOUNT OFFER:

SELECT * FROM CART WHERE CR_ID IN( SELECT CR_ID


FROM
CART_ITEM WHERE P_ID IN (SELECT P_ID FROM PRODUCT
WHERE DS_ID!='0'))

View:
1. VIEW TO DISPLAY FULL ADDRESS OF EACH CUSTOMER

CREATE VIEW DELIVERY_ADDRESS AS ( SELECT CR_ID ,( D_HOUSE_NAME


||
D_STREET_NAME || D_CITY_NAME || D_STATE_NAME ) "ADDRESS" FROM
DELIVERY);
SELECT * FROM DELIVERY_ADDRESS
PL/SQL BLOCK:
Use Of In build Exception:

1. TO KNOW THE DETAILS OF PARTICULAR CUSTOMER

DECLARE
ID CUSTOMER.CS_ID%TYPE;
N CUSTOMER.CS_USERNAME%TYPE;
S CUSTOMER.ST_ID%TYPE;
E CUSTOMER.CS_EMAILID%TYPE;
BEGIN
ID:=:ENTER_ID;
SELECT CS_USERNAME,ST_ID,CS_EMAILID INTO N,S,E FROM
CUSTOMER WHERE CS_ID=ID;
DBMS_OUTPUT.PUT_LINE(' DETAILS OF CUSTOMER ' || ID);
DBMS_OUTPUT.PUT_LINE('NAME' || N);
DBMS_OUTPUT.PUT_LINE('STORE' || S);
DBMS_OUTPUT.PUT_LINE(' EMAILID' || E);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('ENTER VALID CUSTOMER ID ');
END
User Defined Exception:
1. TO CHECK WETHER THE PARTICULAR CUSTOMER BELONGS TO
THE
GIVEN STORE OR NOT
DECLARE
A CUSTOMER.CS_ID%TYPE;
B CUSTOMER.ST_ID%TYPE;
C CUSTOMER.ST_ID%TYPE;
FAIL_ST EXCEPTION;
BEGIN
A:=:CS_ID;
B:=:ST_ID;
SELECT ST_ID INTO C FROM CUSTOMER WHERE
CUSTOMER.CS_ID=A;
IF C=B THEN
DBMS_OUTPUT.PUT_LINE('TRUE');
ELSE
RAISE FAIL_ST;
END IF;
EXCEPTION
WHEN FAIL_ST THEN
DBMS_OUTPUT.PUT_LINE('WRONG STORE');
END
Function:

1. TO COUNT THE NO. OF PRODUCTS IN A PARTICULAR BRAND

CREATE OR REPLACE FUNCTION COUNTING RETURN NUMBER IS


TOTALP
NUMBER:=0;
BEGIN
SELECT COUNT(*) INTO TOTALP FROM PRODUCT WHERE
PRODUCT.B_ID='B01';
RETURN TOTALP;
END COUNTING;

DECLARE
C_NO NUMBER;
BEGIN
C_NO:=COUNTING();
DBMS_OUTPUT.PUT_LINE('TOTAL NO. OF PRODUCTS IN BRAND ARE' ||
C_NO);
END;
Procedures:
1. PROCEDURE TO ENTER NEW RODUCT:

CREATE OR REPLACE PROCEDURE INSERTIN(P IN


PRODUCT.P_ID%TYPE,
CG IN PRODUCT.CG_ID%TYPE, SCG IN PRODUCT.SCG_ID%TYPE,
BR IN PRODUCT.B_ID%TYPE, DS IN PRODUCT.DS_ID%TYPE, ST IN
PRODUCT.ST_ID%TYPE, PCD IN PRODUCT.P_CODE%TYPE, PSZ IN
PRODUCT.P_SIZE%TYPE, PPR IN PRODUCT.P_PRICE%TYPE, PN IN
PRODUCT.P_NAME%TYPE)
IS
A PRODUCT.P_ID%TYPE;
B PRODUCT.CG_ID%TYPE;
C PRODUCT.SCG_ID%TYPE;
D PRODUCT.B_ID%TYPE;
E PRODUCT.DS_ID%TYPE;
F PRODUCT.ST_ID%TYPE;
G PRODUCT.P_NAME%TYPE;
H PRODUCT.P_CODE%TYPE;
I PRODUCT.P_SIZE%TYPE;
J PRODUCT.P_PRICE%TYPE;

BEGIN

A:=P;
B:=CG;
C:=SCG;
D:=BR;
E:=DS;
F:=ST;
G:=PN;
H:=PCD;
I:=PSZ;
J:=PPR;

INSERT INTO
PRODUCT("P_ID","CG_ID","SCG_ID","B_ID","DS_ID","ST_ID","P_NAME",
"P_CODE","P_SIZE","P_PRICE") VALUES (P,CG, SCG, BR, DS, ST, PN,
PCD,PSZ, PPR);
END
DECLARE
A PRODUCT.P_ID%TYPE;
B PRODUCT.CG_ID%TYPE;
C PRODUCT.SCG_ID%TYPE;
D PRODUCT.B_ID%TYPE;
E PRODUCT.DS_ID%TYPE;
F PRODUCT.ST_ID%TYPE;
G PRODUCT.P_NAME%TYPE;
H PRODUCT.P_CODE%TYPE;
I PRODUCT.P_SIZE%TYPE;
J PRODUCT.P_PRICE%TYPE;

BEGIN
A:=:P_ID;
B:=:CG_ID;
C:=:SCG_ID;
D:=:B_ID;
E:=:DS_ID;
F:=:ST_ID;
G:=:P_NAME;
H:=:P_CODE;
I:=:P_SIZE;
J:=:P_PRICE;
INSERTIN(A,B,C,D,E,F,G,H,I,J);
END
2. PROCEDURE TO CHANGE PASSWORD FOR ADMIN:

CREATE OR REPLACE PROCEDURE MODIFY_PSS(ID IN ADMIN.A_ID


%TYPE, PS IN ADMIN.A_PASSWORD%TYPE)
IS
BEGIN
UPDATE ADMIN SET ADMIN.A_PASSWORD=PS WHERE ADMIN.A_ID=ID;
END

DECLARE
A ADMIN.A_ID%TYPE;
B ADMIN.A_PASSWORD%TYPE;
C ADMIN.A_PASSWORD%TYPE;
D ADMIN.A_PASSWORD%TYPE;
INVALID_CURRENT_PASSWORD EXCEPTION;
BEGIN
A:=:A_ID;
B:=:OLD_PASSWORD;
C:=:NEW_PASSWORD;
SELECT A_PASSWORD INTO D FROM ADMIN WHERE ADMIN.A_ID=A;
IF D=B THEN
MODIFY_PSS(A,C);
DBMS_OUTPUT.PUT_LINE('CHANGED');
ELSE
RAISE INVALID_CURRENT_PASSWORD;
END IF;
EXCEPTION
WHEN INVALID_CURRENT_PASSWORD THEN
DBMS_OUTPUT.PUT_LINE('CURRENT PASSWORD IS INCORECT');
END
Triggers:
1. TRIGGER TO DISPLAY CUSTOMER INFO

CREATE OR REPLACE TRIGGER DISP AFTER INSERT ON CUSTOMER


FOR EACH
ROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('CS_ID:'||:NEW.CS_ID);
DBMS_OUTPUT.PUT_LINE('CS_USERNAME :'||:NEW.CS_USERNAME);
DBMS_OUTPUT.PUT_LINE('CS_EMAILID :'||:NEW.CS_EMAILID);
DBMS_OUTPUT.PUT_LINE('CS_PASSWORD :'||:NEW.CS_PASSWORD);
DBMS_OUTPUT.PUT_LINE('CS_PHONE_NO. :'||:NEW.CS_PHONE_NO.);
DBMS_OUTPUT.PUT_LINE('STREET_NAME :'||:NEW.STREET_NAME);
DBMS_OUTPUT.PUT_LINE('CITY_NAME:'||:NEW.CITY_NAME);
DBMS_OUTPUT.PUT_LINE('STATE_NAME:'||:NEW.STATE_NAME);
DBMS_OUTPUT.PUT_LINE('HOUSE_NAME :'||:NEW.HOUSE_NAME);
DBMS_OUTPUT.PUT_LINE('ST_ID :'||:NEW.ST_ID);
END;
2. TRIGGER THAT DISALLOWS PAYMENT OF ALREADY PAID CARTS

CREATE OR REPLACE TRIGGER PAYMENT_DONE AFTER INSERT ON


PAYMENT
FOR EACH ROW

DECLARE
P PAYMENT.P_MODE%TYPE;

BEGIN SELECT P_MODE INTO P FROM PAYMENT WHERE PY_ID=:NEW.PY_ID;


IF(P IS NOT NULL) THEN
DBMS_OUTPUT.PUT_LINE('PAYMENT DONE ALREADY');
DELETE FROM PAYMENT WHERE PAYMENT.PY_ID=:NEW.PY_ID;
END IF;
END;
Cursors:
1. CURSOR TO FIND TOTAL NO. OF PRODUCTS BOUGHT BY
A CUSTOMER (EXPLICIT)
DECLARE
CR VARCHAR2(10);
TOTAL VARCHAR2(20);
Q NUMBER(5);
CS VARCHAR2(10);
NAME VARCHAR2(20);
CURSOR CUR IS SELECT CR_ID FROM CART WHERE CS_ID=CS;

BEGIN
NAME:=:ENTER_USERNAME;
DBMS_OUTPUT.PUT_LINE('TOTAL NO. OF ITEMS BOUGHT');
TOTAL:=0;

SELECT CS_ID INTO CS FROM CUSTOMER WHERE


CS_USERNAME=NAME;
OPEN CUR;

IF CUR%ISOPEN THEN
LOOP
FETCH CUR INTO CR;
EXIT WHEN CUR%NOTFOUND;
SELECT SUM(QUANTITY) INTO Q FROM CART_ITEM WHERE
CR_ID=CR;
DBMS_OUTPUT.PUT_LINE(CR|| ' ' || Q);
TOTAL:=TOTAL+Q;
END LOOP;
DBMS_OUTPUT.PUT_LINE('TOTAL ITEMS PURCHASED ' || TOTAL);
END IF;
CLOSE CUR;
END;
2. IMPLICIT CURSOR TO UPDATE ADMIN’S PHONE NO.
DECLARE
ID VARCHAR2(10);
PHONE_NO NUMBER(10);
BEGIN
ID:=:ENTER_ADMIN_ID;
PHONE_NO:=:ENTER_PHONE_NO;
UPDATE ADMIN SET A_PHONE_NO=PHONE_NO WHERE A_ID=ID;
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('PHONE NO. ' || PHONE_NO ||'
SUCCESSFULLY CHANGED FOR ADMIN ID ' || ID);
END IF;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('ADMIN OR PHONE NO. DOESNT
EXISTS');
END IF;
END;
CONCLUSION

This project is made for the requirements of ONLINE


SHOPPING PORTAL. The database is made using SQL blocks
and the queries are based on SQL and PL/SQL block. Project is
made with the help of Oracle10g.My concepts about SQL
This project is made for the requirements of ONLINE
,PL/SQL block and Database Management are cleared.
SHOPPING PORTAL. The database is made using SQL blocks
and the queries are based on SQL and PL/SQL block. Project is
made with the help of Oracle10g.My concepts about SQL
,PL/SQL block and Database Management are cleared.
BIBLIOGRAPHY:

Books: Database System Concepts


By: Abraham Silbarschatz

PL/SQL Programming
By: Ivan Bayross

Reference: www.W3School.com/sql

SUBMITTED BY : DIVYA.K.VAKIL

S-ar putea să vă placă și