-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathzaka
147 lines (111 loc) · 3.9 KB
/
zaka
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
CREATE TABLE BUYER(
BUYER_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
NAME VARCHAR2(20),
LOCATION VARCHAR2(20),
TRANSACTION_ID NUMBER,
);
CREATE OR REPLACE VIEW BUYER_CHECK(NAME, LOCATION, TRANSACTION_ID) AS
(SELECT B.NAME,B.LOCATION,B.TRACTION_ID FROM BUYER "B";
CREATE SEQUENCE Buyer_Primary_Key
INCREMENT BY 5
START WITH 1
MAXVALUE 1000000
NOCACHE
NOCYCLE;
CREATE OR REPLACE TRIGGER BUYER_ON_INSERT
BEFORE INSERT ON BUYER
FOR EACH ROW
BEGIN
SELECT Buyer_Primary_Key.nextval
INTO :new.BUYER_ID
FROM dual;
END;
INSERT INTO BUYER VALUES('','ZAKA','DHAKA','00001111');
INSERT INTO BUYER VALUES('','UDOY','RAJSHAHI','00001122');
INSERT INTO BUYER VALUES('','SHAHIR','CUMILLA','00001133');
INSERT INTO BUYER VALUES('','RAFA','DHAKA','00001144');
INSERT INTO BUYER VALUES('','RIDAY','CHITTAGONG','00001155');
CREATE TABLE Personal
( BUYER_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
DISCOUNT NUMBER,
PAYMENT_TYPE VARCHAR2(20),
E-MAIL VARCHAR2(100),
BALANCE NUMBER,
PHONE NUMBER
);
CREATE OR REPLACE VIEW personal_Buyer(Buyer_ID, DISCOUNT,PAYMENT_TYPE,E_MAIL,BALANCE,PHONE_NO) AS
SELECT BUYER_ID,DISCOUNT,PAYMENT_TYPE,E-MAIL,BALANCE,PHONE FROM PERSONAL
WHERE BALANCE>0
WITH CHECK OPTION CONSTRAINT BALANCE_CHECK;
CREATE SEQUENCE PERSONAL_BUYER_ID
INCREMENT BY 10
START WITH 1
MAXVALUE 1000000
CACHE 100
NOCYCLE;
CREATE OR REPLACE TRIGGER PERSONAL_ON_INSERT
BEFORE INSERT ON PERSONAL
FOR EACH ROW
BEGIN
SELECT PERSONAL_BUYER_ID.nextval
INTO :new.BUYER_ID
FROM dual;
END;
CREATE OR REPLACE TRIGGER BUYER_ON_BAL
BEFORE INSERT
ON PERSONAL
BEGIN
IF BALANCE<0
THEN
RAISE_APPLICATION_ERROR(2019,'LOW BALANCE');
END IF;
END;
INSERT INTO PERSONAL VALUES('','5%','CARD','[email protected]','500000','01706******');
INSERT INTO PERSONAL VALUES('','5%','bkash','[email protected]','500000','01716******');
INSERT INTO PERSONAL VALUES('','5%','ON_PAYMENT','[email protected]','500000','01726******');
INSERT INTO PERSONAL VALUES('','5%','CARD','[email protected]','500000','01736******');
INSERT INTO PERSONAL VALUES('','5%','ROCKET','[email protected]','500000','01746******');
CREATE TABLE INDUSTRIAL
(
BUYER_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
CONTACT_PHONE NUMBER NOT NULL,
BANK_ACCOUNT NUMBER,
INVENTORY VARCHAR2(20),
CONTACT_EMAIL VARCHAR2(20),
);
CREATE OF REPLACE VIEW INDUSTRIAL_BUYER("BUYER_ID","PHONE_NO","ACCOUNT_NO","INVENTORY",E_MAIL")
AS
SELECT BUYER_ID,CONTACT_PHONE,BANK_ACCOUNT,INVENROTY,CONTACT_EMAIL FROM INDUSTRIAL;
CREATE SEQUENCE INDUSTRIAL_BUYER_ID
INCREMENT BY 10
START WITH 1
MAXVALUE 1000000
CACHE 100
NOCYCLE;
CREATE OR REPLACE TRIGGER INDUSTRIAL_ON_INSERT
BEFORE INSERT ON INDUSTRIAL
FOR EACH ROW
BEGIN
SELECT INDUSTRIAL_BUYER_ID.nextval
INTO :new.BUYER_ID
FROM dual;
END;
INSERT INTO INDUSTRIAL VALUES ('','01706******','10000005','Narayangang','[email protected]');
INSERT INTO INDUSTRIAL VALUES ('','01733******','10000040','Dhaka','[email protected]');
INSERT INTO INDUSTRIAL VALUES ('','01744******','10000055','Gazipur','[email protected]');
INSERT INTO INDUSTRIAL VALUES ('','01755******','10000050','Dhaka','[email protected]');
INSERT INTO INDUSTRIAL VALUES ('','01766******','10000010','Narayangang','[email protected]');
CREATE TABLE SELLS
(
SELLER_ID VARCHAR2(20) NOT NULL,
BUYER_ID VARCHAR2(20) NOT NULL,
CONSTRAINT SELLS_TABLE_EMPLOYEE_FK FOREIGN KEY(BUYER_ID) REFERENCES BUYER(BUYER_ID) ON DELETE CASCADE,
CONSTRAINT SELLS_TABLE_PK PRIMARY KEY(SELLER_ID,BUYER_ID) );
);
CREATE OR REPLACE VIEW SELLS_BUY_INFO("SELLER_ID","LOCATION","BUYER_NAME","LOCATION","TRANSACTION_ID", "QUANTITY","PHONE") AS
(SELECT SELLER_ID,S.LOCATION,B.NAME,B.LOCATION,B.TRANSACTION_ID,QUANTITY FROM SELLER "S" JOIN SELLS "R" USING(SELLER_ID) JOIN BUYER "B" USING(BUYER_ID));
INSERT INTO PAPER_TABLE VALUES('121','10001');
INSERT INTO PAPER_TABLE VALUES('121','10002');
INSERT INTO PAPER_TABLE VALUES('121','10003');
INSERT INTO PAPER_TABLE VALUES('121','10047');
INSERT INTO PAPER_TABLE VALUES('121','1005');