if exists(select * from sysobjects where [name]='ATM')
drop database ATM
go
create database ATM
on
(
name='ATM_data',
filename='E:\SQL项目案例\ATM_data.mdf',
size=10,
filegrowth=15
)
log on(
name='ATM_log',
filename='E:\SQL项目案例\ATM_log.ldf',
size=10,
filegrowth=15
)
go
-------用户信息表
create table userInfo -----用户信息表
(
customerID int identity(1,1) not null, ------- 顾客编号
customerName varchar(20) not null, ------- 开户名
PID varchar(20) not null, ------- 身份证号
telephone varchar(15) not null, ------- 联系电话
address varchar(20) null ------- 居住地址
)
go
alter table userInfo add constraint pk_ID ------ 顾客编号设为主键
primary key(customerID)
alter table userinfo add constraint ck_PID -------身份证只能在18位或15位
check((pid>1 and pid<15)or(pid>1 and pid <18))
alter table userinfo add constraint ck_phone -------联系电话只能在11 位
check(telephone>1 and telephone<11)
alter table userinfo add constraint uq_pid
unique(pid) ------身份证设为唯一约束
go
-----------银行卡
create table cardInfo
(
cardID varchar not null, -------卡号
curtype char not null, ----- 货币种类
savingType varchar(20) not null, ------- 存款类型
openDate varchar(30) not null, -------开户日期
openMoney float not null, -------- 开户金额
balance float not null, --------- 余额
pass varchar(20) not null, ---------密码
IsReplortLoss char(2) not null, --------是否挂失
customerID char(20) not null -----------顾客编号
)
go
alter table cardinfo add constraint ck_cardid
check(cardid like '1010 3576 [0-9]')
alter table cardinfo add constraint pk_cardid
primary key(cardid)
alter table cardinfo add constraint df_curtype default('RMB') for curtype
alter table cardinfo add constraint df_opendate default(getdate()) for opendate
alter table cardinfo add constraint ck_openmoney check(openmoney<>1)
alter table cardinfo add constraint ck_balance check(balance!<1)
alter table cardinfo add constraint ck_pass check(pass>6)
alter table cardinfo add constraint df_pass default(6) for pass
go
-------------交易表
create table transinfo
(
transDate datetime null, ----- 交易日期
cardID varchar(20) not null, ------卡号
transType varchar(10) not null, -----交易类型
transMoney float not null, ----交易金额
remark varchar(50) null ------备注
)
go
alter table transinfo add constraint df_transdate default(getdate()) for transdate
alter table transinfo add constraint ck_transMoney check(transMoney>0)
--------插入信息到用户表中
insert into userinfo values('张三','123456789012345','010_67898978','北京海淀')
insert into userinfo values('李四','321245678912345678','0478-4444333',null)
----------插入信息到银行卡信息中
insert into cardinfo values('1010 3576 1234 1134','RMB','定期',2005-3-25,1,1,888888,0,2)
insert into cardinfo values('1010 3576 1234 5678','RMB','活期',2005-9-16,1000,1000,8888885,0,1)
----------插入信息到交易表中
if exists(select * from sysobjects where [name]='proc_transinfo')
drop proc proc_transinfo
go
-------创建存储器 并把数据存入到交易表中
create proc proc_transinfo
@money money,
@cardid varchar(19),
@type varchar(10)
as
print '取款为:'+convert(varchar(10),@money)
if(@type='取出')
begin
update cardinfo set balance=balance-@money where cardid=@cardid
insert transinfo(transtype,cardid,transmoney) values('取出',@cardid,@money)
end
else
begin
update cardinfo set balance=balance+@money where cardid=@cardid
insert transinfo(transtype,cardid,transmoney) values('存入',@cardid,@money)
end
go
exec proc_transinfo 900,'1010 3576 1234 5678','取出'
exec proc_transinfo 5000,'1010 3576 1234 1134','存入'
-------修改密码
create proc proc_cardinfo
@pass varchar(20),
@card varchar(20),
as
update cardinfo set pass=@pass where cardid=@card
go
exec proc_cardinfo '123456','1010 3576 1234 5678'
exec proc_cardinfo'123123','1010 3576 1234 1134'
go
--------- 挂失帐号
if exists(select * from sysobjects where [name]='proc_cardinfo')
drop proc proc_cardinfo
go
create proc proc_cardinfo
@card varchar(20),
@isreplort int
as
update cardinfo set isreplortloss=@isreplort where cardid=@card
go
exec proc_cardinfo '1010 3576 1234 1134',1
go
---------催款提醒业务
alter proc proc_in
@cardid varchar(20)='1010 3576 1234 5678'
as
declare @balance float
declare @balance1 float
select @balance=balance from cardinfo
select @balance1=balance from cardinfo
if (@balance<200)
begin
select [user].customerName as 客户姓名,[user].telephone as 联系电话,card.balance as 帐上余额
from userinfo as [user] inner join cardinfo as card on [user].customerid=card.customerid
where card.cardid=@cardid
end
select [user].customerName as 客户姓名,[user].telephone as 联系电话
from userinfo as [user] inner join cardinfo as card on [user].customerid=card.customerid
where card.balance>200
go
exec proc_in
go
-----本询挂失帐号的客户信息
create proc proc_guashi
@card varchar(21)
as
select customername as 客户姓名,telephone as 联系电话 from userinfo where customerid in
(select customerid from cardinfo where cardid=@card)
go
exec proc_guashi '1010 3576 1234 5678'
go
-------统计银行的资金通余额和盈利结算
declare @inmoney money ---总存入量
declare @inmoney1 money ----总支取量
declare @summoney money -----资金流通余额
declare @gain money -----盈利结算
select @inmoney=sum(transmoney) from transinfo where transtype='存入'
select @inmoney1=sum(transmoney) from transinfo where transtype='取出'
select @summoney=@inmoney-@inmoney1 ------资金流通余额=总存入量-总支取量
print '银行流通余额总计为: '+convert(varchar(20),@summoney)+' RMB'
select @gain=@inmoney1*0.008-@inmoney*0.003
print '盈利结算为: ' +convert(varchar(20),@gain)+' RMB'
go
-------查询本月交易金额最高的卡号
select distinct(cardid) from transinfo where transmoney=
(select max(transmoney) from transinfo )
------ 创建索引
if exists(select * from sysindexes where [name]='In_cardinfo_cardid')
drop index cardinfo.in_cardinfo_cardid ----删除银卡中的索引
go
create nonclustered index in_cardinfo_cardid
on cardinfo(cardid)
with fillfactor=70
go
-------按照索引'in_cardinfo_cardid'进行查询
select * from cardinfo (index=in_cardinfo_cardid) where cardid='1010 3576 1234 1134'
--------创建视图
if exists(select * from sysobjects where name='view_userinfo_cardinfo_transinfo')
drop view view_userinfo_cardinfo_transinfo
go
select * from transinfo
alter view view_userinfo_cardinfo_transinfo
as
select userinfo.customerid as 客户编号, 客户姓名=customerName,身份证号=pid,电话号码=telephone,家庭住址=address from userinfo
left join cardinfo on userinfo.customerid=cardinfo.customerid left join transinfo on transinfo.cardid=cardinfo.cardid
-- select cardinfo.cardid as 卡号,curtype as 货币种类,savingtype as 存款类型,opendate as 开户日期,balance as 余额,pass as 密码,isreplortloss as 是否丢失,cardinfo.customerid as 客户编号 from cardinfo
-- left join userinfo on userinfo.customerid=cardinfo.customerid
--select transdate as 交易日期,transinfo.cardid as 卡号,transtype as 交易类型,transmoney as 交易金额,remark as 备注 from transinfo
--left join cardinfo on transinfo.cardid=cardinfo.cardid
go
alter view view_cardinfo
as
select cardinfo.cardid as 卡号,curtype as 货币种类,savingtype as 存款类型,opendate as 开户日期,balance as 余额,pass as 密码,isreplortloss as 是否丢失,cardinfo.customerid as 客户编号 from cardinfo
left join userinfo on userinfo.customerid=cardinfo.customerid
go
alter view view_transinfo
as
select transdate as 交易日期,transinfo.cardid as 卡号,transtype as 交易类型,transmoney as 交易金额,remark as 备注 from transinfo
left
網吧管理系統
需积分: 0 58 浏览量
更新于2008-05-29
收藏 395KB RAR 举报
【網吧管理系統】是一种专为网吧环境设计的软件系统,用于有效管理和控制顾客的上机和下机过程。在网吧运营中,这样的系统至关重要,因为它不仅能够追踪客户的使用时间,还能进行计费、会员管理、设备监控等多种功能。本文将深入探讨与【網吧管理系統】相关的SQL知识,以及在实际操作中可能涉及的数据库文件。
我们要了解SQL(Structured Query Language),这是一种用于管理和处理关系数据库的标准编程语言。在【網吧管理系統】中,SQL主要用于创建、查询、更新和管理数据库中的数据。例如,可以使用SQL语句来记录顾客的登录时间、下机时间、使用的机器编号、消费金额等信息。
在提供的压缩包文件中,我们看到了两个数据库文件和一个SQL脚本文件:
1. ATM_log.ldf:这是一个日志文件,通常与Microsoft SQL Server数据库相关。它存储了所有对数据库的事务日志,包括修改、删除和添加数据的操作。在网吧管理系统中,这些日志对于追踪用户行为、恢复数据和保持数据一致性至关重要。
2. ATM_data.mdf:这是主数据库文件,它包含了实际的数据表和对象,如用户信息、机器状态、计费记录等。它是数据库的核心部分,所有业务逻辑都围绕这个文件进行。
3. SQL项目实践1.sql:这很可能是包含了一系列SQL命令的脚本文件,用于创建、修改或查询数据库。在网吧管理系统中,这样的脚本可能用于初始化数据库结构,比如创建用户表、机器表、会话表等,并填充一些初始数据。
在实际的网吧管理中,使用SQL执行以下操作是常见的:
- **用户管理**:创建用户表,包括用户名、密码、联系方式等信息,通过SQL查询验证用户身份。
- **会话跟踪**:记录用户登录和下机时间,计算在线时长,以便计费。
- **计费计算**:根据在线时长、特定时间段的费率等信息,使用SQL计算费用。
- **设备管理**:维护一个机器状态表,记录每台电脑的当前状态(如是否空闲、被哪个用户占用)。
- **报表生成**:使用SQL聚合函数(如SUM、AVG)生成统计报告,如每日收入、最活跃用户等。
- **安全与备份**:定期备份数据库(包括.log和.mdf文件),确保数据安全,以防意外丢失。
【網吧管理系統】涉及到的核心技术是SQL,通过合理利用SQL,可以高效地管理和维护网吧的运营数据,提高服务质量和管理水平。数据库文件如.log和.mdf是存储和保护这些数据的关键,而SQL脚本则提供了操作和管理这些数据的工具。对于网吧管理员和系统开发者来说,深入理解和熟练运用SQL是必不可少的技能。
xyz1989816
- 粉丝: 0
- 资源: 1
最新资源
- 数据结构-队列实现银行排队
- (机器学习)kaggle_tabular_Jan_2022-python源码.zip
- (机器学习)kaggle_tabular_Feb_2022-python源码.zip
- 单片机电子密码锁设计,个人学习整理,仅供参考
- 【毕业设计】Linux C C++项目虚拟文件服务器功能匹配百度网盘源码+详细项目说明.zip
- 【毕业设计】MATLAB数字验证码去除斑点带GUI界面源码.zip
- 【毕业设计】MATLAB数字信号仿真系统类似一个教学仿真软件源码.zip
- 【毕业设计】MATLAB图像加密解密方法arnold和混沌显示加密前后图像和灰度直方图带GUI源码.zip
- 【毕业设计】matlab眼部检测的疲劳驾驶系统源码.zip
- 北京PM2.5数据分析【期末大作业】【代码+文档】
- 【毕业设计】Matlab颜色特征和纹理特征的植物叶片虫害侵蚀系统带GUI界面源码.zip
- 【毕业设计】matlab语言进行眼部判别的疲劳检测系统带有人机交互界面源码.zip
- 【毕业设计】MATLAB语音数字识别识别0-9音频识别源码.zip
- 【毕业设计】MATLAB异常行为检测检测行走摔倒打架斗殴等行为带GUI源码.zip
- 【毕业设计】MATLAB运动车辆跟踪检测识别源码.zip
- 【毕业设计】matlab制作的一个人民币识别系统识别金额源码.zip