大数据库oracle银行管理系统_第1页
大数据库oracle银行管理系统_第2页
大数据库oracle银行管理系统_第3页
大数据库oracle银行管理系统_第4页
大数据库oracle银行管理系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大数据库oracle银行管理系统标准化文件发布号:(9556EUATWKMWUBWUNNINNULDDQTYKII224.7转账业务设置 .174.8银行盈利结算 .184.9撤户操作 .18五、总结.20参考文献.21附录1摘要随着计算机的飞速发展及应用领域的扩大,特别是计算机网络和电子商务的 发展,极大的改变了商业银行传统的经营模式。能够为客户提供方便、快捷、 安全的服务,也能够有效的降低银行的营运成本,这是银行存储系统追求的LI 标。H前,对于现代化银行运营的要求是客户可以实现方便安全的业务交易, 银行职员可以进行高效合理的丄作管理,实现银行业务电子化。方便用户快速 的进行存款、取款、修

2、改密码以及完成一些转账的交易,大大提高办公效率, 能够及时、准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员 的压力。2-设计银行管理系统结构图银行系统32.1E-R BB二、银行管理心t E R图利表结构B9 2.14开户交易信息表图2.256通过对银行管理系统的需求分析,应该为该系统设计3个表,分别为用户信 息表、银行卡信息表和交易信息表。用户信息表用于存储用户的基本信息. 包括用户的编号、开户名、身份证 号、联系电话和致庚住址等信息农2用户佶息表字段名称数堀类型长度约束customer用户编号Number4主纯customer开户名Varhcar220必填PID身份证号Varc

3、har218必填telephone联系电话Varchar213必填Address家庭地址Varchar250天银行卡信息表用于存储银行卡相关的借息主要包括卡号、存储的货币类型, 存款方式,开户时间,开户金额. 余额、银行卡密码、是否挂失和用户编号等 信息.表2.2银行卡信恵表字段名称字投描连数揭类型长度约束cardID卡号Varchar220主僦curType货帀种类Varhcar210必塡SavingType符救类型Varchar28非空Opendate开户日期DATETIME必填openmoney开户金顿Number8必填Balance帐户余顿Number8必填IsreportlossVa

4、rchar22必填Customer开户编号Varchar4外從交易信息表用于存储用户的交易记录. 主要包括交易日期,卡号、交易类 交易金额等信息。农2.3交易佶炮表字段名称字段描述数掘类型长度Transdate交易日期DatetimePKcardID卡号Varhcar220非空transTYPE交易类型VARCHAR24非空transMoney交易金顿NUMBER4非空remark备注VARCHAR250三、创3.1创延喉空间和用户使用system用户连接数揭库后,创理表空间spcicjzqp, 指定数据文件为D:Bank.dbf,代码如下图:dQL CREATE TABLESPACE spa

5、ce_zqp2DATAFILE D:Bank.dbF SIZE 50M73AUTOEXTEIW ON NEXT 5M HAXSIZE UNLIMITED;表工间已创建。create user zqpIDENTIFIED BY zqpDEFAULT TABLESPACE space_zqp TEMPORARY TABLESPACE teirf) QUOTA 20M ON space zqp;SQL grant dba to zqp;授权成功。SQL connect zqp/zqp; 已连接。图3.1表空间和用户3.2创理用户倦息表芥源加约束用户信息表保存了用户的基本信息,该表的创理语句如下,CR

