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

下载本文档

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

文档简介

1、目录摘要 1一、设计银行管理系统结构图1.1系统结构图 2二、银行管理系统E-R图和表结构2.1 E-R 图 32.2 表结构 5三、创建系统数据表3.1 创建表空间和用户 63.2 创建用户信息表并添加约束 63.3 创建银行卡信息表 83.4 创建交易信息表 9四、模拟常规业务操作4.1 建立更新账号触发器 114.2 存取款交易操作 114.3 用户开户 124.4 更改密码 154.5 账号挂失 164.6 余额查询 164.7 转账业务设置 174.8 银行盈利结算 174.9 撤户操作 18五、总结 20参考文献 21附录 22摘要随着计算机的飞速发展及应用领域的扩大,特别是计算机

2、网络和电子商务 的发展,极大的改变了商业银行传统的经营模式。能够为客户提供方便、快捷、 安全的服务,也能够有效的降低银行的营运成本,这是银行存储系统追求的目标。 目前,对于现代化银行运营的要求是客户可以实现方便安全的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。方便用户快速的进行存 款、取款、修改密码以及完成一些转账的交易,大大提高办公效率,能够及时、 准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。、设计银行管理系统结构图1.1系统结构图银行系统账 户 挂 失销 户账 户 管 理信 息 查 询余额查询图1.1系统结构图二、银行管理系统E-R图和表结构2.

3、1 E-R 图图2.1交易信息表图2.22.2 表结构通过对银行管理系统的需求分析,应该为该系统设计3个表,分别为用户信息表、银行卡信息表和交易信息表。用户信息表用于存储用户的基本信息, 包括用户的编号、开户名、身份证 号、联系电话和家庭住址等信息表2.1用户信息表字段名称字段描述数据类型长度约束customer用户编号Number4主键customer开户名Varhcar220必填PID身份证号Varchar218必填telephone联系电话Varchar213必填Address家庭地址Varchar250无银行卡信息表用于存储银行卡相关的信息主要包括卡号、存储的货币类型, 存款方式,开户

4、时间,开户金额,余额、银行卡密码、是否挂失和用户编号等信 息,表2.2银行卡信息表字段名称字段描述数据类型长度约束cardIDVarchar220主键curType货币种类Varhcar210必填SavingType存款类型Varchar28非空Opendate开户日期DATETIME必填openmoney开户金额Number8必填Balance帐户余额Number8必填Isreportloss是否挂失Varchar22必填Customer开户编号Varchar4外键交易信息表用于存储用户的交易记录,主要包括交易日期,卡号、交易类 型,交易金额等信息。表2.3交易信息表字段名称字段描述数据类型

5、长度属性Transdate交易日期DatetimePKcardIDVarhcar220非空transTYPE交易类型VARCHAR24非空transMoney交易金额NUMBER4非空remark备注VARCHAR250非空三、创建系统数据表3.1创建表空间和用户使用system用户连接数据库后,创建表空间 space_zqp,指定数据文件为D:Bank.dbf ,代码如下图:SQL> CREATE TABLESPACE space.zqp2 DATAFILE 3D:Bsnk. dbf1 SIZE 50M3 AUTOEXTEND ON MEXT 5M MAXSIZE UNLIMITED.

