SQL银行数据库管理语句(详细版)

SQL银行数据库管理语句(详细版)
SQL银行数据库管理语句(详细版)

create table UserInfo(

CustomerId char(20),

CustomerName char(50)not null,

PID varchar(20)unique,

Telephone varchar(20),

Address char(50),

PRIMARY KEY(CustomerId))

create table CardInfo(

cardID char(50)not null,

curType varchar(10)not null default'RMB',

savingType varchar(10),

openDate datetime default getdate(),

openMoney int not null,

balance int not null,

pass char(50)not null default'888888',

IsReportLoss char(50)not null default'否',

customerID char(20)not null foreign key(customerID)references userinfo(customerID), PRIMARY KEY(CardId))

create table TransInfo(

transDate datetime not null default'getdate()',

cardID char(50)foreign key(cardID)references cardinfo(cardID),

transType char(10)not null,

transMoney bigint not null,

remark char(20),

ID int identity(1,1)not null)

Insert into userinfo

values('10001','李清','420101************','2071-84216821','湖北武汉');

Insert into userinfo

values('10002','玉清','420101************','2071-84216820','湖北武汉');

INSERT INTO CardInfo

V ALUES('102128001','RMB','活期',getdate(),'10000','10000','84212121','否','10001'); INSERT INTO CardInfo

V ALUES('102128002','RMB','活期',getdate(),'10001','10001','84202020','否','10002');

select*FROM cardInfo where(datediff(day,getDate(),openDate)

Select cardid from cardinfo

Where(datediff(month,getDate(),openDate))<0

and cardid in(select top 1 with ties cardid from transinfo

order by transMoney)

Select sum(transMoney)from Transinfo Where transType='存入'

Select sum(transMoney)from transinfo Where transType='支取'

Select((Select sum(transMoney)from Transinfo Where transType='存入')

-(Select sum(transMoney)from transinfo Where transType='支取'))as资金流通余额

Select((Select sum(transMoney)from Transinfo Where transType='存入')*0.08

-(Select sum(transMoney)from transinfo Where transType='支取')*0.03)as盈利结算

Create unique index T_cardid on cardinfo(cardid)

Create index S_cardid on transinfo(cardid)

Create VIEW test(卡号,开户名,开户日期,余额,存款类型,身份证号,电话号码,居住地址)

AS

Select cardid,customername,opendate,openmoney,savingtype,PID,Telephone,address From cardinfo left outer join userinfo

On cardinfo. customerID=userinfo. customerID

create proc zhuanzhang

@tmoney bigint,

@password char(50),

@putcardid char(50),

@incardid char(50)

as

BEGIN

if(@password!=(select pass from cardinfo where cardid=@putcardid))

print'密码错误,请重试'

else if(((select balance from cardinfo where cardid=@putcardid)-@tmoney)<1)

print'余额不足,请确定后输入'

else

begin

insert into transinfo values(getdate(),@putcardid,'支取',@tmoney,'无')

insert into transinfo values(getdate(),@incardid,'存入',@tmoney,'无')

update cardinfo set balance=balance-@tmoney where cardid=@putcardid

update cardinfo set balance=balance+@tmoney where cardid=@incardid end

END

create proc cunkuan

@inmoney bigint,

@password char(50),

@inercardid char(50)

as

BEGIN

if(@password!=(select pass from cardinfo where cardid=@inercardid))

print'密码错误,请重试'

else if(@inmoney<0)print'不能输入负金额'

else

begin

insert into transinfo values(getdate(),@inercardid,'存入',@inmoney,'无')

update cardinfo set balance=balance+@inmoney where cardid=@inercardid end

END

create proc qunkuan

@inmoney bigint,

@password char(50),

@inercardid char(50)

as

BEGIN

if(@password!=(select pass from cardinfo where cardid=@inercardid))

print'密码错误,请重试'

else if(@inmoney<0)print'不能输入负金额'

else if(((select balance from cardinfo where cardid=@inercardid)-@inmoney)<1) print'余额不足,请确定后输入'

else

begin

insert into transinfo values(getdate(),@inercardid,'存入',@inmoney,'无')

update cardinfo set balance=balance+@inmoney where cardid=@inercardid

end

END

create trigger WARM

on cardinfo

instead of update

as

BEGIN

declare @oldmoney bigint

declare @newmoney bigint

select @oldmoney=balance from deleted;

select @newmoney=balance from inserted;

if(@newmoney<1)

begin

select cardid,balance from deleted;

print'您的余额不足'

end;

END

相关主题
相关文档
最新文档