6、EATE TABLE userinfo(customerlD NUMBER(4) NOT NULL,customerName VARCHAR2(20) NOT NULL,PID VARCHAR2(18) NOT NULL,telephone VARCHAR2(13) NOT NULL,address VARCHAR2(50)PARTITION BY HASH(PID)(PARTITION pidl,PARTITION pid2,PARTITION pid3,);ALTER TABLE userinfoADD CONSTRAINT PK_customerID PRIMARY KEY(custom

7、erlD)8ADD CONSTRAINT UK_PID UNIQUE(PID)ADD CONSTRAINT CK_PID CHECK(LENGTH(PID)= 18 OR LENGTH(PID)=15)ADD CONSTRAINT CK_telephone CHECK(telephone LIKE0-90-90-90-9-0-90-90-90-90-90-90-90-9OR LENGTH(telephone)= 13);-创理可以 自 动生成 自增主列的序列customerid_seqCREATE SEQUENCE customerid_seqSTART WITH 1INCREMENT BY

8、1NOCACHE如上述语句所示,在userlnfo表中包含用户编号(customerid)、开户名(customername)、身份证号(PID)、联系电话(telephone)家庭住址(address) o其中,customerid为主键,自增(从1开始);PID只能是18位 或15位,并且足唯一的;telephone必涣是xxxx-xxxxxxxx的格式或13位的手 机号码。9SQLselect 水 from cardlofo;0AFHIDCURTYPESAWNGT7 OPENDATEOPENMOMEYBALANCEPASS IS CUSTONERID1010 35768888B8 否12

9、34 00011KMB活期L7-11 月 76100010001010 3576888888 否1234 00046RMB定期17-11 月-1680008D001010 3576883888 否1234 000511RMB定朗17-11月-1650005000CARDIDCURTYPESAV1NGTY OPENDATEOPmOWEYEAL/xNCEPASS IS CU5T0WERID1010 3576888888 否1234 00063RMB足期17-11月-16400040001010 3576888888 否1234 00077RMB定期1771月-164400WO1010 35?688

10、8888 否1234 00101DRMB定朗17-11月-16440044(10CAFDIDCURTYPESAHNGTYOPENDATEOPSIxKDNZYBAL/3JCE图3.2用户信息表3.3创卡Tfr恵衣银行卡信息表(cardinfo)中包含了卡号(cardid),货币种类(cuiType).存款 类型,(savingtype).开户日期(opendate).开户金额(openmoney).余额(balance).密码(pass).足否挂失(isREPORTLOSS)和用户编号(customerlD)的信息。其中.cardID 为主键.必须为 1010 3756 xxxx xxxx 的

11、格式;CURTYPE默认为RMBt openmoney必须不能低于一元;balance也必须 不能低于一元;pass默认为88888888; ISREPORTLOSS的值必须是“是/否” 中之一.默认为否;customerlD为外键.引用userinfo表中的customerlD列。101CRHATE TABLE cardTofo2(3cardID VAJHAK2t20) WOT NULL,4curType VARCHftF2(10) NOT NULL,5savingType WPCHAR2(8)NOT NULL,6operiDate DATE WOT NULL,7operflonay MUM

12、BER(S) M3T NULL,S balance NUHBBR(8)MZfT NULL,9pass VCHAR2(6)NOT NULL,10IsRep-ortLoss 7ARSHAR2(2)N3T NULL,11customer ID NUMBER(4)NOT NULL12)13PARTITION BY RANGE(openDate)14(15PARTITION openDate_pl VALUES LESS TWJTOJATEC 01/01Z2007* y dd/Wyyyv,) 16PARTITION op9nDate_p2 VALUES LESS THAN(TO_DATE( 01/04/

13、20071, dd/wv/yyyv,)1? PARTITION op9nDatej3 VALUES LESS THAN(TO_DATE ( 01/07/20071、 cH/w/yyyv,)、18PARTITION op9nDate_p4 VALUES LESS THAN(TOATE( 01/10/20071 / dd/w/yyyv,)19PARTITION op9riDatQ_p5 VALUES LESS THAN(TO_DATEC 01/01/2003* /20PARTITION op9nDatg_p6 VALUES LESS THAN(TO_DATE ( 01/04/2003*, dd/W

14、yyyv,),21PARTITION openDat9j7 VALUES LESS THAN(TO_DATEC 01/07/2003*, dd/Wyyyy,)?22PARTITION opsnDat9_p8 VALUES LESS THAN(TOZDATEC 01/10/2002*, dd/imrjyvyy),23PARTITION o阿nDa佃9 VALUES LESS THAN(TOJ3ATEC 01/01/2009*, dMimVyyyy),24PARTITION op9rf)at9_plO VALUES LESS THAN (TO J) ATEC 01704/2009: dd/im/y

15、yyy),25PARTITION openDate_pll VALUES LESS THAN (TO J) ATE ( 01/0?/2009, dd/imi/yyyy),26PARTITION openDate_pl2 VALUES LESS THAN(raxvalue)27* )92L /丢已创霆。图3.33 4创徳交交易信息表中包含了五个字段.分别为transdate(交易日期).cardID(卡号)、TRANSTYPE(交易类型).transmoney(交易金额)和remark (备注)o其中, transdate默认为系统当前日期;cardid位外键.引用cardinfo表中的card

16、 id列,可重复;transtype只能是“存入/取出之一;transnioney 须大于0.SQL CREATE OR REPLACE HEV cardlnfo.w2 ASSELECT cardID as 银行卡号,curType as 货币savingTYpe as 存款粪型,openDate as 开户 openMoney as 开户金 颔,balance as 余额,pass as 密码,ISREDDIILOSS as 杲否挂失,customerlD as 用f1 编号4 FROM cardinfo;视因己创建。SQL select 2 from cardlQfo_w.抿行卡号货币类型

17、存款类型开户日期幵户金頼余軌密码是用户编号1010 35761234 0001牯期17-11 月 7610001000388888 否11010 35761234 0004RPB定期17-11-1680008000388888 否61010 35761234 0005RKB定期17-11 月 765000500011388888 否11很行卡号货帀类型存款类型开户日期幵户金额余額密西是用户编号图3.4交易信息表12四、棋拟常规业务操作4.1理账号M发显结果如下:SQL connect zqp/zqp 已连接。SQL create or replace TRIGGER trg_cardInfo_

18、cardID_no-tUpdate2BEFORE UPDATE OF cardID3ON cardinfo4FOR EACH ROW5BEGIN6FaI SE_xPPLICxTION_ERROR (-20001,账户不允许修改!?);7END;8/触发器已创建图4.1创理before update融发器4.2存取菽交易操作当用户办理取款或存款业务时,不仅需要向交易信息表中添加一条交易记 录. 还需要修改当前账户中的余额,如果办理取款业务.如果将当前账户总的 余额减去支职余额.如果办理托倚业务. 多叫当前账户中的金额加上存款金 额。在交易信息表中包含一个名为transtype 字段,该字段用于表

19、示交易类型, 取值范田必须足存入或者自取.因此可以为transINFO表创理BEFORE INSERTR角虫发器c 根揭要办理里的交易类型,判昕出当前的交易类型.如果 transtype字段值为“支取”,则表示要办理取款业务. 检测当前余额是否大于 或等于要支取的金额.如果满足条件,则要修改cardinfo表中的balance字段 值.将该字段值减去交易金额(transmoney),如果transtype字段值为“存 入”.则表示要办理存款业务. 修改cardinfo表中balance字段值,将该值加 上交易金额(transmoney)。代码如下: reate or replace trigg

20、er trig_transbefore insert or updateon transinfofor each row13declareniy_balance number;rate_exception exception;beginselect balance into my_balance from cardinfo where cardid=:new.cardid:if :new.transtype二支取thenif my_balance:new.transmoney 1 thenupdate cardinfo set balance=balance-:new.transmoney w

21、here cardld=:new.cardld; end if;elsif :new.tnmstype存入thenupdate cardinfo set balance=balance+:new.transmoney where cardid=:new.cardld; end if;dbms_output.putjine(,交易成功!);exceptionwhen rate_exception thenraise_application_error(-20001 / 交易失败 J;end;select * from cardlnfo_vw;insert into transInfo (tran

22、sdate5cardID.transType,transMoney)values(sysdate/1010 3576 8888 66667存入1000);commit;4.3用户开户根据身份证号查询足否在该行开过户,为万无一失,还需要查询生成的卡号 足否已经被使用,如果这两个条件都符合要求(此人从未在该行开过户,生成 的卡号也无人使用),则向userinfo中插入开户人的基本信息记录. 并根据开户人的身份证号获取开户人的编号. 从而向cardinfo表中插入开户人的基本 14信息记录.同时还船要将生成的卡号显示给开户人。如果收到卡号已经被使 用. 得提醛用户开户失败;如果当前开户人已经在此行开

23、过户.则提示用户此 身份证已有账号。结果如下图:end15SOL CREATE OK SffiPLACE procedure procopenfeer2 (3ujiajns varchar?)4pjd varchar255tel varcharS,6address varcharS,7savite varcharJ,-w8curTe archarS,9operloney nuber:10pass varchar211)12as13cid varchar2(20);-卡号14custorjd niiisr;-BD15i fflBKR,16c OBER,17begin18:朋鹼胡卡号19cid:-

24、randmardld;20-IWtSfiMP21select countW intoi from userinio Aere PID=p.id;22.喳袖贏隔了23select countM intocfret cardinio wherecardID=cidi24if i-0 then25if c=0 then26insert into userinfo values(custonerid s珂ILEX恤l,unaieid, tsl,address);27-W5.28select customerld into custoiierjd from userlnfo tee PID=p_id;2

25、9insert into cardinfo(caidld, curType, Savingtype,Operioney, balance,pass, custonerld) valuesIcid, curype, savi 呦伽30operJIoneyjOpenloneytpasSj customeHd);31DEIS OOT.Pin LIKECtBOffP!32KOlTOTLPin丄呱俪+孰|c迹1633elsii c)0 then34毓卫1则10减开卩失飯门;图4.2一个银行账号对应一个密码.因此当用户输入的卡号密码相对应时. 可以为 该银行卡设宜新的密码.代码:create or rep

26、lace procedure proc_updateUserPass(temp_cardid varchar2, 一卡号oldpass varchar2,newpass varchar2一旧密码一新密码)i number;pass_i VARCHAR2(6);beginselect count(*) into i from cardinfo where cardID=tenip_cardid; select pass into pass_i from cardinfo where cardID=temp_cardid; if i=0 thendbms_output.put_line(,此卡号不

27、存在!);elsif i0 thenif pass_i=oldpass thenUPDATE cardinfo set pass=newpass where cardid=temp_cardid; dbms_outpiit.put_line(密码夷改成功!);elsedbms_oiitpi】tput_line( 旧密码不正确! J;end if;end if;commit;exceptionwhen others thendbms_output.putjine(码更改失败! *);end17当用户的银行卡丢失后,可以对该卡进行挂失,银行時理系统船要验证用户 的真实性,当用户输入银行卡号和密码相

28、对应,才可以对该卡进行挂失操作, 即修改cardinfo表中的IsreportLOSS列为“足”,否则捉示“无权挂失”。 结果如图:SQLcreate or replace procedure procJostCard(card_id varchar2,pass2 varchar2J2as3x char(2);4i number;5begin6select countW into i f cardlnio7where cardd=cardjd and pass=pass2;8if iD THEN9SELECT IsReportLoss INTO x from cardlnfc ?tee car

29、dlScaldJd and pass=pass2;10if x=,5 then11dbms.output. putjine( 此卡己经柱失);12else13UPDA73 cardinfo set EReportLoss=,where cardld=cardjd;14dbis.output.putjinef该卡己励崔失,辭刑关证朮掰殆勃劉蝮该卡!);15end if;16ELSE1( dbms_output.putjine(?!请核实卡号是否正南!);18END IF;19 end;20I图4.34.6余额查沟用户可以使用银行菅理系统,办理余额查询等业务,系统要求用户输入银行 卡账号和密码.当

30、用户输入的账号和密码祁合法时. 系统就査询该用户的账户 余额.否则将提示用户“账号或密码错误! ”,代码:CREATE OR REPLACE procedure pro_query_balance(18caid_id varchar2, 帐户card_pass varchar2) 一密码asi NUMBERnot_data_foimd exception;user_balance NUMBER(8);beginselect count(*) into i from cardinfo where cardID=card_id and pass二cad_pass;if i=0 thenraise

31、not_data_found;elseselect balance into user_balance from card Info where cardID=card_id and pass=card_pass;dbms_outpiitput_line( 你帐号的余额为:lluser_balance);end if;exceptionwhen not_data_found thendbms_output.putjine(,帐号或密码错误!);end;4.7转账业务设置自助银行倚理系统办理转账业务时. 要求用户输入正确的用于转账的卡号和 密码,以及获得转账的卡号和转账金额. 系统将根据用户输入

32、的卡号和密码, 检测该银行卡足否存在.如果存在,则判断该银行卡余额足否大于要转账的余 额;如果大于,则向表中插入两条交易记录.一条支取的记录.一条为存入的 记录,并提示用户转账成功;如果用户输入的卡号和密码不正确.则捉示“你 的卡号或密码有误! ”。194.8银行dfc利结其银行的管理人员可以统计银行的资金流通余额和盈利结算. 资金流动金额等 于总存入总支数金额;盈利结算.等于总支出金额乘以8%总存入金额乘以 3%.代码如图:L) create or replace procedure proneyj-srikroll2isdsiiosit.wneynierJS,; gstjonsy nerl

33、z; total诚训力, payoff 皿i恤:15); bein1011121314eni;4.9撤户操作select sii!;transJoney/ into depositnoney from tr create or replace procedue proc.delilK2tejardlD varcharS,一卡号3temp J ass varcharS一密码4)5as6teas;11select balance into tenp.bahnce from Cardinf o tre c3rdIdzte_c3idID snd p汨s二壮呼j:肚s;12if num0 then12t

34、ajuW.put_lineCf5;! | IteifLcardID);14dbffls_output.put_linef絲上曲緬| Iteip.balael :页算錨眦门;15dbmsjutput.putJineC f萌翩!*);16delete ircrn transinfo where cardid=t9E5LcardID;1?delete fram cardinfo tee cardid=teup_cardID;18commit;19else20dbmS-Outpu t.putjine f 卡号蒞码離! J;21end if;22exception23ahen others then24

35、dbuE_output. putjinef 蹣说卡号! J;25 end;26 /sm鳳图4.522五.总结通过此次课程设计,使我更加扎实的学握了有关数库方面的知识 在设计 过程中虽然遇到了一些问题. 但经过一次又一次的思考. 一遍又一遍的检査终 于找出了原因所在. 也尽露出了前期我在这方面的知识欠缺和经验不足。实践 出真知 通过亲自动手制作,使我们学握的知识不再足纸上谈兵。在课程设计过程中.我们不断发现错误,不断改正.不断领悟,不断获 取。瑕终的检测调试环节,本身就是在践行“过而能改. 苦莫大焉”的知行 观。这次课程设计终于顺利完成了,在设计中遇到了很多问题. 最后在老师的 指导下. 终于游

36、逆而解。在今后社会的发展和学习实践过程中,一定要不懈努 力、不能遇到问题就惣到要退缩. 一定要不厌其烦的发现问题所在. 然后 -进行解决.只有这样,才能成功的做成惣做的护,才能在今后的道路上劈荆斩 棘.而不足知艰而退,那样永远不可能收获成功,收获喜悦.也永远不可能得 到社会及他人对你的认可!23文献1郝安林. Oracle 1 lg基础教程与实验描导,清华大学出版社2王珊. 数揭库系统概论.髙等教育出版社3王霓虹. 数据库系统原理,喑尔滨工业出版社(十二五规划教材)4李理中,数据库系统原理,电子工业出版社(原理)5 Stephens著.数揭库设计,机械工业出版社6手丙洋涂抹oracle-三思笔

