《数据库技术与开发》工程实训指导书(8)

2019-05-18 21:57

《数据库技术与开发》工程实训指导书

(2) 插入数据表的测试数据(2学时)

使用T-SQL语句向每个表插入如下所示测试数据,要保证业务数据的一致性和完整性。

? BankBusinessType表的测试数据

使用T-SQL向已经创建的BankBusinessType表插入表7数据:

表21.BankBusinessType表测试数据

? BankCustomer表的测试数据

使用T-SQL语句向BankCustomer表中插入表8的数据:

表22.BankCustomer表测试数据

? BankCard表的测试数据

使用T-SQL语句向BankCard表中插入表9的数据,要求开户日期设置为当前日期近一个月的随机某一天(使用相应的日期函数和随机函数完成)。

扩展题:如何保证某卡号对应的交易日期必须晚于该卡的开户日期,建议增加相应的级联触发器。

表23.BankCard表测试数据

? BankDealInfo表的测试数据

使用T-SQL语句向BankDealInfo表中插入表10的数据,要求交易日期设置为当前日期近半个月的随机某一天(使用相应的日期函数和随机函数完成)。

通过检查相应账户余额,仔细检查上述建立的2个级联触发器是否发挥作用?

表24.BankDealInfo表测试数据

36

《数据库技术与开发》工程实训指导书

5、实训五:模拟常规业务

使用T-SQL语句实现银行的日常业务,并保存为item4.sql文件。 按下述推荐步骤,在4学时内完成下述实训内容: (1) 修改客户密码

根据卡号修改指定2个客户的银行密码,其中第一个客户1010 3576 1234 5678密码修改为123456,第二个客户1010 3576 1234 5688修改为123123,并使用Select查询语句显示如下效果图:

图15.修改客户密码效果图

(2) 办理银行卡挂失

卡号为1010 3576 1234 5678的银行卡丢失,申请挂失,要求使用inner join语句显示如下图运行结果:

图16.办理银行卡挂失效果图

(3) 统计银行资金流通余额和盈利结算

存入代表资金流入,支取代表资金流出。

计算公式:资金流通余额=总存入金额-总支取金额 假定存款利率为千分之三,贷款利率为千分之八。

计算公式:盈利结算=总支取金额*0.008-总存入金额*0.003。

要求创建一个存储过程proc_staticsBanlanceAndProfit,执行该存储过程运行结果如下图所示:

图17.统计银行资金流通余额和盈利结算

参考代码如下所示: if exists(select * from sysobjects where name='proc_staticsBanlanceAndProfit' )

37

《数据库技术与开发》工程实训指导书

......; go create procedure proc_staticsBanlanceAndProfit as declare @InMoney money ...... --获取总存入金额和总支取金额 select @InMoney=SUM(BDDealAcount) from BankDealInfo where rtrim(ltrim(BDDealType))='存入' ...... print '存入总金额:'+rtrim(ltrim(str(@InMoney)))+'RMB,支取总金额:' ...... go (4) 查询本周开户信息

查询本周开户的卡号,显示该卡的相关信息。结果如下图所示:

图18.本周开户信息

提示:

求时间差使用日期函数DateDiff(),求星期几使用日期函数DatePart(),账户状态列使用Case语句转换。

(5) 查询本月单次交易金额最高的卡号和总交易金额最高的卡号

查询本月存、取款中单次交易金额最高的卡号信息。结果如下图所示:

图19.本月交易金额最高的卡号

提示:要求使用子查询和distinct去掉重复的卡号,使用DateDiff()和DataPart()函数得到本月内的交易信息。 (6) 查询挂失客户

查询挂失账号的客户信息,分别利用子查询in的方式或者内部连接inner join,查询结果如下图所示:

图20.查询挂失客户

38

《数据库技术与开发》工程实训指导书

(7) 催款提醒业务

根据某种业务(如代缴电话费、代缴手机费或房贷等)的需要,每个月末,查询出客户账户上余额少于2000元,由银行统一致电催款。

查询结果如下图所示:

图21.催款提醒业务

利用子查询或者内部连接inner join均可,参考代码如下所示: select ...... from BankCard A inner join BankCustomer B Where ...... 6、实训六:创建、使用视图

使用T-SQL语句创建如下视图,并保存为item5.sql文件。 按下述推荐步骤,在4学时内完成下述实训内容:

为向客户提供友好的用户界面,使用T-SQL语句创建下面几个视图,并使用这些视图输出各表信息。

(1) 输出银行客户记录视图VW_userInfo

显示的列名全为中文,要求先判断该视图是否存在,若存在,则先删除。结果如下图所示:

图22.输出银行客户记录

(2) 输出银行卡记录视图VW_CardInfo

建议使用内部连接Inner Join语句,结果如下图所示:

图23.输出银行卡记录

(3) 输出银行卡交易记录视图VW_TransInfo 查询该视图,结果如下图所示:

39

《数据库技术与开发》工程实训指导书

图24.输出银行卡的交易记录

(4) 根据客户登录名查询该客户账户信息VW_OneUserInfo

根据客户登录名(采用实名制访问银行系统)查询该客户账户信息的视图,利用SQL SERVER系统函数system_user获得数据库用户名。

图25.根据登录名查询账户信息

7、实训七:存储过程实现业务处理

(1) 完成存款或取款业务 描述:

? 根据银行卡号和交易金额实现银行卡的存款和取款业务。

? 每一笔存款,取款业务都要计入银行交易账,并同时更新客户的存款余额。 ? 如果是取款业务,在记账之前,要完成下面两项数据的检查验证工作,如果

检查不合格,那么中断取款业务,给出提示信息后退出。 ? 检查客户输入的密码是否正确。

? 账户取款金额是否大于当前存款额加1。 要求:

? 取款或存款存储过程名为usp_takeMoney。

? 编写一个存储过程完成存款和取款业务,并调用存储过程取钱或者存钱进行

测试,测试数据是张飞的卡号支取100元(密码123456),关羽的卡号存入2100元。

? 结果如下图所示

下述两图为张飞卡号存入2100元的运行结果:

40


《数据库技术与开发》工程实训指导书(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:铁路职业技能鉴定货运核算员高级实作试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: