Oracle银行存取钱系统
Oracle银行存取钱系统
/* 银行系统 要求: 1、创建一个用户信息表(userinfo)、一个交易信息表(deal) 2、用户信息表字段:用户编号、用户名称、密码、余额 交易信息表字段:编号、交易金额、交易类型、用户编号 3、建立两个表之间的关系 4、所有编号采用序列添加,序列名称:userinfo_sq,deal_sq 5、添加4个用户信息,内容自定义 6、通过PLSQL编程实现控制台存钱和取钱操作,要求控制台提示操作方式,如: 1、取钱 2、存钱、3查询余额 注意:存取钱操作可以多次执行操作。 */ --创建用户信息表、交易信息表 create table userinfo( u_id number, --用户编号 u_name varchar2(20), --用户名称 u_pwd varchar2(20),--密码 u_money number --余额 ); create table deal( d_id number, --编号 d_money number, --交易金额 d_type varchar2(20), u_id number ); --添加关系 alter table USERINFO add constraint U_PK primary key (U_ID) alter table DEAL add constraint U_D_FK foreign key (U_ID) references USERINFO (U_ID); --添加序列 create sequence USERINFO_SQ minvalue 1 maxvalue 9999999999999999999999999999 start with 1 increment by 1 cache 20; create sequence deal_SQ minvalue 1 maxvalue 9999999999999999999999999999 start with 1 increment by 1 cache 20; --添加用户信息 insert into userinfo(u_id,u_name,u_pwd,u_money) values(userinfo_sq.nextval,'旺财','123',100); insert into userinfo(u_id,u_name,u_pwd,u_money) values(userinfo_sq.nextval,'旺旺','123',1); insert into userinfo(u_id,u_name,u_pwd,u_money) values(userinfo_sq.nextval,'阿旺','123',99); insert into userinfo(u_id,u_name,u_pwd,u_money) values(userinfo_sq.nextval,'小旺','123',100); select *from userinfo; --PLSQL编程 declare --定义一个变量存放用户操作 input number; money number; usid number; begin usid:='&当前用户ID'; input:='&1取钱、2存钱、3查询余额'; --判断操作类型 if input=1 then money:='&取钱金额'; update userinfo set u_money=u_money-money where u_id=usid; --将交易信息保存到交易信息表中 insert into deal(d_id,d_money,d_type,u_id)values(deal_sq.nextval,money,'支取',usid); end if; if input=2 then money:='&存钱金额'; update userinfo set u_money=u_money+money where u_id=usid; insert into deal(d_id,d_money,d_type,u_id)values(deal_sq.nextval,money,'存储',usid); end if; if input=3 then select u_money into money from userinfo where u_id=usid; dbms_output.put_line('当前用户余额为:'||money); end if; end;