createdatabasebankDBon(name='bankDB',filename='d:\bankDB.mdf')--dropdatabasebankDB/*===================================建表=====================================================建表包括户信息表useinfo、银行卡信息表cardinfo、交易信息表transinfouseinfo表包括开户人姓名、身份证号、联系电话、联系地址cardinfo表包括卡号、货币类型、存款类型、开户日期、开户金额、余额、用户密码、是否挂失、顾客编号transinfo表包括交易日期、卡号、交易类型、备注信息===============================================================================================*/--建立用户信息表useinfocreatetableuserinfo(customerIDintidentity(1,1)notnull,--identity为列的识别customerNamevarchar(16)notnull,PIDvarchar(18)notnull,telephonevarchar(14)notnull,addressvarchar(50))createtablecardinfo(cardIDchar(20)notnull,curtypevarchar(10)notnull,savingTypevarchar(10)notnull,openDatedatetimenotnull,openMoneymoneynotnull,balancemoneynotnull,passintnotnull,IsReportLosschar(2)notnull,customerIDintnotnull,)createtabletransinfo(transDATEdatenotnull,cardIDchar(20)notnull,transTypevarchar(5)notnull,transMoneymoneynotnull,remarkvarchar(50))/*===================添加约束======================userInfo表的约束包括:主键约束、外键约束、唯一约束客户ID的身份证号码添加检查约束,长度为15或18客户电话号码添加检查约束=================================================*/altertableuserinfo--ALTERTABLE语句用于在已有的表中添加、修改或删除列。addconstraintpk_customerIDprimarykey(customeRID),--constraint主要是增加约束constraintuq_PIDunique(PID),constraintck_PIDcheck(len(PID)=15orlen(PID)=18),constraintck_telephonecheck(telephonelike('[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')ortelephonelike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'ortelephonelike'[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'orlen(telephone)=13)/*===================添加约束==================================cardinfo表的约束包括:主键约束、外键约束、唯一约束卡号ID(cardID)添加约束,必须是以‘10103576’开头,长度为12货币类型(curType)添加默认约束,默认为RMB存储类型添加约束,只能是‘活期,定活两便和定期’开卡日期默认为当天日期开户金额不能低于1元余额不能低于1元表中密码为六位数,默认888888是否挂失只能是‘是’和‘否’,默认为否==============================================================*/altertablecardinfoaddconstraintpk_cardIDIDprimarykey(cardID),constraintck_cardIDcheck(cardIDlike'10103576[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),constraintdf_curTYPEdefault('RMB')forcurType,constraintck_savingTypecheck(savingTypelike'活期'orsavingTypelike'定活两便'orsavingTypelike'定期'),constraintdf_openDatedefault(getdate())foropenDate,--DEFAULT约束用于向列中插入默认值constraintck_openMoneycheck(openMoney=1),constraintck_balancecheck(balance=1),constraintck_passcheck(len(pass)=6),constraintdf_passdefault(888888)forpass,constraintck_IsReportLosscheck(IsReportLoss='是'orIsReportLoss='否'),constraintdf_IsReportLossdefault('否')forIsReportLoss,constraintfk_customerIDforeignkey(customerID)referencesuserinfo(customerID)/*===================添加约束======================transinfo表的约束包括:主键约束、外键约束、唯一约束交易日期默认为当天交易类型只能是‘存入’和‘支取’交易金额必须大于0=================================================*/altertabletransinfoaddconstraintdf_transDatedefault(getdate())fortransDate,constraintck_transTypecheck(transTypelike'存入'ortransTypelike'支取'),constraintck_transMoneycheck(transMoney0),constraintfk_cardIDforeignkey(cardID)referencescardinfo(cardID)/*==========================================添加数据=====================================userinfo表:姓名:张三、身份证号码:156748235641235、电话:010-67898978、地址:北京海淀姓名:李四、身份证号码:125632458965321456、电话:0478-66662453、地址为空cardinfo表:张三的卡名为1010357612345678,存款类型为‘活期’,开户金额为1000,未挂失李四的卡号为1010357612121134,存款类型为‘定期’,开户金额为1,未挂失=======================================================================================*/--向userinfo表中添加数据insertintouserinfovalues('张三',156748235641235,'010-67898978','北京海淀')insertintouserinfovalues('李四',125632458965321456,'0478-66662453','四川成都')insertintocardinfovalues('1010357612345678','RMB','活期',getdate(),1000,1000,123456,'否',1)insertintocardinfovalues('1010357612121134','RMB','定期',getdate(),1,1,654321,'否',2)/*==========================================存储、修改密码及挂失与提醒充值================================================存取:卡号为‘1010357612345678’的客户从卡里取出900块钱卡号为‘1010357612121134’的客户存了5000元修改密码及挂失:修改卡号为‘1010357612345678’的客户密码为123456,卡号为1010357612121134的客户密码为654321,并挂失=========================================================================================================================*/--客户账目的存取insertintotransinfo(transType,cardID,transMoney)values('支取','1010357612345678','900')insertintotransinfo(transType,cardID,transMoney)values('存入','1010357612121134','5000')updatecardinfosetbalance=balance-900wherecardID='1010357612345678'updatecardinfosetbalance=balance+5000wherecardID='1010357612121134'--修改密码及挂失updatecardinfosetpass=123456wherecardID='1010357612345678'updatecardinfosetpass=123123wherecardID='1010357612121134'updatecardinfosetIsReportLoss='是'wherecardID='1010357612121134'/*=====================查询====================基本数据的查询查询本月交易金额最高的客户的卡号查询账号挂失的用户信息查询账上余额小于300的用户的卡号与电话号码关于李四客户多表链接的查询=============================================*/--查询基本信息select*fromuserinfoselect*fromcardinfoselectcardIDfromtransinfowheretransMoneyin(selectmax(distinct[transMoney])fromtransinfo)--关键词DISTINCT用于返回唯一不同的值selectcustomernameas客户姓名,telephoneas联系电话fromcardinfojoinuserinfooncard