大型数据库课程设计 火车站票务管理系统(4)

2018-12-22 22:01

select @员工编号='员工编号' from inserted

update 员工售票情况set 售出票数=售出票数+1 where 员工编号=@员工编号 update 员工奖励表set 奖励等级='一等奖励' where 员工编号=@员工编号 end go

--触发检验:

insert into 售票表

values('111002','20106','S223','2013/11/19 12:00:00')

--3、退票时自动修改相应车次的剩余座位数 create trigger tp_ticket on 退票表 after insert as begin

declare @p_num char(5),@seat_sum int,@t_num char(5) select @p_num=车票编号,@t_num=车次号from inserted select @seat_sum=剩余票数from 余票表 update 余票表

set 剩余票数=剩余票数+1 where 车次号=@t_num end

--触发检验:

insert into 退票表

values('20136','1234','2013-11-13 12:00')

--4、退票时,根据退票时间判断是否允许退票 create trigger t_p on 退票表 instead of insert as begin

declare @p_num char(5),@t_time datetime,@f_num datetime select @p_num=车票编号,@t_time=退票时间from inserted

select @f_num=发车时间from 车票表where 车票编号=@p_num if @f_num-@t_time>=2 print'退票成功' else

print'不能退票' end

--触发检验:

insert into 退票表 values('20116','S213','2013-11-19 12:00')

14

第6章 数据库视图设计

--1、创建业务员表视图

create view 业务员表视图with encryption as

select 业务员.员工编号,姓名,工作站点,奖励等级 from 业务员,员工奖励表

where 业务员.员工编号=员工奖励表.员工编号 with check option

--2、创建车次管理视图 create view 车次管理视图 as

select 车次表.车次号,座位数,发车时间 ,车种,始发站,终点站 from 车次表,车站表

where 车次表.车次号=车站表.车次号

-- 、创建车票表视图 create view 车票表视图 as

select 车票编号,车次号,发车时间,座位编号,价格,座位种类 from 车票表

--4、创建车票销售视图

create view 创建车票销售视图 as

select 车次管理视图.车次号, 车次管理视图.发车时间 ,车种,始发站,终点站,价格,座位种类,剩余票数

from 车次管理视图, 车票表,余票表

where 余票表.车次号=车票表.车次号and 车次管理视图.车次号=余票表.车次号

--5、创建车票销售视图 create view 车票销售视图 as

select 员工编号,售票表.车票编号,价格,售票日期 from 车票表,售票表

where 售票表.车票编号=车票表.车票编号

-- 6、创建售票表视图 create view 售票表视图 as

select 员工编号,车票编号,车次号,售票日期

15

from 售票表

-- 7、创建退票表视图 create view 退票表视图 as

select 车票编号,车次号,退票时间 from 退票表

--8、创建余票表视图 create view 余票表视图 as

select 车次号,剩余票数,发车时间 from 余票表

--9、创建余票情况视图1 create view 余票情况视图1 as

select 余票表.车次号,发车时间 from 余票表,售票表

where 余票表.车次号=售票表.车次号

--10、创建余票情况视图2 create view 余票情况视图2 as

select 售票表.车次号,发车时间 from 余票表,售票表

where 余票表.车次号=售票表.车次号

第7章 数据库存储过程设计

--1、指定始发站和终点站查询车次号、车种、价格、座位种类、剩余票数等信息

create procedure btend @始发站char(20),@终点站char(20) as begin

set nocount on select *

from 车票销售视图

where 始发站=@始发站and 终点站=@终点站 end

--执行存储过程

exec btend '郑州','北京'

16

--2、指定车次查询始发站、终点站、车种、价格、座位种类、剩余票数等信息 create procedure 按车次查询@车次号char(5) as begin

set nocount on select *

from 车票销售视图 where 车次号=@车次号 End

exec 按车次查询 'T146'

--3、指定车次指定发车时间的车票销售情况

create procedure p_selld @t_num_in char(5),@d_time_in datetime,@sum_ticket char(6) output as

select 车次号,count(*) as '@sum_ticket' from 余票情况视图

where 余票情况视图.车次号=@t_num_in and 发车时间=@d_time_in group by 车次号 go

--执行存储过程

exec p_selld 'G574', '2013/11/19 15:53:00','count(*)'

17

--4、指定日期各业务员车票的销售收入 create procedure rp_selled @y_num_in char(6) datetime,@money char(6) output as

select 员工编号,sum(价格) as '@money' from 车票销售视图

where 员工编号=@y_num_in and 售票日期=@d_time_in group by 员工编号 go

--执行存储过程

exec rp_selled '111002','2013/2/10 0:00:00','sum(价格)'

output,@d_time_in

--5、指定员工编号查询售出票数

create procedure 编号查询@员工编号char(6) output,@售出票数char(6) output as

select 员工编号,count(车票编号) as '@售出票数' from 售票表

where 员工编号=@员工编号 group by 员工编号 go

exec 编号查询'111002','count(车票编号)'

--6、改变指定员工的工作站点

create procedure 工作站点变更@员工编号char(6),@工作站点char(20) as

update 员工奖励表

set 工作站点=@工作站点 where 员工编号=@员工编号 go

exec 工作站点变更 '111002','北京'

--7、根据身份证号码查询乘客的车票信息 create procedure s_tri1 @id char(18) as

select 身份证号,姓名,乘客表.车票编号,车次管理视图.车次号,车种,始发站,终点站,车票表.发车时间,座位编号,价格,座位种类 from 乘客表,车次管理视图,车票表

18


大型数据库课程设计 火车站票务管理系统(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:火山中学2017年体育工作评估自评报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: