数据库技术与应用课程设计报告内容摘要:

proc_staticsBanlanceAndProfit,执行该存储过程运行结果如下图所示: 执行统计银行资金流通余额和盈利结算的存储过程 exec proc_staticsBanlanceAndProfit 39。 张建军 39。 图 1. 统计某客户的资金流通余额和盈利结算 (4) 查询某个开户网点本季度开户信息 查询本季度某个开户网点的银行卡开户相关信息,如查询大连新型支行的本季度开户信息。 结果如下图所示,按开户日期排序: 图 2. 本季度某个开户网点的开户信息 (5) 查询本周开户且本周单次交易金额最高的交易信息 查询本周开户的银行卡中单次交易金额最高的信息。 结果如下图所示: 查询本季度各银行卡交易总额的信息,结果如下图所示: 图 1. 本季度各银行卡的交易信息:卡号,交易总额 查询本季度交易总金额最高的银行卡信息。 图 1. 本季度银行卡交易额最高的银行卡信息:卡号、开户日期、开户金额 (6) 查询挂失客户信息 查询挂失账号的客户信息,利用子查询 in 的方式,查询结果如下图所示: 图 3. 查询挂失客户 由于所有卡余额均大于等于 0,所以并没有挂失账户,此查询为空 实训五:查询统计 使用 TSQL 语句实现银行的日常业务,并保存为 文件。 按下述推荐步骤,在 4 学时内完成下述实训内容: (1) 催款提醒业务 根据某种业务(如代缴电话费、代缴手机费或房贷等)的需要,每个月末,查询出各个开户网点中客户账户上余额少于 200 元的客户总数,由银行统一致电催款。 查询结果如下图所示: 图 4. 催款提醒业务 查询没有开户的客户信息 查询没有开户的客户信息,查询结果如下图所示: 图 5. 查询没有开户的客户信息 由于在设计表数据时为每一位客户都至少开了一张卡,故不存在未开户客户 (3) 统计各个开户网点营业情况 显示各开户网点的本周开户数(只统计账户余额在 5000 元以上的银行卡),交易总金额,交易总笔数。 查询结果如下图所示: 图 6. 查询本周各开户网点的营业情况 (4) 查询客户开卡数量 显示开卡数量等于或者超过 5 张的客户信息。 查询结果如下图所示: 图 7. 查询开卡数量 5 张及以上的客户信息 (5) 统计本月开户的银行卡支取情况 显示本月开户的银行卡支取情况,查看各个银行卡的开户金额 +收入总额 支出总额是否和账户余额相符。 查询结果如下图所示: 图 8. 查询本月开户的银行卡支取情况 实训六:创建、使用视图 使用 TSQL 语句创建如下视图,并保存为 文件。 按下述推荐步骤,在 2 学时内完成下述实训内容: 为向客户提供友好的用户界面,使用 TSQL 语句创建下面几个视图,并使用这些视图输出各表信息。 (1) 输出银行客户记录视图 VW_userInfo 显示的列名全为中文,显示银行卡没有挂失的客户记录视图,要求先判断该视图是否存在,若存在,则先删除。 结果如下图所示: 图 9. 输出银行客户记录(其对应的银行卡状态为未挂失) (2) 输出银行卡记录视图 VW_CardInfo 建议使用内部连接 Inner Join 语句,结果如下图所示: 图 10. 输出银行卡记录 (3) 输出银行卡交易记录视图 VW_TransInfo 查询该视图,视图按交易日期排序,结果如下图所示: 由于要在视图中使用 order by 因此使用 top 图 11. 输出银行卡的交易记录 (4) 查询本季度没有交易记录的客户信息 创建视图 vw_searchCustomerNoDeal,查询本季度没有交易记录的客户信息。 图 12. 本季度没有交易记录的客户信息 vw_searchCustomerNoDeal 实训七:存储过程实现业务处理 使用 TSQL 语句创建如下视图,并保存为 文件 (1) 完成存款或取款业务 描述:  根据银行卡号和交易金额实现银行卡的存款和取款业务。  每一笔存款,取款业务都要计入银行交易账,并同时更新客户的存款余额。  如果是取款业务,在记账之前,要完成下面两项数据的检查验证工 作,如果检查不合格,那么中断取款业务,给出提示信息后退出。  检查客户输入的密码是否正确。  账户取款金额是否大于当前存款额加 1。 要求:  取款或存款存储过程名为 usp_takeMoney。  编写一个存储过程完成存款和取款业务,并调用存储过程取钱或者存钱进行测试。  若是存取款过程成功,则结果窗口显示如图 19 的信息,包括卡号信息,以及当天的该卡号交易信息。 若是存取款不成功,则给出错误提示信息。  结果如下图所示 下述两图为存取款正确时的结果窗口: 图 13. 执行存储过程的结果窗口(存取款) 图 14. 执行存储过程的输出消息 提示:  鉴于存款时客户不需要提供密码,在编写存储过程中,为输入参数“密码”列设置默认值为 Null。  在存储过程中使用事务,以保证数据操作的一致性。  use BankDB1  go  71  if exists(select * from sysobjects where  id=OBJECT_ID(N39。 proc_TakeMoney39。 ))  drop proc proc_TakeMoney  go  create proc proc_TakeMoney  @BCNo varchar(20),@money money,@pwd varchar(10)=null  as  不返回受影响的行数  set nocount on  声明一个变量存放指定卡号的存款余额  declare @existBanlance money  启动事务机制  begin tran  select @existBanlance=BCExistBalance from BankCard  where BCNo=@BCNo  print(39。 交易前,卡号 39。 +@bo+39。 ,余额为 :39。 +convert(varchar(20),@existBanlance))  print(39。 交易正进行,请稍后 ...39。 )  如果输入参数 @pwd为空,则为取款业务,否则为存款业务  if(@pwd is not null)  办理取款业务  begin  判断指定卡号和密码是否存在,若存在,则可以取款,否则失败  if exists(select BCNo,BCPwd from BankCard where (BCNo=@BCNo and BCPwd=@pwd))  begin  if((select BCRegLoss from BankCard where BCNo=@BCNo)=39。 是39。 )  begin  print 39。 该卡已挂失 ,无法办理相应业务 39。  rollback  end  else  begin  判断取款金额是否小于等于余额,若条件成立,则可以取款,否则失败  if(@money=@existBanlance)  begin  insert into BankDealInfo  values(@BCNo,GETDATE(),@money,39。 取款 39。 ,39。 通过存储过程 39。 )  if(@@ERROR0)  begin  print 39。 交易失败 39。  rollback tran  end  else  begin  mit tran  print 39。 交易成功 ,交易金额为 :39。 +convert(varchar(10),@money)+39。 ,余额为:39。 +convert(varchar(10),(@existBanlance@money))  end  end  else  begin  print 39。 余额不足 ,取款失败 39。  rollback tran  end  end  end  else  begin  print 39。 取款失败。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。