Advertisement
AleksandarH

SQL Project

Nov 16th, 2022 (edited)
1,680
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 8.97 KB | None | 0 0
  1. CREATE TABLE Currency_Type
  2. (
  3.     CT_ID INTEGER NOT NULL,
  4.     CT VARCHAR (32),
  5.     CONSTRAINT Currency_Type_PK PRIMARY KEY (CT_ID)
  6. );
  7.  
  8. CREATE OR REPLACE Trigger CT_ID_AUTO_TR
  9. BEFORE INSERT ON Currency_Type
  10. FOR EACH ROW
  11. WHEN(NEW.CT_ID IS NULL)
  12. BEGIN
  13.     :NEW.CT_ID:=CT_ID_AUTO_S.NEXTVAL;
  14. END;
  15.  
  16. CREATE TABLE Accounts
  17. (
  18.     A_ID INTEGER NOT NULL,
  19.     A_Number INTEGER,
  20.     A_Interest NUMBER (7,2),
  21.     A_Stock INTEGER,
  22.     Currency_Type_CT_ID INTEGER NOT NULL,
  23.     CONSTRAINT Accounts_PK PRIMARY KEY (A_ID),
  24.     CONSTRAINT Accounts_Currency_Type_FK FOREIGN KEY (Currency_Type_CT_ID) REFERENCES Currency_Type (CT_ID)
  25. );
  26. CREATE OR REPLACE Trigger A_ID_AUTO_TR
  27. BEFORE INSERT ON Accounts
  28. FOR EACH ROW
  29. WHEN(NEW.A_ID IS NULL)
  30. BEGIN
  31.     :NEW.A_ID:=A_ID_AUTO_S.NEXTVAL;
  32. END;
  33.  
  34. CREATE TABLE Clients
  35. (
  36.     C_ID INTEGER NOT NULL,
  37.     C_Name VARCHAR (32),
  38.     C_PIN VARCHAR(32),
  39.     C_Address VARCHAR (32),
  40.     C_Phone_Number VARCHAR (32),
  41.     Accounts_A_ID INTEGER NOT NULL,
  42.     CONSTRAINT Clients_PK PRIMARY KEY (C_ID),
  43.     CONSTRAINT Clients_Accounts_FK FOREIGN KEY (Accounts_A_ID) REFERENCES Accounts (A_ID)
  44. );
  45. CREATE OR REPLACE Trigger C_ID_AUTO_TR
  46. BEFORE INSERT ON Clients
  47. FOR EACH ROW
  48. WHEN(NEW.C_ID IS NULL)
  49. BEGIN
  50.     :NEW.C_ID:=C_ID_AUTO_S.NEXTVAL;
  51. END;
  52.  
  53. CREATE TABLE Position_Type
  54. (
  55.     PT_ID INTEGER NOT NULL,
  56.     PT VARCHAR (32),
  57.     CONSTRAINT Position_PK PRIMARY KEY (PT_ID)
  58. );
  59. CREATE OR REPLACE Trigger PT_ID_AUTO_TR
  60. BEFORE INSERT ON Position_Type
  61. FOR EACH ROW
  62. WHEN(NEW.PT_ID IS NULL)
  63. BEGIN
  64.     :NEW.PT_ID:=PT_ID_AUTO_S.NEXTVAL;
  65. END;
  66.  
  67. CREATE TABLE Employee
  68. (
  69.     E_ID INTEGER NOT NULL,
  70.     E_Name VARCHAR (32),
  71.     E_Phone_Number VARCHAR (32),
  72.     Position_Type_PT_ID INTEGER NOT NULL,
  73.     CONSTRAINT Employee_PK PRIMARY KEY (E_ID),
  74.     CONSTRAINT Employee_Position_Type_FK FOREIGN KEY (Position_Type_PT_ID) REFERENCES Position_Type (PT_ID)
  75. );
  76. CREATE OR REPLACE Trigger E_ID_AUTO_TR
  77. BEFORE INSERT ON Employee
  78. FOR EACH ROW
  79. WHEN(NEW.E_ID IS NULL)
  80. BEGIN
  81.     :NEW.E_ID:=E_ID_AUTO_S.NEXTVAL;
  82. END;
  83.  
  84. CREATE TABLE T_Type
  85. (
  86.     TT_ID INTEGER NOT NULL,
  87.     TT VARCHAR (32),
  88.     CONSTRAINT T_Type_PK PRIMARY KEY (TT_ID)
  89. );
  90. CREATE OR REPLACE Trigger TT_ID_AUTO_TR
  91. BEFORE INSERT ON T_Type
  92. FOR EACH ROW
  93. WHEN(NEW.TT_ID IS NULL)
  94. BEGIN
  95.     :NEW.TT_ID:=TT_ID_AUTO_S.NEXTVAL;
  96. END;
  97.  
  98. CREATE TABLE Transactions
  99. (
  100.     T_ID INTEGER NOT NULL,
  101.     T_Total NUMBER (7,2),
  102.     T_Date VARCHAR(50),
  103.     T_Type_TT_ID INTEGER NOT NULL,
  104.     Employee_E_ID INTEGER NOT NULL,
  105.     Clients_C_ID INTEGER NOT NULL,
  106.     Accounts_A_ID INTEGER NOT NULL,
  107.     Currency_Type_CT_ID INTEGER NOT NULL,
  108.     CONSTRAINT Transactions_PK PRIMARY KEY (T_ID),
  109.     CONSTRAINT Transactions_T_Type_FK FOREIGN KEY (T_Type_TT_ID) REFERENCES T_Type (TT_ID),
  110.     CONSTRAINT Transactions_Employee_FK FOREIGN KEY (Employee_E_ID) REFERENCES Employee (E_ID),
  111.     CONSTRAINT Transactions_Clients_FK FOREIGN KEY (Clients_C_ID) REFERENCES Clients (C_ID),
  112.     CONSTRAINT Transactions_Accounts_FK FOREIGN KEY (Accounts_A_ID) REFERENCES Accounts (A_ID),
  113.     CONSTRAINT Transactions_Currency_Type_FK FOREIGN KEY (Currency_Type_CT_ID) REFERENCES Currency_Type (CT_ID)
  114. );
  115. CREATE OR REPLACE Trigger T_ID_AUTO_TR
  116. BEFORE INSERT ON Transactions
  117. FOR EACH ROW
  118. WHEN(NEW.T_ID IS NULL)
  119. BEGIN
  120.     :NEW.T_ID:=T_ID_AUTO_S.NEXTVAL;
  121. END;
  122.  
  123. INSERT INTO Currency_Type VALUES (1, 'BGN');
  124. INSERT INTO Currency_Type VALUES (2, 'INR');
  125. INSERT INTO Currency_Type VALUES (3, 'TKL');
  126. INSERT INTO Currency_Type VALUES (4, 'KLM');
  127. INSERT INTO Currency_Type VALUES (5, 'EUR');
  128. INSERT INTO Currency_Type VALUES (6, 'USD');
  129. INSERT INTO Currency_Type VALUES (7, 'RUB');
  130.  
  131. UPDATE Currency_Type
  132. SET CT = 'SLD'
  133. WHERE CT_ID = 4;
  134.  
  135. DELETE FROM Currency_Type
  136. WHERE CT_ID = 4;
  137.  
  138. CREATE OR REPLACE PROCEDURE CT_Type
  139. (ct_type Currency_Type.CT%TYPE)
  140. AS
  141.     BEGIN
  142.         INSERT INTO Currency_Type(CT)
  143.         VALUES (ct_type);
  144. END;
  145. BEGIN
  146. CT_Type('AD');
  147. END;
  148.  
  149. INSERT INTO Accounts VALUES (1, 420, 10.25, 30, 1);
  150. INSERT INTO Accounts VALUES (2, 421, 11.26, 31, 2);
  151. INSERT INTO Accounts VALUES (3, 422, 12.27, 32, 3);
  152. INSERT INTO Accounts VALUES (4, 423, 13.28, 33, 5);
  153. INSERT INTO Accounts VALUES (5, 423, 14.29, 34, 6);
  154. INSERT INTO Accounts VALUES (6, 424, 15.24, 35, 7);
  155. INSERT INTO Accounts VALUES (7, 426, 16.23, 36, 5);
  156.  
  157. UPDATE Accounts
  158. SET A_Number = 425
  159. WHERE A_ID = 5;
  160.  
  161. DELETE FROM Accounts
  162. WHERE A_ID = 4;
  163.  
  164. CREATE OR REPLACE PROCEDURE Acc_INS
  165. (acc_number Accounts.A_Number%TYPE,
  166.  acc_interest Accounts.A_Interest%TYPE,
  167.  acc_stock Accounts.A_Stock%TYPE)
  168. AS
  169.     BEGIN
  170.         INSERT INTO Accounts(A_Number,A_Interest,A_Stock)
  171.         VALUES (acc_number,acc_interest,acc_stock);
  172. END;
  173. BEGIN
  174. Acc_INS(427, 17.88, 37,8);
  175. END;
  176.  
  177. INSERT INTO Clients VALUES (1, 'Yancho', '20621639' , 'Ul. Alexander Veliki', '0883040601', 1);
  178. INSERT INTO Clients VALUES (2, 'Kiril', '20621637', 'Ul. Aleko Veliki', '088344060', 2);
  179. INSERT INTO Clients VALUES (3, 'Georgi', '20621643', 'Ul. Lyuben Keliki', '088304064', 3);
  180. INSERT INTO Clients VALUES (4, 'Marko_Polo', '20621354', 'Ul. Karamfil 32', '088355430', 5);
  181. INSERT INTO Clients VALUES (5, 'Marko_Polo', '20621554', 'Ul. Georgi Sava', '023304430', 6);
  182. INSERT INTO Clients VALUES (6, 'Marvel', '20621454', 'Ul. Dunav 24', '088304435', 7);
  183.  
  184. UPDATE Clients
  185. SET C_Name = 'Miril'
  186. WHERE C_ID = 2;
  187.  
  188. DELETE FROM Clients
  189. WHERE C_ID = 6;
  190.  
  191. INSERT INTO Position_Type VALUES (1, 'Customer Care Representative');
  192. INSERT INTO Position_Type VALUES (2, 'Judge');
  193. INSERT INTO Position_Type VALUES (3, 'Cook');
  194. INSERT INTO Position_Type VALUES (4, 'Bartender');
  195. INSERT INTO Position_Type VALUES (5, 'Barista');
  196. INSERT INTO Position_Type VALUES (6, 'Waiter');
  197.  
  198. UPDATE Position_Type
  199. SET PT = 'Librarian'
  200. WHERE PT_ID = 3;
  201.  
  202. DELETE FROM Position_Type
  203. WHERE PT_ID = 4;
  204.  
  205. INSERT INTO Employee VALUES (1, 'Misho', '0884204200', 1);
  206. INSERT INTO Employee VALUES (2, 'Georgi', '0884204221', 2);
  207. INSERT INTO Employee VALUES (3, 'Stoyan', '08842042021', 3);
  208. INSERT INTO Employee VALUES (4, 'Grisho', '08842042043', 6);
  209. INSERT INTO Employee VALUES (5, 'Tisho', '08842042054', 5);
  210. INSERT INTO Employee VALUES (6, 'Pisho', '08842042065', 6);
  211.  
  212. UPDATE Employee
  213. SET E_Name = 'Michael'
  214. WHERE E_ID = 1;
  215.  
  216. DELETE FROM Employee
  217. WHERE E_ID = 6;
  218.  
  219. INSERT INTO T_Type VALUES (1, 'Deposit');
  220. INSERT INTO T_Type VALUES (2, 'Invest');
  221. INSERT INTO T_Type VALUES (3, 'Credit');
  222. INSERT INTO T_Type VALUES (4, 'withdraw');
  223. INSERT INTO T_Type VALUES (5, 'Saving');
  224. INSERT INTO T_Type VALUES (6, 'Crypto');
  225.  
  226. UPDATE T_Type
  227. SET TT = 'Withdraw'
  228. WHERE TT_ID = 4;
  229.  
  230. DELETE FROM T_Type
  231. WHERE TT_ID = 4;
  232.  
  233. INSERT INTO Transactions VALUES(1, 301.27, '2001-08-08', 1, 1, 1, 1, 1);
  234. INSERT INTO Transactions VALUES(2, 302.26, '2002-08-08', 2, 2, 2, 2, 2);
  235. INSERT INTO Transactions VALUES(3, 303.25, '2003-08-08', 3, 3, 3, 3, 3);
  236. INSERT INTO Transactions VALUES(4, 304.24, '2004-08-08', 5, 4, 4, 4, 4);
  237. INSERT INTO Transactions VALUES(5, 305.23, '2005-08-08', 5, 5, 5, 5, 5);
  238. INSERT INTO Transactions VALUES(6, 306.22, '2006-08-08', 6, 4, 3, 6, 6);
  239.  
  240. UPDATE Transactions
  241. SET T_Total = 404.25
  242. WHERE T_ID = 4;
  243.  
  244. DELETE FROM Transactions
  245. WHERE T_ID = 6;
  246.  
  247. --tursene po nomer na account
  248. SELECT c.C_Name, a.A_Interest, a.A_Stock,  a.A_Number, ct.CT FROM Clients c
  249. JOIN Accounts a ON a.A_ID = c.Accounts_A_ID
  250. JOIN Currency_Type ct ON ct.CT_ID = a.Currency_Type_CT_ID
  251. WHERE a.A_Number = &A_Number;
  252.  
  253. --tursene po EGN
  254. SELECT c.C_Name, c.C_PIN, a.A_Interest, a.A_Stock,  a.A_Number, ct.CT FROM Clients c
  255. JOIN Accounts a ON a.A_ID = c.Accounts_A_ID
  256. JOIN Currency_Type ct ON ct.CT_ID = a.Currency_Type_CT_ID
  257. WHERE c.C_PIN LIKE '%&C_PIN%';
  258.  
  259. --tursene po Ime na klient
  260. SELECT a.A_Number, c.C_Name, ct.CT, a.A_Interest, a.A_Stock FROM Clients c
  261. JOIN Accounts a ON a.A_ID = c.Accounts_A_ID
  262. JOIN Currency_Type ct ON ct.CT_ID = a.Currency_Type_CT_ID
  263. WHERE c.C_Name LIKE '%&C_Name%';
  264.  
  265. --smetki na klient
  266. SELECT c.c_phone_number,c.C_Name, a.A_Interest, a.A_Stock, a.A_Number, ct.CT FROM Clients c
  267. JOIN Accounts a ON a.A_ID = c.Accounts_A_ID
  268. JOIN Currency_Type ct ON ct.CT_ID = a.Currency_Type_CT_ID
  269. WHERE c.C_PHONE_NUMBER LIKE '%&C_PHONE_NUMBER%';
  270.  
  271. --tranzakcii na klient podredeni po data
  272. SELECT c.C_Name, a.A_Number, tt.TT, t.T_Total, t.T_Date FROM Transactions t
  273. JOIN Accounts a ON a.A_ID = t.Accounts_A_ID
  274. JOIN Clients c ON c.C_ID = t.Clients_C_ID
  275. JOIN T_Type tt ON tt.TT_ID = t.T_Type_TT_ID
  276. WHERE c.C_Name LIKE '%&C_Name%'
  277. ORDER BY t.T_Date;
  278.  
  279. --tranzakcii na slujitel
  280. SELECT e.E_Name, tt.TT, t.T_Date, ct.CT FROM Transactions t
  281. JOIN Employee e ON e.E_ID = t.Employee_E_ID
  282. JOIN T_Type tt ON tt.TT_ID = t.T_Type_TT_ID
  283. JOIN Currency_Type ct ON ct.CT_ID = t.Currency_Type_CT_ID
  284. WHERE e.E_Name LIKE '%&E_Name%';
  285.  
  286. --tranzakcii za period
  287. SELECT e.E_Name, c.C_Name, t.T_Total, tt.TT, t.T_Date, ct.CT FROM Transactions t
  288. JOIN Employee e ON e.E_ID = t.Employee_E_ID
  289. JOIN T_Type tt ON tt.TT_ID = t.T_Type_TT_ID
  290. JOIN Clients c ON c.C_ID = t.Clients_C_ID
  291. JOIN Currency_Type ct ON ct.CT_ID = t.Currency_Type_CT_ID
  292. WHERE t.T_Date BETWEEN '&start_date' AND '&end_date';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement