銀行ATM存取款機系統MySQL數據庫


建表

 1 CREATE TABLE cardInfo
 2 (
 3 cardid CHAR(16)not NULL PRIMARY key,
 4 `password` CHAR(6)not NULL ,
 5 curID INT(4)not NULL,
 6 savingID INT(11)not NULL,
 7 openDate TIMESTAMP not NULL,
 8 openMoney DECIMAL(20) not NULL,
 9 balance DECIMAL(20) not NULL,
10 IsReportLoss bit not NULL,
11 customerID INT(4)not NULL
12 )
13 ALTER TABLE cardinfo ADD CONSTRAINT Fk_cuid FOREIGN KEY(customerID) REFERENCES userinfo(customerID);
14 ALTER TABLE cardinfo ADD CONSTRAINT FK_saving FOREIGN KEY(savingID) REFERENCES deposit(savingID);
15 
16 
17 #drop table if exists cardinfo;
18 
19 
20 CREATE TABLE userInfo
21 (
22 customerID INT(4) PRIMARY KEY not NULL,
23 customerName CHAR(8) not NULL,
24 PID CHAR(18) not NULL,
25 telephone CHAR(20) not NULL,
26 address VARCHAR(50)
27 )
28 
29 
30 CREATE TABLE tradeInfo
31 (
32 cardID CHAR(16) not NULL,
33 tradeDate TIMESTAMP not NULL,
34 tradeMoney DECIMAL(20)not NULL,
35 tradeType char(4)not NULL,
36 remark text 
37 )
38 ALTER TABLE tradeinfo ADD CONSTRAINT FK_cid FOREIGN KEY(cardid) REFERENCES cardinfo(cardid);
39 
40 CREATE TABLE deposit
41 (
42 savingID INT(4) NOT NULL PRIMARY KEY,
43 savingName VARCHAR(20) NOT NULL,
44 descrip VARCHAR(50)
45 )

測試數據:

 1 #存款類型
 2 INSERT INTO deposit (savingName,descrip) VALUES ('活期','按存款日結算利息');
 3 INSERT INTO deposit (savingName,descrip) VALUES ('定期一年','存款期是1年');
 4 INSERT INTO deposit (savingName,descrip) VALUES ('定期二年','存款期是2年');
 5 INSERT INTO deposit (savingName,descrip) VALUES ('定期三年','存款期是3年');
 6 INSERT INTO deposit (savingName) VALUES ('定活兩便');
 7 INSERT INTO deposit (savingName) VALUES ('通知');
 8 INSERT INTO deposit (savingName,descrip) VALUES ('零存整取一年','存款期是1年');
 9 INSERT INTO deposit (savingName,descrip) VALUES ('零存整取二年','存款期是2年');
10 INSERT INTO deposit (savingName,descrip) VALUES ('零存整取三年','存款期是3年');
11 INSERT INTO deposit (savingName,descrip) VALUES ('存本取息五年','按月支取利息');
12 SELECT * FROM deposit;
13 
14 INSERT INTO userInfo(customerName,PID,telephone,address )
15      VALUES('張三','123456789012345','010-67898978','北京海淀');
16 INSERT INTO cardInfo(cardID,savingID,openMoney,balance,customerID)
17      VALUES('1010357612345678',1,1000,1000,1);
18 
19 INSERT INTO userInfo(customerName,PID,telephone)
20      VALUES('李四','321245678912345678','0478-44443333');
21 INSERT INTO cardInfo(cardID,savingID,openMoney,balance,customerID)
22      VALUES('1010357612121134',2,1,1,2);
23 
24 INSERT INTO userInfo(customerName,PID,telephone)
25      VALUES('王五','567891234532124670','010-44443333');
26 INSERT INTO cardInfo(cardID,savingID,openMoney,balance,customerID)
27      VALUES('1010357612121130',2,1,1,3);
28 
29 INSERT INTO userInfo(customerName,PID,telephone)
30      VALUES('丁六','567891321242345618','0752-43345543');
31 INSERT INTO cardInfo(cardID,savingID,openMoney,balance,customerID)
32      VALUES('1010357612121004',2,1,1,4);
33 
34 SELECT * FROM userInfo;
35 SELECT * FROM cardInfo;
36 
37 
38 /*
39 張三的卡號(1010 3576 1234 5678)取款900元,李四的卡號(1010 3576 1212 1134)存款5000元,要求保存交易記錄,以便客戶查詢和銀行業務統計。
40 說明:當存錢或取錢(如300元)時候,會往交易信息表(tradeInfo)中添加一條交易記錄,
41       同時應更新銀行卡信息表(cardInfo)中的現有余額(如增加或減少300元)
42       
43 */
44 SELECT * FROM cardInfo;
45 SELECT * FROM tradeInfo;
46 /*--------------交易信息表插入交易記錄--------------------------*/
47 INSERT INTO tradeInfo(tradeType,cardID,tradeMoney) 
48       VALUES('支取','1010357612345678',900);  
49 /*-------------更新銀行卡信息表中的現有余額-------------------*/
50 UPDATE cardInfo SET balance=balance-900 WHERE cardID='1010357612345678';
51 
52 
53 /*--------------交易信息表插入交易記錄--------------------------*/
54 INSERT INTO tradeInfo(tradeType,cardID,tradeMoney) 
55       VALUES('存入','1010357612121134',5000);   
56 /*-------------更新銀行卡信息表中的現有余額-------------------*/
57 UPDATE cardInfo SET balance=balance+5000 WHERE cardID='1010357612121134';
58 
59 
60 /*--------檢查測試數據是否正確---------*/
61 SELECT * FROM cardInfo;
62 SELECT * FROM tradeInfo;

實現功能:

 1 SELECT * from userinfo;
 2 SELECT * from cardinfo;
 3 SELECT * from deposit;
 4 SELECT * from tradeinfo;
 5 
 6 #修改張三的密碼為:123456 李四的密碼為123123
 7 UPDATE cardinfo SET `PASSWORD`=123456 WHERE customerID=1;
 8 UPDATE cardinfo SET `PASSWORD`=123123 WHERE customerID=4;
 9 
10 #辦理銀行卡掛失
11 SELECT cardid 卡號,curID 貨幣,savingName 儲蓄種類, openDate 開戶日期, openMoney 開戶金額,balance 余額,`password` 密碼,IF(IsReportLoss=0,'未掛失','已掛失') 是否掛失,customerName 客戶姓名  
12 FROM cardinfo,userinfo,deposit WHERE cardinfo.customerID=userinfo.customerID and cardinfo.savingID=deposit.savingID;/*若全為未掛失則自己修改幾條*/
13 
14 #統計銀行總存入和總支出
15 SELECT  tradetype 資金流向,SUM(trademoney) 總金額 FROM tradeinfo GROUP BY tradetype;
16 
17 #查詢本周開戶信息    
18 SELECT cardid 卡號,customerName 客戶姓名 ,curID 貨幣,savingName 儲蓄種類, openMoney 開戶金額,balance 余額,IF(IsReportLoss=0,'未掛失','已掛失') 賬戶狀態
19 FROM cardinfo,userinfo,deposit WHERE cardinfo.customerID=userinfo.customerID and cardinfo.savingID=deposit.savingID AND WEEK(NOW())=WEEK(opendate);
20 
21 #查詢本月交易金額最高的卡號
22 SELECT cardID from tradeinfo WHERE tradeMoney IN(SELECT MAX(tradeMoney) from tradeinfo WHERE MONTH(tradeDate)=MONTH(NOW()))
23 
24 #查詢掛失客戶
25 SELECT customerName 客戶姓名,telephone 聯系電話 from userinfo WHERE customerID in
26 (SELECT customerID from cardinfo WHERE IsReportLoss=1);
27 
28 #查詢客戶余額<200則提醒繳費
29 SELECT customerName 客戶名稱,telephone 聯系電話,balance 存款余額 FROM userinfo,cardinfo WHERE userinfo.customerID=cardinfo.customerID AND balance<200;
30 
31 #銀行卡視圖
32 DROP VIEW IF EXISTS vw_cardinfo;
33 CREATE VIEW vw_cardInfo 
34 AS 
35 (SELECT cardid 卡號,customerName 客戶姓名, curID 貨幣,savingName 儲蓄種類, openDate 開戶日期, openMoney 開戶金額,balance 余額,`password` 密碼,IF(IsReportLoss=0,'未掛失','已掛失') 是否掛失 
36 FROM cardinfo,userinfo,deposit WHERE cardinfo.customerID=userinfo.customerID and cardinfo.savingID=deposit.savingID);
37 
38 #銀行卡交易記錄視圖
39 CREATE VIEW vw_transInfo
40 AS
41 (SELECT tradeDate 交易日期,tradeType 交易類型,cardinfo.cardid 卡號,tradeMoney 交易金額,remark 備注 FROM tradeinfo,cardinfo WHERE tradeinfo.cardID=cardinfo.cardid);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM