数据库技术与应用课程设计指导书.docx
数据库技术与开发课程设计指导书内科大信息学院计算机系2014年2月15日实训工程:银行ATM存取款机系统设计与实现一、工程背景1、工程任务使用PowerDesigner完成数据库设计创立数据库、创立表、创立约束使用触发器和插入测试数据模拟常规业务、创立视图使用存储过程实现业务处理利用事务实现较复杂的数据更新2、工程技能目标使用PoWerDeSigner完成数据库概念模型和数据库物理模型设计。使用TSQL语句创立数据库、表和各种约束。使用T-SQL语句编程实现常见业务。使用触发器实现多表之间的级联更新。使用事务和存储过程封装业务逻辑。使用视图简化复杂的数据查询。使用游标技术实现结果集的行集操作。3、需求概述某银行是一家民办的小型银行企业,现有十多万客户,公司将为该银行开发一套ATM存取款机系统,对银行日常的存取款业务进行计算机管理,以便保证数据的平安性,提高工作效率。要求根据银行存取款业务需求设计出符合第三范式的数据库结构,使用T-SQL语言创立数据库和表,并添加表约束,进行数据的增删改查,运用逻辑结构语句、事务、视图和存储过程,按照银行的业务需求,实现各项银行日常存款、取款和转账业务。4、开发环境数据库:SQLSERVER2008开发版数据库建模工具:PowerDesigner155、问题分析该工程的ATM存取款机业务如下:(1)银行存取款业务介绍银行为客户提供了各种银行存取款业务。详见表1表L银行存取款业务业务描述活期无固定存期,可随时存取,存取金额不限的一种比拟灵活的存款定活两便事先不约定存期,一次性存入,一次性支取的存款通知不约定存期,支取时需提前通知银行,约定支取日期和金额方能支取的存款整存整取选择存款期限,整笔存入,到期提取本息的一种定期储蓄。银行提供的存款期限有1年、2年和3年零存整取一种事先原定金额,逐月按约定金额存入,到期支取本息的定期储蓄。银行提供的存款期限由1年、2年和3年自助转账在ATM存取款机上办理同一币种账户的银行卡之间互相划转(2)客户信息每个客户凭个人身份证在银行可以开设多个银行卡账户,开设账户时,客户需要提供的开户数据如表2所示:表2.开设银行卡账户的客户信息数据描述姓名必须提供身份证号唯一确定客户,如果是二代身份证,那么是由17位数字和1位数字或者字符X构成。如果是一代身份证,那么身份证号全部是15位数字。联系分为座机号码和号码:座机号码由数字和“一”构成,由以下两种格式:XXX-XXXXXXXX或者XXXX-XXXXXXXo号码由11位数字构成,且前2位必须是13或者15开头。居住地址可以选择(3)银行卡账户信息银行为每个账户提供一个银行卡,每个银行卡可以存入一种币种的存款,银行保存账户如表3所示:表3.银行卡账户信息数据描述户;银行的卡号由16位数字组成,其中:一般前8位代表特俗含义,如代表某总行某支行等,假定该行要求其营业厅的卡号格式为10103576XXXXXXXX,后8位必须是随机产生且唯一,每4位号码后有空格。密码由6位数字构成,开户时默认为“888888”币种默认为RMB,目前该银行尚未开设其他币种存款业务。存款类型必须选择开户日期客户开设银行卡账户的日期,默认为当日开户金额客户开设银行卡账户时存入的金额,规定不得小于1元。是否挂失默认为“否”客户持银行卡在ATM机上输入密码,经系统验证身份后办理存款、取款和转账等银行业务。银行规定,每个账户当前的存款金额不得小于1元。(4)银行卡交易信息银行在为客户办理业务时,需要记录每一笔账目,账目交易信息如表4所示:表4.银行卡交易信息数据描述卡号银行的卡号由16位数字组成交易日期默认为当日交易金额必须大于0元交易类型包括:存入和支取两种备注对每笔交易做必要的说明(5)银行卡手工账户和存取款单据信息该银行要求这套软件实现银行客户的开户、存款、取款、转账和余额查询等业务,使得银行储蓄业务方便、快捷,同事保证银行业务数据的平安性。为使开发人员尽快了解银行业务,该银行提供了银行卡手工账户和存取款单据的样本数据,以供工程开发时参考,参加表5和表6。表5.银行卡手工账户样本数据住址H耐:,芟4户户口邓开户群1件玄丽尔JBJ-氏S丁/、5O9W12C其的*s-155北由倒WI,0015%1I?IoM;现印加川2YgY>I.OOW888Ih5tf789网姆(O-U4C333W北矶jj巾Imn抬M12Rl加工视什加山二Y"",怫Z土网盯IKY、常母卡kUl柏33UIL仙徉一川。协.而旧,MLg¥即Yipoinnwen失朱T23壮丽3450M'7>M包10)(135%12U¼?HhU,'V""?YMOOi1O134RIlWighrRW?WVZKq>:【,0(l157619HJeft4/叫1YIO泗YlJXMm的呦表6.存取款单据样本数据爻易B明交与观型卡号交易金戳余繇全注2009-11-2支取1010357612345678Y900.(10¥100.002009-1.72(X)9-11-2存入IOlO田61212IBO3OO.X)Y301.002009-Il-22009-11-2存入IOIO35761212KMMtOOO.OO¥!.001.002009-172009-11-2存入l10357612121130I9(X)¥2.2010020O9I420(>9-11-2ft八1010357612121134¥S(UX)(MY30tm020O9I22009-112存入(Q)O35761212ILUY5(K).00¥5,501,002(K9-i22009-113支取10103-57612)2.IL34十(jM(HiiIJuwoj,IJ2009-11-5行人IOIO3576234567¥,OoOlJor2IU00ll2O0')137000dl3t15<11AI2HI114VTAAAVI4°Iijf)QwI20(W-11-3市入I(112345678¥00000Y4JOO.OO?11QI.彳2009-11-3存入IQIQ3576【234567S7OOQoO6100GO'009l36、实训进度安排实训进度安排如下表所示:表7实训进度安排实训内容所需学时提交文档实训一:制定数据库设计与编程标准41份数据库设计与编程标准实训二:数据库分析设计与建模8数据库分析设计文档及数据库概念模型、物理模型。实训三:创立数据库4T-SQL源文件实训四:创立触发器和插入测试数据4T-SQL源文件实训五:模拟常规业务4T-SQL源文件实训六:创立和使用视图4T-SQL源文件实训七:存储过程实现业务处理6T-SQL源文件实训八:利用事务实现转账业务6T-SQL源文件7、成绩考核实训工程最终成绩由3局部构成:平日考勤20%+实训文档30%+实训工程完成质量50%,但凡报优的同学需参加公开辩论,讲解辩论10J5分钟。凡实训工程雷同,或者考勤不合格直接视同不及格。二、工程实训内容实训内容由8个实训工程构成,建议在参考代码和实现步骤根底上进行改良,每个实训子工程的T-SQL语句写成1个T-SQL源文件,如itemLsqlo1、实训一:制定数据库设计与编程标准参考技术文档:数据库设计标准(I)、数据库设计标准(修订)、数据库设计及编写标准、编程标准(T-SQL)、Transact-SQL_数据库编程命名标准、SQLServer数据库编程标准等技术文档,制定一份10-15页,不少于3000字的数据库设计与SQL编程标准,要求至少包含各个数据库对象的命名标准、编程标准及注释标准。该实训工程的设计与编程要求遵循该实训制定的数据库设计与编程标准。2、实训二:数据库分析设计与建模阅读工程背景相关内容,在8学时内按下述推荐步骤完成下述实训内容:(1)分析银行ATM存取款系统实体(2学时)根据问题分析,明确银行ATM存取款系统的实体、实体属性及实体之间的关系:在充分理解银行业务需求后,围绕银行的需求进行分析,确认与银行ATM存取款有紧密关系的实体,并得到每个实体的必要属性。根据业务,分析多个实体之间的关系。实体之间的关系可以是一对一、一对多和多对多。要求使用Visio绘制出ATM存取款系统ER图。参考资料:ER设计、根本ER图要点(2)标准数据库结构设计(2学时)使用数据库设计范式对数据库表结构进行标准优化,标准数据库的表结构同时,要考虑软件运行性能。必要时,可以有悖于第三范式的要求,适当增加冗余数据、减少表间链接,以空间换取时间。要求以上述数据库设计举例说明3种数据库设计范式的具体应用实例,每个设计范式至少举例说明其中1个实例。如所谓第一范式(INF)是指数据库表的每一列都是不可分割的根本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如在银行客户表BankCUStOmer中,不能将客户信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;客户信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。安装并演示POWerDeSigner建模例如(2学时)参考PowerDesigner系统分析与建模,安装PoWerDeSigner及破解步骤、演示创立数据库概念模型CDM数据库物理模型PDM和自动生成T-SQL语句等操作。(4)绘制CDM模型、生成PDM模型和生成TSQL语句(2学时)使用POWerDeSigner,把设计数据库第一步结果(即分析得到的银行ATM存取款系统的实体、实体属性、以及实体之间的关系)用CDM表示,要求CDM要表达出各实体之间的关系以及各实体的实体属性。创立如下列图1所示的数据库概念模型:银彳汴银行卡号Char密货开开是卡码币户户否内类日金挂余型期额失额Characters (6) Characters (5) Date Money Characters (10) Money业务类型-银行卡业务类型 业第编号InteQer* 业务名称 Characters (20)o 业务Variable Characters(IOO)客户镇行卡银行卡-拉易信息银行交易信息客户信息8.客户4号 O客户姓名 O身份证号 O客户电话<0客户住址InteqerCharacters (20)Characters (18)Characters (20)Variable characters (100)o交易编号 o交易日期0交易金额 0交易类型 、O交易备注Integer Date Money Characters(IO)VariabIecharacters(IOO)图1.银行存取款系统数据概念模型CDM检查所创立CDM模型无误后,自动生成相应的CDM设计文档和银行存取款系统数据 物理模型PDM。参考PDM模型如图2所示:IR行卡'业0 iVDkJk育户笫 0 iniVok.l%限行卡号Char什9) vok> 密码 char(6) 货币类型char(5) 开户日期dattimo 开户金额money 是否挂失Char(IO) 卡内余额money整、山中综号 intvoQ业务名称char(20)业务描述 Varchar(IOO)FK BANKCARD IC-BC BNKCLSTITi BANKI)BjL BC BI) bankcard银行交iS信息客户信息客户给号intVPIO客户姓名Char(20)身份证号Char(18)客户电话Char(20)客户住址varchar(100)'lLg¾SintVOkfk>客户砧铝intV Okf除银行卡Char什 9)VOkfI>交罚编号it 交易日期datetime 交易金额money 交罚类型char(10) 交易省注Varchar(IOO)图2.银行存取款系统数据物理模型PDM3、实训三:创立数据库使用T-SQL语句完成数据库、数据表和各种约束及触发器的创立,并保存为item2.sql文件。按下述推荐步骤,在4学时内完成下述实训内容:(1)创立数据库(1学时)使用CreateDataBase语句创立“ATM存取款机系统”数据库BankDB,数据文件和日志文件保存在指定目录下(建议建立一个文件夹,用于存放该实训工程的所有相关T-SQL源文件),文件增长率为15%。参考代码如下所示:一创立BankDB数据库,数据库文件和日志文件均保存在一文件夹G:2014年工程窠例工程银行ATM存取款机系统下一文件增长率均为他数据文件起始大小为MB,日志文件起始大小为MBcreatedatabaseBankDBonprimary(name=N,BankDB,filename=N,G:2014年工程案例工程银行ATM存取款机系统BankDB.mdf,size=5MB,filegrowth=15%)logon(name-N,BankDBlog,fiIename=N'G:2014年工程案例工程银行ATM存取款机系统BankDB_log.ldf,size=2MB,filegrowth=15%)(2)创立各个数据表及相关的约束(2学时)根据实训1设计出的“银行ArM存取款机系统”PDM模型的数据表结构,使用CreateTable语句创立表结构。根据银行业务,分析表中每个列相应的约束要求,为每个表添加各种约束。要求创立表时要求检测是否存在表结构,如果存在,那么先删除再创立。建议选择2张表的T-SQL语句进行修改,先创立表结构里的各个字段,再用AIterTable语句为每个表添加各种约束。参考代码如下所吞useBankDB;go判断银行业务类型表是否存在,假设存在那么删除ifexists(select*fromsysobjectswhereid=OBJECT-ID(N,BankBusinessTypej)droptableBankBusinessType创立银行'业多类型表,包含银行业务类型编号BBTld,银行业务类型名称BBTName,银行'1L务描述BBTeOmmentcreatetableBankBusinessType(BBTIdintidentity(l,1)primarykey,BBTNamechar(20)notnull,BBTCommentvarchar(100);go判断银行卡客户是否存在,假设存在那么删除,ifexists(select*fromsysobjectswhereid=OBJECT-ID(N,BankCustomer,)droptableBankCustomer一创立银行客户信息表,包含客户编号BCID,客户姓名BCNanle,客户身份证BClCNo,客户联系BCTek客户居住地址BCAddrcreatetableBankCustomer(BCIdintidentity(1,1)primarykey,BCNamechar(20)notnull,一定义身份证号前位必须是数字,后位可以是数字或者X。BCICNochar(18)notnullcheck(left(BCICNo,17)like,0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-9,and(right(BCICNo,1)like,0-9,orright(BCICNo,1)like'X'),一定义联系方式,必须是固定号码或者号,且前位必须是,第位必须是或或BCTelvarchar(20)notnullcheck(BCTellike,0-90-90-90-9.0-90-90-90-90-90-90-9,orBCTcllike,0-90-90-9_0-90-90-90-90-90-90-90-9,orBCTellike,13580-90-90-90-90-90-90-90-90-9,),一定义客户地址BCAddrvarchar(100);go一判断银行卡是否存在,假设存在,那么删除馄行卡BankCard,ifexists(select*fromsysobjectswhereid=object_id(N,BankCard,)droptableBankCard一建立银行卡信息createtableBankCard(-卡号必须符合位数字构成,前位为3576,后位是随机产生且唯一,每位必须有一个空格BCNochar(19)primarykeycheck(BCNolike,101035760-90-90-90-90-90-90-90-9,),一密码,开户默认为BCPwdchar(6)notnulldefault(,888888,),一币种,为RMB类型BCCurrencychar(5)notnulldefault(,RMB,),一存款类型BCBBTIdintnotnull,一开户日期,默认当日BCOpenDatedatenotnulldefault(getdate(),一开户金额,不得小于元BCOpenAmountmoneynotnullcheck(BCOpenAmount>=1),一是否挂失,默认为否.,BCRegLosschar(2)default('否'),-客户编号BCBCIdintnotnull,BCExistBalancemoneynotnull);一判断交易信息BankDeannfO是否存在,假设存在那么删除ifexists(select*fromsysobjectswhereid=OBJECT-ID(N,BankDealInfo,)droptableBankDealInfo一创立交易信息表createtableBankDealInfo(一交易编号为自利增长列BDNointidentity(1,1)primarykey,一卡号BDBCNochar(19)notnull,一交易日期BDDealDateDatenotnulldefault(getdate(),一交易金额BDDealAcountmoneynotnull,一交易类型,有种存入和支取.BDDealTypeChar(IO)notnullCheCk(BDDeaITyPe='存入'orBDDealTyPe='支取'),一交易备注BDDealCommentVarchar(100);(3)添加外键约束和生成数据库关系图(1学时)添加子表外键约束及生成数据库关系图添加外键约束参考代码如下所示:一建立表之间的外键约束关系altertablebankcardaddconstraintfk_BC_BBTforeignkey(BCBBTId)referencesbankbusinesstype(bbtid);altertablebankcardaddconstraintfk_BC_BCforeignkey(BCBCId)referencesBankCustomer(BCId);altertableBankDealInfoaddconstraintfk_BDI_BCforeignkey(BDBCNo)referencesBankCard(BCNo);在SQLSERVER里自动生成数据库关系图,如下列图所示:图3.BailkDb数据库关系图4、实训四:创立触发器和插入测试数据(1)创立级联触发器(2学时)创立Insert触发器在交易信息表BankDeaIInfO中创立一个InSert触发器,当增加一条交易信息时,修改相应银行卡的存款余额。建议使用游标,实现批量增加的级联更新。一在交易信息表中插入一个触发器,使用游标当新增一个交易信息,修改银行卡的存款余额,if(object-id(,tr-lnsertdeallnfo,tr,)isnotnull)droptriggertr_InsertdealInfogocreatetriggertr_lnsertdeallnfoonbankdealinfoforinsertasdeclare©typechar(10),summoney,BDBCNochar(19);-创立一个流标,指向inserted表declarecursor_BankDealinfocursorforselectBDDealType,BDDeaTAcount,BDBCNofrominserted一翻开游标opencursor_BankDealinfo取游标中各个字段的值复制给各个变量fetchnextfromcursor_BankDealinfointo©type,sum,BDBCNowhilefetch_status=Obegin一判断交易记录里是存入还是支取,及时更新银行卡表的存款余额if(rtrim(!trim(type)=,存入')updatebankcardsetBCExistBa1ance=BCExistBa1ance+sumwhereBCNo=BDBCNo;if(rtrim(ltrim(type)=,支取')updatebankcardsetBCExistBa1ance=BCExistBa1ance-sumwhereBCNO=BDBCNo;fetchnextfromcursor_BankDealinfointotype,SUm,BDBCNoendclosecursor_BankDealinfodeallocatecursor_BankDealinfogo创立Delete触发器在交易信息表创立一个Delete触发器,当删除一条交易信息时,修改相应银行卡的存款余额O建议使用游标,实现批量删除的级联更新。一在交易信息表中插入一个触发器,使用游标,当删除一个交易信息,修改银行卡的存款余额,if(object-id(,trDeldealInfo,tr,)isnotnull)droptriggertrDeldealInfogocreatetriggertrDeldealInfoonbankdealinfofordeleteasdeclare©typechar(10),summoney,BDBCNochar(19);一创立一个流标,指向deleted表declarecursorBankDealinfocursorforselectBDDealType,BDDealAcount,BDBCNofromdeleted一翻开游标opencursorBankDealinfo取游标中各个字段的值复制给各个变量fetchnextfromcursor_BankDealinfointotype,SUm,BDBCNOwhilefetch_status=Obeginif(rtrim(!trim(type)=,存入')updatebankcardsetBCExiStBalance=BCExistBalance-sumwhereBCNO=BDBCNo;if(rtrim(ltrim(type)=,支取')updatebankcardsetBCExiStBalance=BCExistBalance+sumwhereBCNO=BDBCNo;fetchnextfromcursor_BankDealinfointotype,©sum,©BDBCNoendclosecursor_BankDealinfodeallocatecursor_BankDealinfog。> 创立Update触发器参照上述代码,创立一个UPdEe触发器,当更新交易信息表的记录时,更新银行卡表的相应卡号的余额。(2)插入数据表的测试数据(2学时)使用T-SQL语句向每个表插入如下所示测试数据,要保证业务数据的一致性和完整性。> BankBUSineSSTyPe表的测试数据使用T-SQL向已经创立的BankBusinessType表插入表7数据:表8.BankBUSineSSTyPe表测试数据BBTIdBBTNameBBTComment1j活期无固定存期可随时存取存取金额不限的一种比较灵活的存款2定活两便事先不约定存期,一次性存入,一次性支取的存款3通知不约定存期,支取时需提前通知银行,约定支取日期和金额方能支取的存款4整存整取1年整笔存入,到期提取本息5整存整取班整笔存入,到期提取本息6整存整取再整笔存入,到期提取本息7零存整取1年事先原定金额,逐月按约定金额存入,到期支付本息8零存整取有事先原定金额,逐月按约定金额存入,到期支付本息9零存整取降事先原定金额,逐月按约定金额存入,到期支付本息10自助转账银行ATM存取款机上办理银行卡之间互相划转> BankCUStOmer表的测试数据使用T-SQL语句向BankCustomer表中插入表8的数据:表9.BankCustomer表测试数据BCIdBCNameBCICNoBCTdBCAddr'l张飞15020319761115422413088447030包头市昆区包钢五中2关羽15020319761005123X0472.2315490包头市昆区阿尔丁大街>BankCard表的测试数据使用T-SQL语句向BankCard表中插入表9的数据,要求开户日期设置为当前日期近一个月的随机某一天(使用相应的日期函数和随机函数完成)。扩展题:如何保证某卡号对应的交易日期必须晚于该卡的开户日期,建议增加相应的级联触发器。表10.BankCard表测试数据BCNoBCPwdBCCurrencyBCBBTIdBCOpenDateBCOpenAmountBCRegLossBCBCIdBCExistBaIance|1010357612345678197611RMB12014-01-311000.00否11000.001010357612345S88197711RMB22014-01-291500.00否21500.00>BankDeallnfo表的测试数据使用T-SQL语句向BankDeallnfo表中插入表10的数据,要求交易日期设置为当前日期近半个月的随机某一天(使用相应的日期函数和随机函数完成)。通过检查相应账户余额,仔细检查上述建立的2个级联触发器是否发挥作用?表ILBankDeallnfo表测试数据BDNoBDBCNoBDDeaIDateBDDeaIAcountBDDeaITypeBDDeaIComment110103576123456782014-02-03500.00存入单位1月工奥210103576123456782014-01-271500.00存入单位2月工资310103576123456782014-01-28600.00支取支付宝付款410103576123456782014-01-2700.00支取刷卡消费510103576123456882014-02-023000.00存入单位1月工资61010357612345G882014-02-042800.00存入单位2月工资710103576123456882014-02-051OO.OO支取支付宝付款810103576123456882014-02-10900.00支取刷卡消费5、实训五:模拟常规业务使用T-SQL语句实现银行的日常业务,并保存为item4.sql文件。按下述推荐步骤,在4学时内完成下述实训内容:(1)修改客户密码根据卡号修改指定2个客户的银行密码,其中第一个客户1010357612345678密码修改为123456,第二个客户1010357612345688修改为123123,并使用Select查询语句显示如下效果图:1ZZ三码货市类型储蓄种类开户日期开户金额是否挂失客户编号存款余额Wio357612345678123456RMB212014-01-291000.00否51700.00Tdw35761234-588"'123123RMB222014-02-101500.00否64800.00图4.修改客户密码效果图(2)办理银行卡挂失卡号为1010357612345678的银行卡丧失,申请挂失,要求使用innerjoin语句显示如下列图运行结果:卡号密码货币类型储蓄类型开户日期开户金额是否挂失客户姓名存款余额6i03512¾78123456RMB活期20144)1-291000.00否张飞1700.00,1而j箭i5ii藤123123RMB定活两便2014)2-101500,00是关羽4S00.00图5.办理银行卡挂失效果图(3)统计银行资金流通余额和盈利结算存入代表资金流入,支取代表资金流出。计算公式:资金流通余额=总存入金额总支取金额假定存款利率为千分之三,贷款利率为千分之八。计算公式:盈利结算=总支取金额*0.008-总存入金额*0.003。要求创立一个存储过程proc_staticsBanlanceAndProfit,执行该存储过程运行结果如下列图所示:J消息存入总金额:78003MB,支取总金额二38003MB,专取亍流通余额:400。RMB甯利余赖为:通OgMB图6.统计银行资金流通余额和盈利结算参考代码如下所示:ifexists(select*fromsysobjectswherename='proc_staticsBanlanceAndProfit,)gocreateprocedureproc_staticsBanlanceAndProfitasdeclare©InMoneymoney二装取总存入金额和总支取金额selectInMoney=SUM(BDDealAcount)fromBankDealInfowherertrim(!trim(BDDealType)=,存入'print存入总金额+rtrim(1trim(str(InMoney)+,RMB,支取总金额:g(4)查询本周开户信息查询本周开户的卡号,显示该卡的相关信息。结果如下列图所示:口结果,J消息4姓名,货币存款类型开户日期,开户金额存效余领赚户蟋1Pi而6至洛茂i:关羽RMB定活两便2014-02-101500.004800.00挂失账户图7.本周开户信息提不:求时间差使用日期函数DateDiff(),求星期几使用日期函数DatePart(),账户状态列使用CaSe语句转换。(5)查询本月单次交易金额最高的卡号和总交易金额最高的卡号查询本月存、取款中单次交易金额最高的卡号信息。结果如下列图所示:值结果消息卡号开户日期开户金额1;彳而6运而立讶胸:2014-02-101500.00图8.本月交易金额最高的卡号提示:要求使用子查询和distinct去掉重复的卡号,使用DateDiff()和DataPart()函数得到本月内的交易信息。(6)查询挂失客户查询挂失账号的客户信息,分别利用子查询in的方式或者内部连接innerjoin,查询结果如下列图所示:二I结果底就客户姓名联系电话1i美丽10472.2315490客户姓名客户电话1:笑丽04722315490;:一图9.查询挂失客户(7)催款提醒业务根据某种业务(如代缴费、代缴费或房贷等的需要,每个月末,查询出客户账户上余额少于2000元,由银行统一致电催款。查询结果如下列图所示:口结果上、消息客户姓名联系电话存款余额1:薪:130884470301700.00;:图10.催款提醒业务利用子查询或者内部连接innerjoin均可,参考代码如下所示:selectfromBankCardAinnerjoinBankCustomerBWhere6、实训六:创立、使用视图使用T-SQL语句创立如下视图,并保存为item5.sql文件。按下述推荐步骤,在4学时内完成下述实训内容:为向客户提供友好的用户界面,使用T-SQL语句创立下面几个视图,并使用这些视图输出各表信息。(1)输出银行客户记录视图VW_userlnfo显示的列名全为中文,要求先判断该视图是否存在,假设存在,那么先删除。结果如下列图所示:结果上消息客户编号开户名身份证号电话号码居住地址1:5|张飞15020319761115422413088447030包头市昆区包钢五中2'"6关羽15020319761005123X0472.2315490