6、袤空间已创建,SQL) create user zqp4 IDENTIFIED BY sqp5 DEFAULT TABLESPACE space_zqpI 4 TEMPORARY TAELE SPACE 怩般5 QUOTA 20M ON space_zqp;用户已创建。SQL> grant cftba to sqp;授权成功.SQL connect zqp/zqp;已连接。图3.1表空间和用户3.2 创建用户信息表并添加约束用户信息表保存了用户的基本信息,该表的创建语句如下,CREATE TABLE userInfo(customerID NUMBER(4) NOT NULL,custo

7、merName 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(customerID)ADD CONSTRAINT UK_PID UNIQUE(PID)ADD CONSTRAINT CK

8、_PID CHECK(LENGTH(PID)=18 OR LENGTH(PID)=15)ADD CONSTRAINT CK_telephone CHECK(telephoneLIKE'0-90-90-90-9H0-90-90-90-90-90-90-90-9'OR LENGTH(telephone)=13); 创建可以自动生成自增主列的序列 customerid_seqCREATE SEQUENCE customerid_seqSTART WITH 1INCREMENT BY 1NOCACHE如上述语句所示,在userInfo表中包含用户编号(customerid)、开户名(c

9、ustomername)、身份证号(PID)、联系电话(telephone)、家庭住址(address )。 其中,customerid为主键,自增(从1开始);PID只能是18位或15位,并且 是唯一的;telephone必须是xxxx-xxxxxxxx的格式或13位的手机号码。£QL) select * froci Mrdliifo;CAPDIDCJRTYPEOPEMOATEEAL支PASS IS CUSTOIEFJDlolu 3S7&1231ooalm活摩口-11 月-It1UDOloou833g38 否1101012340004m定序1?-月-修80008000sss

10、sas 否&1010 35761234O00ERMB之期17T1 月-赁50DO5000S8S8SS 否11CART IDOOTYPE EAVJNOTZ QPEWAIE3PSOOHEY EMAXEPASS TS CUS"OIERID1010 357G123+00(36RI&S朋17-口月-140004000883833 否3LQ1Q 357b1234QQ07RMB定隼丁-口目-如4/加4如。的瑞羽否7-010 3&76123+0010用IB定字1?-口月-1644004400R33888 否10CARDIDCJRTYFE WTOTT QFI加AltJPNION

11、EY E4XE图3.2用户信息表3.3 创建银行卡信息表银行卡信息表(cardinfo )中包含了卡号(cardid),货币种类(curType), 存款类型(savingtype ),开户日期(opendate),开户金额(openmoney,余额 (balance),密码(pass),是否挂失(isREPORTLOS S口用户编号(customerID) 的信息。其中,cardID为主键,必须为1010 3756 xxxx xxxx 的格式;CURTYPE 默认为RMB openmoney必须不能低于一元;balance也必须不能低于一元;pass 默认为 88888888; ISREPO

12、RTLOS的值必须是“是/否”中之一,默认为否; customerID 为外键,引用 userInfo 表中的 customerID 歹!J。1 C达ME TAELE cardToro3 t3 <ardLD 叫霭CHAFE12G M3T NULL, q turType 丫的【际乂:.) MT HULL F seivirgTyre 丫时lARHfg) NOT (TJIL, :c?nTaie L'ATE 阳T NULL, 7 op>nllaney NIIMEER(川J-lT NULL, 8 b&l DT:c» KIISBER(8)NOT NULL, S pa-

13、s ¥QC11AR2E NUT HULL.ID IsRgf-artLoss VAR3HAR2(2)U1T NULL, ii custrirrir mmritK) mtt 即席.12 )13PARTL7J0K Bl M用孤位nDaiG1415PAPTLTIJK 叩mrUmpL kMUEE LESS THAN (TO JATE>' 01/01/20071.1 dd.Wwyv')1白PAFTL7I0N qf打 1)小目 p2 V缸UEE LESS WAN (TO DATE C 01/04 OOT1) * dd/nn/fVYy' 5).17FQmi口N oper

14、Date p3 门LUBE LES; THA>(TO JATEC Q1/07/200T*, * dd.Wirwy),正FARTUION 即日疝at日4 VALBES LESS TM(TO_PMrC 01/1O/2W7' f * dd/nE/yyyy*),P.T:TI :>:%-Hus 百 V?1UEZ LE3£ TH?5C0 二ATEJJQ二lOQW iLTillj.1920PARTUTION QpsrCatg_p6 血UES LESS TBAN(TO_DATEC 01/0V2003, / dd/mn/yyyy),21PARTHIDN aparCatg_p7 V.

15、LUES LESS TBAN(TO_DATEC C 1/07/2003' n 1 dd/mr/yvyy*),22PARTTT1DK m自d)atgqg 遇LUEW LESS HlANCT jATE*' 01/10/2003 / dd/irrv'iryyy)-.篡PArmoK白3g value; less TAN(TOjm< :i/oi/2oc ,'3皿'明/7'打一PAjTmDN oparDixaLC 力工皿: LEM THAN:TCi_TaTE(ddjmyvyy'",2EPArrriDN 0C-erl)aTe_p:l V

16、ALUE: LEES THANJTDJTE( 01/07/20(*3f / dd/mvr)h26 PATETION oc-erJ)axe_pE2 VALUE: LESS IHANiiasvalue) 27* )SQL> /限已创建图3.33.4创建交易信息表交易信息表中包含了五个字段,分别为transdate(交易日期),cardID(卡 号)、TRANSTYP鼠易类型),transmoney(交易金额)和remark (备注)。其中, transdate 默认为系统当前日期;cardid位外键,引用cardinfo 表中的cardid 列,可重复;transtype 只能是“存入/取出

17、”之一;transmoney必须大于0.|3Q1> C超盯E 比花PUiCE 力EQ cardrrtc_v»2 AS_SBLD7T cardZD HEcuzType a$ 贷市美包L "£口金?匕49存熟类型,openDate as开门)_期,口欣:l n开户金SN, bdLmce as 亲前,udK5 as LsReportLass as 兄占珪工:1nqijk工 as 用户编号4 FROM cardlnfo*配创电SCI- select 巾2 fr cm csrclTnfo,'银打卡号能币类型存款类型开户日用开户金麴 余款标码是用户编号rr :7

18、5E 0W117-11-15IQCO1:00二1二【.占1rr 7751234 0004RIB自即17 1F 168mQOOD否61: "花1234 0006Fib定期If月卷5X0钠WB3EBSB 否L1蜴行r号货币类型存新类型开户日期开F金观余超畜硝是用户编号图3.4交易信息表四、模拟常规业务操作4.1建立更新账号触发器结果如下:SQL> connect zqp/zqp 已连接_SQLcreate or replace TRIGGER txar di nfdi D_io tUp date2 BEFORE UPDATE OF cardID3 ON cardlnfoi FOR

19、EACH ROW5 DE&IN6 RAISE_APPLrCATION_ERROR (-20001,f 账户不允许修改!');7 END;8 /触发器已创建图4.1创建before update 触发器4.2 存取款交易操作当用户办理取款或存款业务时,不仅需要向交易信息表中添加一条交易记录, 还需要修改当前账户中的余额,如果办理取款业务,如果将当前账户总的余额减 去支取余额,如果办理托管业务,多叫当前账户中的金额加上存款金额。在交易信息表中包含一个名为transtype的字段,该字段用于表示交易类型, 取值范围必须是存入或者自取,因此可以为 transINFO表创建BEFORE

20、INSERTR 触发器。根据要办理里的交易类型,判断出当前的交易类型,如果 transtype 字段值为“支取”,则表示要办理取款业务,检测当前余额是否大于或等于要支 取的金额,如果满足条件,则要修改 cardinfo表中的balance字段值,将该字 段值减去交易金额(transmoney),如果transtype字段值为“存入”,则表示要 办理存款业务,修改 cardinfo 表中的balance字段值,将该值加上交易金额 (transmoney)。代码如下:reate or replace trigger trig_trans before insert or update on tra

21、nsinfo for each rowdeclare my_balance number;rate_exception exception;begin select balance into my_balance from cardinfo where cardid=:new.cardid;if :new.transtype='支取'thenif my_balance<:new.transmoney-1 then dbms_output.put_line(' 对不起,您的余额不足!');return;elsif my_balance>:new.tra

22、nsmoney-1 thenupdate cardinfoset balance=balance-:new.transmoneywherecardId=:new.cardId;end if;elsif :new.transtype='存入'thenupdate cardinfoset balance=balance+:new.transmoneywherecardid=:new.cardId;end if;dbms_output.put_line('交易成功!);exception交易失败');when rate_exception then raise_app

23、lication_error(-20001,' end;select * from cardInfo_vw;存入',1000);insert into transInfo (transdate,cardID,transType,transMoney) values(sysdate,'1010 3576 8888 6666',' commit;4.3 用户开户根据身份证号查询是否在该行开过户,为万无一失,还需要查询生成的卡号 是否已经被使用,如果这两个条件都符合要求(此人从未在该行开过户,生成的卡号也无人使用),则向userinfo表中插入开户人的基本信息

24、记录,并根据开户 人的身份证号获取开户人的编号,从而向cardinfo表中插入开户人的基本信息记录,同时还需要将生成的卡号显示给开户人。如果收到卡号已经被使用,得提 醒用户开户失败;如果当前开户人已经在此行开过户,则提示用户此身份证已有 账号。结果如下图:取,册册OR坡L砒procete proc卬前犯i世加曲班 p_i d vircbarS. t-1 mchaiC address van hr 3. savia5type 盯口ri curlype Tarcharf, 噂mnb归y向世. pa英 vircharst瞰帆蹦址凝婢短翻于帮会郑福新刑书- -比忸加?W;-秸cost醒rjd血比;项名

25、IDiffl&ER.cffl&3R"T腼姐消cii:=raim cardld,忌硼T耐的底: <cmt(+) into i ircia uEirinfo Jj&re m+ id;行代靠日可9ct couDtW into c Ern cerdinfo -ere arilkii;if i-O thenif c=0 theniiser: into u;=rlnf valufcustarid 网电虹山皿一晒:d&ad也还),select stirll into custDrjd tci usErlnlo #.ere :ID=p_id:insert in;

26、om扑面EL"rT?p晨肝谑typ&Opxjo町匕山口cep阳口市项叫岭(54邙W5犯 赎Men卬第瑞:ustu虺_况;D邮邮WLffllUM(嗨山拗珅网测取肌口削鼬相犷|同;ekii c)0 thanta 碱11tM lineC开帙放门图4.24.4 更改密码可以为一个银行账号对应一个密码,因此当用户输入的卡号密码相对应时, 该银行卡设置新的密码,代码: create or replace procedure proc_updateUserPass(temp_cardid varchar2,-卡号oldpass varchar2, -旧密码newpass varchar2

27、-新密码)asi number;pass_i VARCHAR2(6);beginselect count(*) into i from cardInfo where cardID=temp_cardid;select pass into pass_i from cardInfo where cardID=temp_cardid;if i=0 thendbms_output.put_line(' 此卡号不存在!');elsif i>0 thenif pass_i=oldpass thenUPDATE cardInfo set pass=newpass where cardi

28、d=temp_cardid;密码更改成功!');旧密码不正确!);密码更改失败!');dbms_output.put_line( elsedbms_output.put_line(end if;end if;commit;exceptionwhen others thendbms_output.put_line(end4.5 账号挂失当用户的银行卡丢失后,可以对该卡进行挂失,银行管理系统需要验证用户 的真实性,当用户输入银行卡号和密码相对应,才可以对该卡进行挂失操作,即修改cardinfo 表中的IsreportLOSS列为“是",否则提示“无权挂失”。 结果如图:S

29、QL'create or replace procedure prjc_lostC(j(Gard_id varc向21P茹s2 何址2)2 is3 x ±ar(2);4 1 HWCT;5 bejin6 select count(*) into i fam cardlnfo时isre caidld=cari_id and pas=pass2;8 if i>0 ffl-9 SELECT I=Re?ortLDSs INTO x froi :ardlnfo There cartUd=caidJd and 陞笈出船或 10 if是" than11 dbnisjmput树

30、:ne:此卡已经肤I12 else13 UPCAH cardlnfo set 4用口rtL比/是'where car£d=card_id;14 曲以皿皿,pgi加(说耙硼桂失商林友懒.帏劫檄复奸! :15 eni if;16 ELSEn而(njtp仇邛ut二in£:抖法叔请厥居曹正御”;18 E® IF;19 end;20 I强己创惠图4.34.6 余额查询用户可以使用银行管理系统,办理余额查询等业务,系统要求用户输入银行 卡账号和密码,当用户输入的账号和密码都合法时,系统就查询该用户的账户余 额,否则将提示用户“账号或密码错误! ”,代码:CREATE

31、OR REPLACE procedure pro_query_balance(card_id varchar2,- 帐户card_pass varchar2) - 密码asi NUMBER:=0;not_data_found exception;user_balance NUMBER(8);beginselect count(*) into i from cardInfo where cardID=card_id and pass=card_pass;if i=0 thenraise not_data_found;elseselect balance into user_balance fro

32、m cardInfo where cardID=card_id and pass=card_pass;dbms_output.put_line(' 你帐号的余额为:'|user_balance);end if;exceptionwhen not_data_found thendbms_output.put_line('帐号或密码错误!');end;4.7 转账业务设置自助银行管理系统办理转账业务时,要求用户输入正确的用于转账的卡号和 密码,以及获得转账的卡号和转账金额,系统将根据用户输入的卡号和密码,检测该银行卡是否存在,如果存在,则判断该银行卡余额是否大于要转

33、账的余额; 如果大于,则向表中插入两条交易记录,一条支取的记录,一条为存入的记录, 并提示用户转账成功;如果用户输入的卡号和密码不正确,则提示“你的卡号或密码有误!4.8 银行盈利结算银行的管理人员可以统计银行的资金流通余额和盈利结算,资金流动金额等于总存入-总支数金额;盈利结算,等于总支出金额乘以8%-总存入金额乘以3%代码如图:JO or relate prccein pro_rorey_b3nkrcill | :s曲由 匚12;gelrionavii-jierfl);total血时电2)payoff mbe而 2);bejinsekct oJransney) into卿的上丁明frtr.

34、惬曲忙口 力洸tra阊玳:不 select皿t如呻)iiro舞训哨fron t睡【吐 血=:ranEyp1患. total/陆。江.3医厂骐.皿町payoff:1 ;也第 it _加任间 咐 Wtjo 邺 1 008);dbjns.oitput嘶fil辘":,IltoU |1 RUB1);ta_output jmtJ inef 酬罐时 11 p/yoff |珊); end,图4.44.9 撤户操作当用户不再需要使用某张银行卡时,可去银行办理撤户操作,撤户操作需要 用户输入正确的卡号和密码,系统将根据用户输入的数据对该银行卡进行验证, 如果该银行卡存在,都需要将卡上的余额全部取出,并删

35、除该卡在cardinfo表中的记录,以及在transinfo 表中所有的交易记录。代码如下图tOL> :reitr cr replace 门口龙E曰 pmcjte同1 :2 tEzp/ardU wM a一博3 tEijass可注比打2幡筠4 )5皑6tenp.lance LWer.Mt_d氧 a_f血 eke凯 imE网 integer ;=0;9的痴工 select :口加 上)hu a 工皿 mil前二门二拈嘉/盯加xnl网货twF阻11 select balarze into tw.bBbxe fro Cardinfo nben cardld=iM_cir(£Ii and

36、 pess:一四jiass12 if血电血13 dtns_(nj 仇 juUine卡号:'II饶呼jardlD);11爪工_叫肛国琉"(吐印余篦'|:就_反匿口眦 捱遍出)15dtxjmpuLpuU加帏户©!'比也:足 女:】糯Mi jere a比庐二码:三灯口:dE”出 ±cm iirdii-fo 曲2m cariid-topardlD,18 ccniit;19 册?,2Cdb:isjoirput/irt_li3:卡告蔡冏熊!' L21 giiI if;22 GKepticn23 的叫 others th即21dtm?_outpr

37、it. put_l ine:段有诚卡号 f11,25辿26 /墟a*图4.5五、总结通过此次课程设计,使我更加扎实的掌握了有关数据库方面的知识,在设 计过程中虽然遇到了 一些问题,但经过一次又一次的思考,一遍又一遍的检查终 于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。 实践出 真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次 课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终 于游逆而解。在今后社会的发展和学习实

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

39、eM中国水利水电出版社,2010.17 Karen Morton.OracleSQL高级编程M.人民邮电出版社, 2011.118 梁敬彬,梁敬弘.收获不止oracleM.电子工业出版社,2013.59 盖国强.循序渐进oracle数据库管理、优化与备份恢复M.人民邮电出版社,2011.810Lan Abramson,Micheael Abbey,Michael J.Corey,窦朝辉.oracle database 11g:初学者指南M.清华大学出版社,2010-01附录程序源代码:CREATE TABLESPACE space_zqpDATAFILE 'D:Bank.dbf SIZ

40、E 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 xianglin/accp;/ 已连接REATE TABLE userInfo(customerID NUMBER(4) NOT NULL,customerName V

41、ARCHAR2(20) NOT NULL,PID VARCHAR2(18) NOT NULL,telephone VARCHAR2(13) NOT NULL,address VARCHAR2(50)-根据身份证ID创建散列分区PARTITION BY HASH(PID)(PARTITION pid1,PARTITION pid2,PARTITION pid3,);为userInfo表添加约束条件ALTER TABLE userinfoADD CONSTRAINT PK_customerID PRIMARY KEY(customeriD)ADD CONSTRAINT UK_PID UNIQUE(

42、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-90-90-90-90-90-9'ORLENGTH(telephone)=13);/ 表已更改 创建可以自动生成自增主列的序列 customerid_seqCREATE SEQUENCE customerid_seqSTART WITH 1INCREMENT BY 1NOCACHE;好歹U已仓建CREATE TA

43、BLE cardIofo(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,customerID NUMBER(4) NOT NULL)根据开户日期创建表分区PARTITION BY RAN

44、GE(openDate)(PARTITIONopenDate_p1VALUESLESSTHAN(TO_DATE('01/01/2007','dd/mm/yyyy'), PARTITIONopenDate_p2VALUESTHAN(TO_DATE('01/04/2007','dd/mm/yyyy'), PARTITIONopenDate_p3VALUESTHAN(TO_DATE('01/07/2007','dd/mm/yyyy'), PARTITIONopenDate_p4VALUESTHAN(TO_

45、DATE('01/10/2007','dd/mm/yyyy'), PARTITIONopenDate_p5VALUESTHAN(TO_DATE('01/01/2008','dd/mm/yyyy'), PARTITIONopenDate_p6VALUESTHAN(TO_DATE('01/04/2008','dd/mm/yyyy'), PARTITIONopenDate_p7VALUESTHAN(TO_DATE('01/07/2008','dd/mm/yyyy'), PA

46、RTITIONopenDate_p8VALUESTHAN(TO_DATE('01/10/2008','dd/mm/yyyy'), PARTITIONopenDate_p9VALUESTHAN(TO_DATE('01/01/2009','dd/mm/yyyy'), PARTITIONopenDate_p10VALUESTHAN(TO_DATE('01/04/2009','dd/mm/yyyy'), PARTITIONopenDate_p11VALUESTHAN(TO_DATE('01/07/2

47、009','dd/mm/yyyy'), PARTITION openDate_p12 VALUES LESS THAN(maxvalue) );/表已创建 为cardInfo 表添加约束条件 ALTER TABLE cardIofo ADD CONSTRAINT PK_cardID PRIMARY KEY(cardID) ADD CONSTRAINT CK_cardID CHECK( TRANSLATE(cardID,'0123456789 ','xxxxxxxxxx'尸xxxx xxxx xxxx xxxxLESSLESSLESSLES

48、SLESSLESSLESSLESSLESSLESSANDINSTR(cardID,'1010 3576 ')=1)ADD CONSTRAINT CK_sav CHECK(savingType IN (' 活期',定期两便,定期')ADD CONSTRAINT CK_openMoney CHECK (openMoney>=1)ADD CONSTRAINT CK_pass CHECK(LENGTH(pass)=6)ADD CONSTRAINT CK_IsRePortLoss CHECK(IsReportLoss IN ('是','

49、;ADD CONSTRAINTFK_customerID FOREIGN KEY(customerID)LESSLESSLESSLESSuserInfo(customerID)MODIFY(curType DEFAULT 'RMB') MODIFY(openDate DEFAULT sysdate) MODIFY(pass DEFAULT 888888) MODIFY(IsReportLoss DEFAULT '否'); CREATE TABLE transInfo(transDate DATE NOT NULL,cardID VARCHAR2(20) NOT

50、NULL, transType VARCHAR2(4) NOT NULL, transMoney NUMBER(4) NOT NULL, remark VARCHAR2(50)-根据交易时间创建表分区PARTITION BY RANGE(transDate)(PARTITIONtransDate_p1THAN(to_date('01/01/2007','dd/mm/yyyy'), PARTITIONtransDate_p2THAN(to_date('01/04/2007','dd/mm/yyyy'), PARTITIONtrans

51、Date_p3THAN(to_date('01/07/2007','dd/mm/yyyy'), PARTITIONtransDate_p4否)REFERENCES表已更改VALUESVALUESVALUESVALUESTHAN(to_date('01/10/2007','dd/mm/yyyy'),PARTITIONtransDate_p5THAN(to_date('01/01/2008','dd/mm/yyyy'),VALUESLESSPARTITIONtransDate_p6THAN(to_dat

52、e('01/04/2008','dd/mm/yyyy'),VALUESLESSPARTITIONtransDate_p7THAN(to_date('01/07/2008','dd/mm/yyyy'),VALUESLESSPARTITIONtransDate_p8THAN(to_date('01/10/2008','dd/mm/yyyy'),VALUESLESSPARTITIONtransDate_p9THAN(to_date('01/01/2009','dd/mm/yyyy&

53、#39;),VALUESLESSPARTITIONtransDate_p10THAN(to_date('01/04/2009','dd/mm/yyyy'),VALUESLESSPARTITIONtransDate_p11VALUESTHAN(to_date('01/07/2009','dd/mm/yyyy'),PARTITION transDate_p12 VALUES LESS THAN(maxvalue)LESS);/表已创建 为transInfo 表添加表约束ALTER TABLE transInfoADDCONSTRAIN

54、=fK_cardID FOREIGMEY(cardlD) REFERENCESrdlofo(cardlD)ADD CONSTRAINT CK_transType CHECK(transType IN ('存入','支取')ADD CONSTRAINT CK_transMoney CHECK(transMoney>0)MODIFY(transDate DEFAULT sysdate);/ 表已更改-创建userInfo 表视图CREATE OR REPLACE VIEW userInfo_vwASSELECT customerID as 用户编号,custo

55、merName as 用户名称,PID as 身份证 号,telephone as 联系电话,address as 家庭住址FROM userInfo;- -创建cardinfo 表视图CREATE OR REPLACE VIEW cardinfo_vwASSELECT cardID as 银行卡号,curType as 货币类型,savingTYpe as 存款类 型,openDate as 开户 日期,openMoney as 开户金额,balance as 余额,pass as 密码,IsReportLoss as 是否挂失,customeriD as 用户编号 FROM cardinf

56、o;- -创建transinfo 表视图CREATE OR REPLACE ViEW transinfo_vwASselect transDate as 交 易日期,cardiD as 卡号,transType as 交易类 型,transMoney as 交易金额,remark as 备注 FROM transinfo;- -创建查询挂失的客户信息视图CREATE OR REPLACE ViEW userinfo_isReportLoss_vwASselect u.customeriD as用户编号,u.customerName as 开户名,u.pid as 身份证号,u.telephone

温馨提示

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

评论

0/150

提交评论