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;

  

原文地址:https://www.cnblogs.com/tangjiang-code/p/7662850.html