亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 銀行 atm (取款機)系統(tǒng)數(shù)據(jù)庫設(shè)計.sql

?? ATM sql設(shè)計.rar ATM sql設(shè)計.rar
?? SQL
字號:

use master
go

--創(chuàng)建目錄
exec xp_cmdshell 'md D:\bank',NO_OUTPUT            
go

if exists (select * from sysdatabases where name='bankDB')
	drop database bankDB
go

------------創(chuàng)建數(shù)據(jù)庫-------------
create database bankDB
on
(
name='bank_Data',
filename='D:\bank\bank_Data.mdf',
size=1GB,
maxSize=10GB,
filegrowth=15%
)
log on
(
name='bank_Log',
filename='D:\bank\bank_Log.ldf',
size=50MB,
maxSize=5GB,
filegrowth=5%
)
go

use bankDB
go

if exists(select * from sysobjects where name='userInfo')
	drop table userInfo
go

------------------------用戶信息表 (userInfo)----------------------
create table userInfo
(
customerID	int identity(1,1)	not null,	--顧客編號 
customerName	varchar(10)		not null,	--開戶名
PID		varchar(18)		not null,	--身份證號
telephone	varchar(20)		not null,	--聯(lián)系電話
address		varchar(50)		null,		--居住地址

--約束
constraint PK_customerID primary key(customerID),
constraint UQ_PID unique (PID),
constraint CK_PID check(PID like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or PID like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
constraint CK_telephone check(telephone like '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or telephone like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or telephone like '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
)

use bankDB
go

if exists (select * from sysobjects where name='cardInfo')
	drop table cardInfo
go

---------------------------銀行卡信息表 (cardInfo)-----------------------------
create table cardInfo
(
cardID	varchar(25)	not null,		--卡號
curType	varchar(20)	not null		--貨幣種類
	constraint DF_curType default 'RMB',
savingType	varchar(10)	null,		--存款類型
openDate	dateTime	not null	--開戶日期
	constraint DF_openDate default getDate(),
openMoney	money	not null,		--開戶金額
balance		money	not null,		--余額
pass		varchar(6)	not null	--密碼
		constraint DF_pass default '888888',
IsReportLoss	char(2)	not null		--是否掛失
		constraint DF_IsReportLoss default '否',
customerID	int	not null,		--客戶編號

--約束
constraint PK_cardID primary key(cardID),
constraint CK_cardID check(cardID like '1010 3576 [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]'),
constraint CK_openMoney check(openMoney>=1),
constraint CK_balance check(balance>=1),
constraint FK_customerID foreign key(customerID) references userInfo(customerID)
)
go

use bankDB
go

if exists (select * from sysobjects where name='transInfo')
	drop table transInfo
go

---------------------------交易信息表 (transInfo)-----------------------------
create table transInfo
(
transDate	dateTime	not null	--交易日期
		constraint DF_transDate default getdate(),
cardID		varchar(25)	not null,	--卡號
transType	varchar(4)	not null,	--交易類型
transMoney	money		not null,	--交易金額
remark		varchar(50)	null,		--備注

--約束
constraint FK_cardID foreign key(cardID) references cardInfo(cardID),
constraint CK_transType check(transType in ('存入','支取')),
constraint CK_transMoney check(transMoney>0)
)


/**-------------------------開戶-------------------------**/

insert into userInfo(customerName,PID,telephone,address)
values ('張三','123456789012345','010-67898978','北京海淀')

insert into cardInfo(cardID,curType,savingType,openDate,openMoney,balance,pass,IsReportLoss,customerID)
values ('1010 3576 1234 5678',default,'活期',default,1000,1000,default,0,1)

insert into userInfo(customerName,PID,telephone)
values ('李四','321245678912345678','0478-44443333')

insert into cardInfo(cardID,curType,savingType,openDate,openMoney,balance,pass,IsReportLoss,customerID)
values ('1010 3576 1212 1134',default,'定期',default,1,1,default,0,2)


/**---------------------取款和存款-------------------------**/

insert into transInfo(transDate,cardID,transType,transMoney)
values (default,'1010 3576 1234 5678','支取',900)

update cardInfo set balance=balance-900 where cardID='1010 3576 1234 5678'

insert into transInfo(transDate,cardID,transType,transMoney)
values (default,'1010 3576 1212 1134','存入',5000)

update cardInfo set balance=balance+5000 where cardID='1010 3576 1212 1134'



/**------------常規(guī)業(yè)務(wù)摸擬--------------------**/

--修改密碼
update cardInfo set pass='123456' where cardID='1010 3576 1234 5678'
update cardInfo set pass='123123' where cardID='1010 3576 1212 1134' 

--掛失帳號
update cardInfo set IsReportLoss=1 where cardID='1010 3576 1212 1134'

--統(tǒng)計銀行的資金流通余額和盈利結(jié)算

declare @main_com money,@main_out money

select @main_com=sum(transMoney) from transInfo where transType='存入'
select @main_out=sum(transMoney) from transInfo where transType='支取'


print '銀行流通余額總計為:'+convert(varchar(20),@main_com-@main_out)+'RMB'
print '盈利結(jié)算為:'+convert(varchar(20),(@main_out*0.003)-(@main_com*0.008))+'RMB'

--查詢本周開戶的卡號,顯示該卡相關(guān)信息
select * from cardInfo 
	where datediff(wk,openDate,getDate())=0
--查詢本月交易金額最高的卡號

select distinct cardID from transInfo 
	where transMoney=(select max(transMoney) from transInfo)

--查詢掛失帳號的客戶信息
select customerName as 客戶姓名,telephone as 聯(lián)系電話 from userInfo
	where customerID in (select customerID from cardInfo where IsReportLoss=1)

--催款提醒業(yè)務(wù)
select customerName as 客戶姓名,telephone as 聯(lián)系電話,balance as 帳上余額
from userInfo inner join cardInfo
on (userInfo.customerID=cardInfo.customerID)
where balance<200

/**---------------創(chuàng)建視圖和索引-------------------**/

--給交易表的卡號cardID 創(chuàng)建索引
create index index_transInfo_cardID
on transInfo(cardID)

--按指定索引查詢 張三 (卡號為 1010 3576 1212 1134) 的交易記錄
select * from transInfo(index=index_transInfo_cardID) where cardID='1010 3576 1212 1134'

--創(chuàng)建視圖
create view view_userInfo
as
select customerID as 客戶編號,customerName as 客戶姓名,PID as 身份證號,telephone as 電話號碼,address as 居住地址 
from	userInfo
go

create view view_cardInfo
as
select cardID as 卡號,curType as 貨幣種類,savingType as 存款類型,openDate as 開戶日期,openMoney as 開戶金額,balance as 余額,pass as 密碼,IsReportLoss as 是否掛失,customerID as 客戶編號
from cardInfo
go

create view view_transInfo
as
select transDate as 交易日期,transType as 交易類型,cardID as 卡號,remark as 備注
from transInfo 
go

select * from view_userInfo
select * from view_cardInfo
select * from view_transInfo

/**--------------------------------創(chuàng)建觸發(fā)器-------------------------**/

create trigger trig_trans
on transInfo
for insert 
as
begin transaction

					--開始事務(wù)
	declare @myTransType char(5),@outMoney money,@myCardID varchar(25),@mybalance money
	select @myTransType=transType,@outMoney=transMoney,@myCardID=cardID from inserted
	select @mybalance=balance from cardInfo where cardID=@myCardID

	if(@myTransType='支取')
		begin
			
			if(@mybalance-@outMoney<1)
				begin
                                      
					print '交易失敗!余額不足!'
					print '卡號:'+@myCardID+'	'+'余額:'+convert(varchar(20),@mybalance)
					rollback transaction 	--回滾事務(wù)
				end
			
			else
				begin
                                  
					update cardInfo set balance=balance-@outMoney where cardID=@myCardID
					print '交易成功!交易金額:'+convert(varchar(20),@outMoney)
					print '卡號:'+@myCardID+'	'+'余額:'+convert(varchar(20),@mybalance-@outMoney)
					commit transaction 	--提交事務(wù)
				end
		end

	else if(@myTransType<>'存入' and @myTransType<>'支取')
		begin
		
			print '當(dāng)前系統(tǒng)故障!無法交易,請重試交易!'
			rollback transaction	--回滾事務(wù)
		end
		
	else
		begin
			update cardInfo set balance=balance+@outMoney where cardID=@myCardID
			print '交易成功!交易金額:'+convert(varchar(20),@outMoney)
			print '卡號:'+@myCardID+'	'+'余額:'+convert(varchar(20),@mybalance+@outMoney)
			commit transaction	--提交事務(wù)
		end
go


/**------------測試觸發(fā)器--------------**/
--張三卡號支取1000 
declare @id varchar(25)
select @id=cardID from cardInfo
	where customerID in (select customerID from userInfo where customerName='張三')
insert into transInfo(transDate,cardID,transType,transMoney)
values (default,@id,'支取',1000)

go

--李四卡號存放 200
declare @id varchar(25)
select @id=cardID from cardInfo
	where customerID in (select customerID from userInfo where customerName='李四')
insert into transInfo(transDate,cardID,transType,transMoney)
values (default,@id,'存入',200)
go

/**-----------創(chuàng)建存儲過程---------------**/

--取錢或存錢的存儲過程

create procedure proc_takeMoney
@id varchar(25),@pass varchar(6),@type varchar(5),@money money
as
begin
	if (@type='支取')
		begin
			if(@pass in (select pass from cardInfo where cardID=@id))
				begin
					insert into transInfo(transDate,cardID,transType,transMoney)
					values (default,@id,@type,@money)
				end
			else
				begin
					print '密碼不正確!交易失敗!'
				end
		end
	else
		begin
			insert into transInfo(transDate,cardID,transType,transMoney)
			values (default,@id,@type,@money)
		end
end
go

--張三卡號支取300
declare @id varchar(25)
select @id=cardID from cardInfo
	where customerID in (select customerID from userInfo where customerName='張三')
execute proc_takeMoney @id,123456,'支取',300
go
--李四卡號存放 500
declare @id varchar(25)
select @id=cardID from cardInfo
	where customerID in (select customerID from userInfo where customerName='李四')
execute proc_takeMoney @id,' ','存入',500

go
--產(chǎn)生隨機卡號的存儲過程
create procedure proc_randCardID
@randCardID varchar(25) output
as
begin
	declare @r numeric(15,8),@string varchar(10)
	set @r=rand((datepart(mm,getdate())*100000)+(datepart(ss,getdate())*1000)+(datepart(ms,getdate())))
	set @string=convert(varchar(10),@r)
	set @randCardID='1010 3576 '+substring(@string,3,4)+' '+substring(@string,7,4)
end
go

declare @mycardID varchar(25)
execute proc_randCardID @randCardID=@mycardID output
print @mycardID
go

--開戶的存儲過程
alter procedure proc_openAccount
@openName varchar(10),
@openPID varchar(18),
@openCall varchar(20),
@openAddress varchar(50)=' ',
@openType varchar(10),
@openMoneys money 
as
begin
	begin transaction	--開始           
	declare @id int,@sumerror int,@mycardID varchar(25)
	set @sumerror=0

	execute proc_randCardID @randCardID=@mycardID output

	insert into userInfo(customerName,PID,telephone,address)
	values (@openName,@openPID,@openCall,@openAddress)
	set @sumerror=@sumerror+@@error

	select @id=max(customerID) from userInfo
	while exists (select * from cardInfo where cardID=@mycardID)
	execute proc_randCardID @randCardID=@mycardID output
	
	insert into cardInfo(cardID,curType,savingType,openDate,openMoney,balance,pass,IsReportLoss,customerID)
	values (@mycardID,default,@openType,default,@openMoneys,@openMoneys,default,default,@id)
	set @sumerror=@sumerror+@@error
	if(@sumerror=0)
		begin
			print '尊敬的客戶,開戶成功!您的卡號為:'+@mycardID
			print '開戶日期:'+convert(varchar(10),getdate(),111)+'	'+'開戶金額:'+convert(varchar(20),@openMoneys)
			commit transaction
			
		end
	else
		begin
			print  '系統(tǒng)故障!請重試...'
			rollback transaction
		end

end
go


--開戶
execute proc_openAccount @openName='王五',@openPID='334456889012678',@openCall='2222-63598978',@openAddress='河南新鄉(xiāng)',@openType='活期',@openMoneys=1000


execute proc_openAccount @openName='趙二',@openPID='213445678912342222',@openCall='0760-44446666',@openAddress=' ',@openType='定期',@openMoneys=1

/**--------------------創(chuàng)建事務(wù)---------------------**/

alter procedure proc_transfer 
@card1 varchar(25),@card2 varchar(25),@outMoney	money
as
begin
	print '開始轉(zhuǎn)帳,請稍后...'
	declare @counterror int
	set @counterror=0
	begin transaction 		--開始
	insert into transInfo(transDate,cardID,transType,transMoney)
	values (default,@card1,'支取',@outMoney)
	set @counterror=@counterror+@@error
	insert into transInfo(transDate,cardID,transType,transMoney)
	values (default,@card2,'存入',@outMoney)
	set @counterror=@counterror+@@error
	if(@counterror=0)
		begin
			print '轉(zhuǎn)帳成功!'
			commit transaction
		end
	else
		begin
			print '轉(zhuǎn)帳失敗!'
			rollback transaction
		end
end
go


declare @id1 varchar(25),@id2 varchar(25)
select @id1=cardID from cardInfo
	where customerID in (select customerID from userInfo where customerName='張三')
select @id2=cardID from cardInfo
	where customerID in (select customerID from userInfo where customerName='李四')

execute proc_transfer @card1=@id2,@card2=@id1,@outMoney=2000
go
select * from view_cardInfo
select * from view_transInfo
go

/**------------------------創(chuàng)建登陸帳號和數(shù)據(jù)庫用戶---------------------**/

use bankDB
go

execute sp_addlogin 'sysAdmin','1234'	--添加 SQL 登陸帳號

execute sp_grantdbaccess 'sysAdmin','sysAdminDBUser'	--創(chuàng)建數(shù)據(jù)庫用戶(角色)

grant select,insert,update,delete on transInfo to sysAdminDBUser
grant select,insert,update,delete on userInfo  to sysAdminDBUser
grant select,insert,update,delete on cardInfo  to sysAdminDBUser

-----------------------------------------------------------------------------

select * from userInfo	--帳戶信息表
select * from cardInfo	--銀行卡信息表
select * from transInfo --交易信息表


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频免费一区| 日韩欧美成人一区| 国产欧美久久久精品影院| 日av在线不卡| 国产区在线观看成人精品| 欧美电视剧在线看免费| 美国三级日本三级久久99| 欧美一区二区精美| 久久不见久久见中文字幕免费| 91精品国产综合久久香蕉麻豆 | 免费精品视频在线| 日韩美女一区二区三区| 极品销魂美女一区二区三区| www国产精品av| 成人听书哪个软件好| 中文字幕一区在线| 欧美日韩电影在线播放| 国产综合色产在线精品| 中文字幕一区二区三区在线播放| a美女胸又www黄视频久久| 亚洲成av人影院| 国产欧美一区二区三区在线老狼 | 粉嫩av一区二区三区在线播放| 亚洲桃色在线一区| 在线观看91精品国产麻豆| 久久国产麻豆精品| 亚洲天堂2016| 国产亚洲一区二区三区在线观看| 色综合久久久久综合99| 国产一区二区三区久久悠悠色av| 亚洲精品视频在线看| 精品国产免费一区二区三区四区| 91亚洲永久精品| 国产老女人精品毛片久久| 亚洲一区av在线| 亚洲欧美偷拍另类a∨色屁股| 精品国产91乱码一区二区三区| 在线观看视频一区| 91在线精品一区二区| 国产福利一区二区| 国产综合色产在线精品| 韩国欧美国产一区| 日韩精品午夜视频| 日本不卡一区二区三区| 一区二区三区欧美亚洲| 亚洲在线免费播放| 国产美女精品人人做人人爽| 老司机一区二区| 精品一区二区三区视频在线观看 | 亚洲免费在线电影| 亚洲欧美国产毛片在线| 亚洲欧美日韩一区二区| 亚洲电影一级黄| 亚洲一区影音先锋| 日韩成人av影视| 偷窥国产亚洲免费视频| 国产精品久久久久久久久免费相片| 亚洲精选在线视频| 亚洲图片一区二区| 国产精品国产三级国产普通话蜜臀 | 日韩一区二区三区精品视频| 2014亚洲片线观看视频免费| 国产无遮挡一区二区三区毛片日本| 久久精品无码一区二区三区| 最新久久zyz资源站| 亚洲午夜久久久久久久久电影院| 奇米888四色在线精品| 成人av免费观看| 欧美人狂配大交3d怪物一区| 久久只精品国产| 亚洲福中文字幕伊人影院| 国产成人精品免费一区二区| 欧美主播一区二区三区美女| 久久综合久久99| 亚洲一区二区视频在线| 国产乱子轮精品视频| 色94色欧美sute亚洲13| 国产亚洲精品免费| 日本不卡免费在线视频| 色域天天综合网| 久久久久国产精品人| 亚洲午夜激情av| 99久久99久久精品免费观看| 日韩精品一区在线| 亚洲aⅴ怡春院| 欧美在线免费观看亚洲| 亚洲三级理论片| av爱爱亚洲一区| 国产精品嫩草影院av蜜臀| 免费高清不卡av| 欧美男人的天堂一二区| 亚洲国产精品综合小说图片区| 99久久久久久| 自拍偷拍亚洲激情| 99精品欧美一区二区三区小说| 久久无码av三级| 成人丝袜高跟foot| 国产精品成人一区二区三区夜夜夜 | 五月婷婷色综合| 欧美电视剧免费全集观看| 久久er99热精品一区二区| 精品久久免费看| 国产精品888| 夜夜夜精品看看| 欧美日本一区二区在线观看| 成人开心网精品视频| 国产人成亚洲第一网站在线播放 | 亚洲精品视频在线观看网站| 欧美色精品在线视频| 首页综合国产亚洲丝袜| 久久免费午夜影院| 91免费看片在线观看| 日韩电影在线观看网站| 欧美激情在线一区二区| 欧美亚洲国产一区二区三区va | 一区二区三区日韩欧美精品| 欧美日韩国产123区| 国产黄人亚洲片| 午夜欧美一区二区三区在线播放| 精品国产99国产精品| 国产精品中文字幕日韩精品| 亚洲最大色网站| 久久久久国产成人精品亚洲午夜| 99riav久久精品riav| 国产九色sp调教91| 午夜欧美视频在线观看| 中文字幕制服丝袜成人av| 欧美猛男超大videosgay| 成人黄色电影在线| 国内精品国产成人国产三级粉色| 亚洲欧美日韩一区| 欧美国产欧美综合| 国产日韩欧美不卡在线| 91精品国产综合久久小美女| 91丨国产丨九色丨pron| 国内精品免费**视频| 免费人成精品欧美精品| 亚洲超丰满肉感bbw| 亚洲在线免费播放| 亚洲一级不卡视频| 亚洲成人av中文| 午夜久久久久久电影| 丝袜美腿一区二区三区| 五月天视频一区| 蜜桃视频在线观看一区二区| 亚洲精品美腿丝袜| 欧美激情中文字幕一区二区| 色综合久久久久久久久久久| a级精品国产片在线观看| 国产91在线看| 大白屁股一区二区视频| 不卡的av中国片| 日本久久一区二区| 欧美精品自拍偷拍动漫精品| 欧美精品久久天天躁| 欧美不卡在线视频| 欧美国产在线观看| 亚洲专区一二三| 蓝色福利精品导航| 成人黄色软件下载| 欧美吞精做爰啪啪高潮| 精品国产一区二区三区四区四| 国产亚洲自拍一区| 亚洲成人精品影院| 9i在线看片成人免费| 色综合天天综合网天天狠天天| gogogo免费视频观看亚洲一| 欧美性生活影院| 欧美不卡一区二区三区| 综合在线观看色| 久久精品国产亚洲a| 99免费精品视频| 久久久久久电影| 婷婷丁香久久五月婷婷| 成人av集中营| 久久综合成人精品亚洲另类欧美 | 91麻豆免费观看| 久久这里只精品最新地址| 亚洲线精品一区二区三区八戒| 精品在线播放免费| 91精品国产色综合久久| 国产精品理论片| 午夜精品久久久久久久99樱桃| 盗摄精品av一区二区三区| 日韩欧美在线综合网| 国产一区999| 亚洲丝袜另类动漫二区| 91丨porny丨中文| 亚洲精品大片www| 在线电影国产精品| 奇米精品一区二区三区在线观看一| 欧美美女bb生活片| 另类调教123区 | 成人97人人超碰人人99| 国产精品久久久久久久久免费相片 | 国产欧美精品一区二区色综合朱莉| 狠狠色丁香婷婷综合| 久久精品一区二区三区不卡| av激情成人网| 亚洲成a人v欧美综合天堂|