
/*******************第一阶段:创建如下数据库及表*******************/
数据库名:NetBarDB
一、计算机信息表(PCInfo)
| 字段名称 | 数据类型 | 说明 |
| PCId | Int | 计算机编号,主键,自动增长 |
| PCUse | Int | 计算机是否使用,0表示未使用,1表示正在使用。只能插入0或1,默认值0。非空 |
| CardNote | Varchar(30) | 计算机的描述,默认“这台机器不错” |
| 字段名称 | 数据类型 | 说明 |
| cardId | int | 会员卡编号,主键,自动增长 |
| cardNumber | varchar(20) | 会员卡号,系统中不能出现重复的会员号。非空 |
| cardPassword | varchar(20) | 会员密码,密码长度>=6位。非空 |
| cardBalance | int | 卡上的余额,在办卡时,需充值50元。非空 |
| transactTime | datetime | 办卡的时间,默认为当前时间。非空 |
| 字段名称 | 数据类型 | 说明 |
| recordId | int | 上机记录编号,主键,自动增长 |
| cardId | int | 会员卡编号,外键,引用cardInfo表的cardId。非空 |
| PCId | int | 计算机编号,外键,引用PCInfo表的PCId。非空 |
| beginTime | datetime | 开始(上机)时间,默认为当前时间 |
| endTime | datetime | 结束(下机)时间,上机时间应该小于下机时间 |
| free | int | 上机费用,费用>=0 |
alter table recordinfo
add constraint ck_recordinfo_endtime check(endtime>begintime)
go*/
/*****************************第二阶段*****************************/
--1、向计算机信息表插入数据
| 机器状态 | 机器描述 |
| 0 | '左边第台' |
| 0 | '左边第台' |
| 0 | '左边第台' |
| 0 | '左边第台' |
| 0 | '这台机器不错' |
| 会员号 | 密码 | 余额 | 开卡时间 |
| '023-001' | '123456' | 50 | getdate() |
| '023-002' | '123456' | 50 | getdate() |
| '023-003' | '123456' | 50 | getdate() |
| '023-004' | '123456' | 50 | getdate() |
--4、为4号会员冲值20元,并查询余额
/*****************第三阶段:实现上机、下机、换机功能************************/
---------------1、实现4号会员在号计算机上机:
--(1)、验证会员号和密码是否正确。(根据会员号和密码查询—)
Select
--(2)、查询4号会员的余额是否大于0
--(3)、查询4号会员卡是否在上机(查询上机记录表中卡号等于4且下机时间为空的记录)
--4、查询1号机器是否为空闲。(查询计算机状态)
--5、修改1号机器状态为空闲。
--6、插入上机记录,向record表中插上以4号会员上1号机的记录,下机时间为空,free为0
/***************2、实现其它会员在计算机上机***************/
--1、实际2号会员在2号机器上机 [过程和4号卡在号机实现一样]
--2、实现3号会员在3号机器上机 [过程和4号卡在号机实现一样]
/***************3、将4号会员从1号计算机换到4号计算机***************/
--1、判断4号计算机的状态
--2、修改1号计算机状态(将1号计算机改为空闲)
--3、修改4号计算机状态(将4号计算机改为使用)
--4、修改计算机编号为4且下机时间为空的上机记录为计算机编号为1
/***************4、4号计算机下机***************/
--1、得到4号机器的上机记录,查询recordinfo表
--2、修改机器状态(将4号机器的状态修改为空闲)
--3、修改下机时间(将4号机器上机记录的下机时间修改为系统当前时间)
--4、计算机上机费用,上机费用=上机时间*2 (操作的记录为:修改机器号为4号,卡号1为的记录)
--5、修改记录表的上机费用
--6、扣除上机会员卡的余额 (在1号会员卡的余额中减去上机的费用)
/*********************第四阶段:数据的统计查询**************************/
--1、记录统计 (统计正在上机的记录,下机记录,所有记录)
-- 提示:正在上机的记录为:endtime为空的记录
-- 提示:下机记录为:endtime不为空的记录
--2、营业收入 (总收入[求free的和],单次上机金额最大)
--3、会员统计 (会员数量,余额总数,欠费会员)
--4、计算机 (空闲机器信息)
--5、统计所有上机记录并给每列取别名 (要求按记录编号降序排列)
/************第五阶段:分离数据训,保存脚本为netbar.sql********************/