37、记之一步一步学orac囘M中国水利水屯出版社 2010.17 Karen Morton.Oracle SQL 髙级编程M人民邮电出版社,2011.118梁敬彬,梁敬弘收获不止oracleM.电子工业出版社2013.59盖国强循序渐进oracle数揭库管理、优化与备份恢复M人民邮电出版社.2011.810 Lan Abramson,Micheael AbbeyMichael J.Corey朝辉.oracle database 1 lg:初 学者指南M淸华大学出版社,2010-01);24附录程序源代码:CREATE TABLESPACE space_zqpDATAFILE D:Bank.dbf

38、SIZE 50MAUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;创建用户zqp,用户密码:zqpCREATE USER zqpIDENTIFIED BY zqpDEFAULT TABLESPACE space_zqp;TEMPORARY TABLESPACE tempQUOTA 20M ON space_xianglin;/用户已创理GRANT DBA TO XIANGLIN;/授权成功CONNECT xiangliii/accp;/已连接REATE TABLE userinfo(customerlD NUMBER(4) NOT NULL,customerNam

39、e VARCHAR2(20) NOT NULL,PID VARCHAR2(18) NOT NULL,telephone VARCHAR2(13) NOT NULL,address VARCHAR2(50)根JS身份证ID创理散列分区PARTITION BY HASH(PID)(PARTITION pidl,PARTITION pid2,PARTITION pid3,25-为userinfo表添加约束条件ALTER TABLE userinfoADD CONSTRAINT PK_customerID PRIMARY KEY(customerlD)ADD CONSTRAINT UK_PID UNI

40、QUE(PID)ADD CONSTRAINT CK_PID CHECK(LENGTH(PID)= 18 OR LENGTH(PID)=15)ADD CONSTRAINT CK_telephone CHECK(telephone LIKE *0-90-90-90-9-0-90-90-9 0-90-9 0-9 0-9 0-9ORLENGTH(telephone)=13);/ 表已更改-仓j理可以自动生成自增主列的序列customerid_seqCREATE SEQUENCE customerid_seqSTART WITH 1INCREMENT BY 1NOCACHE; 序歹!J已创理CREATE

41、 TABLE cardlofo(cardID VARCHAR2(20) NOT NULL,curType VARCHAR2(10) NOT NULL,savingType VARCHAR2(8) NOT NULL,openDate DATE NOT NULL,openMoney NUMBER(8) NOT NULL,balance NUMBER(8) NOT NULL,pass VARCHAR2(6) NOT NULL,IsReportLoss VARCHAR2(2) NOT NULL,customeiiD NUMBER(4) NOT NULL)-根JS开户日期创理表分区PARTITION B

42、Y RANGE(openDate)(PARTITION openDate_pl VALUES LESSTHAN(TO_DATE(01/0 l/2OO7;dd/mm/yyyy,),26PARTITION openDate_p2 VALUES LESSTHAN(TO_DATE(01/04/2007,dd/mm/yyyy),PARTITION openDate_p3 VALUES LESSTHAN(TO_DATE(01/07/2007;dd/mm/yyyy,),PARTITION openDate_p4 VALUES LESSTHAN(TO_DATE(01/10/2OO7:dd/mm/yyyy,),

43、PARTITION openDate_p5 VALUES LESSTHAN(TO_DATE(01/0 l/2OO8:dd/mm/yyyy,),PARTITION openDate_p6 VALUES LESSTHAN(TO_DATE(01/04/2008,dd/mm/yyyy),PARTITION openDate_p7 VALUES LESSTHAN(TO_DATE(01/07/2008,dd/mm/yyyy J),PARTITION openDate_p8 VALUES LESSTHAN(TO_DATE(01/10/2008,;dd/mm/yyyy,),PARTITION openDate

44、_p9 VALUES LESSTHAN(TO_DATE(01/01/2009,:dd/mm/yyyy,),PARTITION openDate_plO VALUES LESSTHAN(TO_DATE(01/04/2009Tdd/mm/yyyy),PARTITION openDate_pl 1 VALUES LESSTHAN(TO_DATE(0 l/07/2009,;dd/mm/yyyy,),PARTITION openDate_p 12 VALUES LESS THAN(maxvalue);表已创起-为cardinfo表添加约束条件ALTER TABLE cardlofoADD CONSTRA

45、INT PK_cardID PRIMARY KEY(cardlD)ADD CONSTRAINT CK_cardID CHECK(TRANSLATE(cardID,0123456789 ,xxxxxxxxxx *)=xxxx xxxx xxxx xxxx ANDINSTR(cardID:1010 3576 1)ADD CONSTRAINT CK_sav CHECK(savingType IN (活期,定期两便T定期)27ADD CONSTRAINT CK_openMoney CHECK (openMoney=l)ADD CONSTRAINT CK_pass CHECK(LENGTH(pass)=

46、6)ADD CONSTRAINT CKJsRePortLoss CHECK(IsReportLoss IN (足否)ADD CONSTRAINT FK_customerID FOREIGN KEY(customerlD) REFERENCESuserlnfo(customerlD)MODIFY(curType DEFAULT RMB)MODIFY(openDate DEFAULT sysdate)MODIFY(pass DEFAULT 888888)MODIFY(IsReportLoss DEFAULT 否);/表已更改CREATE TABLE transInfo(transDate DATE

47、 NOT NULL,cardID VARCHAR2(20) NOT NULL,transType VARCHAR2(4) NOT NULL,transMoney NUMBER(4) NOT NULL,remark VARCHAR2(50)根JS交易时间创理表分区PARTITION BY RANGE(transDate)(PARTITION transDate_pl VALUES LESSTHAN(to_date(,01/01/2007,dd/mm/yyyy,),PARTITION transDate_p2 VALUES LESSTHAN(to_date(01/04/2007,dd/mm/yyy

48、y,),PARTITION transDate_p3 VALUES LESSTHAN(to_date(,01/07/2007,dd/mm/yyyy,),PARTITION transDate_p4 VALUES LESSTHAN(to_date(,01/10/2007,dd/mm/yyyy)PARTITION transDate_p7 VALUES LESSTHAN(to_date(01/07/2008,dd/mm/yyyy,),PARTITION transDate_p8 VALUES LESSTHAN(to_date(,01/10/2008,dd/mm/yyyy,),PARTITION t

49、ransDate_p9 VALUES LESSTHAN(to_date(,01/01/2009,dd/mni/yyyy,),PARTITION transDate_plO VALUES LESSTHAN(to_date(01/04/2009,dd/mm/yyyy,),PARTITION transDate_pl 1 VALUES LESSTHAN(to_date(*01/07/2009;dd/mm/yyyy,),PARTITION transDate_pl2 VALUES LESS THAN(maxvalue);表已创理-为transInfo表添加表约束ALTER TABLE transInf

50、oADD CONSTRAINT FK_cardID FOREIGN KEY(cardlD) REFERENCES cardlofo(cardlD)ADD CONSTRAINT CK_transType CHECK(transType IN (存入支取)ADD CONSTRAINT CK_transMoney CHECK(transMoney0)MODIFY (transDate DEFAULT sysdate)/表已更改-创理userinfo表视图CREATE OR REPLACE VIEW userlnfo.vwASSELECT customerlD as 用户编号,customerName

51、 as 用户名称,PID as 身份证号.telephone as联系电话.address as致庭住址FROM userinfo;AS29-创建cardinfo表视图CREATE OR REPLACE VIEW cardlnfo.vwASSELECT cardID as 银行卡号.curType as 货币类M.savingTYpe as 存款类 M.openDate as 开户日期.openMoney as 开户金额,balance as 余额、pass as 密 码.IsReportLoss as 是否挂失,customerID as 用户编号 FROM cardinfo;一创理tran

52、sInfo表视图CREATE OR REPLACE VIEW translnfo.vwASselect transDate as 交易日期,cardID as 卡号,transType as 交易类3i,transMoney as 交易金额.remark as 备注 FROM transInfo;-创理査询挂失的客户信息视图CREATE OR REPLACE VIEW userInfo_IsReportLoss_vwASselect u.customerlD as 用户编号.u.customerName as 开户名,u.pid as身份证号,u.telephone as联系电话,u.addr

53、ess as家庭地址FROM userinfo uINNER JOIN card Info c ON u.custonierID=c.customerIDWHERE IsReportLoss二足;-创理 査询本周开户的卡号 显示相关信息视图CREATE OR REPLACE VIEW query_week_information_vwASSELECT cardID as 卡号,curType as 货币类Si,savingType as 存款类M,openDate as 开户日期,openMoney as 开户金额.balance as 余额.pciss as 密码.IsReportLoss

54、as 是否挂失,customerID as 用户编号 FROM cardinfo WHERE openDate BETWEEN TRUNQsysdate/day1) AND sysdate;-创建 査询本月 交易金额最爲的卡号 的视图CREATE OR REPLACE VIEW top_balance_vw30userinfo表视图cardinfo表视图transInfo 表视图SELECT DISTINCT cardID as 交易最髙的卡号,transMoney as 交易金锁FROM transInfoWHERE transMoney=(SELECT Max(transMoney) FR

55、OM transInfo);-査吞视图一一select * from userlnfo_vw;select * from cardlnfo_vw;select * from translnfo_vw;select * from userInfo_IsReportLoss_vw; 一查询挂失的客户信息视图select * from query_week_information_vw; 一査询本周开户的卡号select * from top_balance_vw;一查询本月交易金额最髙的卡号/*select u.customerName as 客户名字.balance as 余额J.transMo

56、ney as 交易金额 from userlnfo u ,cardinfo c Jranslnfo t where u.customerName二张三and u.customerid=c.customerid and c.cardid=t.cardid;select u.customerName as 客户名称,c.balance as 余额 from userinfo u INNER JOIN cardinfo c on u.customeiname二张三and u.customerid=c.customerid;*/-不允许更新cardinfo表的cardID列 -不能更新卡号的触发器cr

57、eate or replace trigger trg_cardInfo_cardID_notUpdate before update of cardIDon cardinfofor each rowbeginraise_application_error(-20001 / 此列不允许修改!);end;-创理触发器实现交易操作create or replace trigger trig_transbefore insert or updateon transinfofor each rowdeclare31my_balance number;rate_exception exception;b

58、eginselect balance into my_balance from cardinfo where cardid=:new.cardid;if :new.tnmstypc二支取thenif my_balance:new.transmoney-1 thenupdate cardinfo set balance=balance-:new.transmoney where cardld=:new.cardld; end if;elsif mew.tianstype二存入thenupdate cardinfo set balance=balance+:new.transmoney where

59、 cardid=:new.cardld; end if;dbms_outputputine( 交易成功!);exceptionwhen rate_exception thenraise_application_error(-20001 / 交易失败 J;end;select * from cardlnfo_vw;-插入交易数揺 自动融发一系列操作insert into transInfo (transdate,cardID.transTypeJransMoney)values(sysdate/1010 3576 8888 66667存入1000);commit;select * from ca

60、rdlnfo_vw;select * from translnfo_vw;create or replace TRIGGER trg_cardIofo_card_notUpdateBEFORE UPDATE OF cardIDON cardlofoFOR EACH ROWBEGIN32RAISE_APPLICATION_ERROR( 20001,账号不允许修改);END;CREATE OR REPLACE FUNCTION random.cardldRETURN VARCHAR2AScard_id VARCHAR2(20):=l010 3576;tem CHAR(5);re_caid_id_c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论