航空售票系统--数据库代码部分

航空售票系统的界面上传到我的资源中了,界面是用C#做的,不怎么美观,重点在于数据库。

在航空售票系统中我觉得最重要的两点就是视图和存储过程的创建。

表的创建一般学了数据库的都会

视图是根据具体要求来的,这里就不细说。

重点讲下退票和购票的存储过程,因为它们涉及到购票表,退票表,机票表之间的关系。

购买一张机票,机票表中总数-1;

退订一张机票,机票表中总数+1;

代码如下:

--退订机票存储过程
if exists (select *from sysobjects where name = 'CountTICKET')
	drop proc CountTICKET
go
create proc CountTICKET
@a varchar(50)
as
	declare @err int =0
	declare @updateticket_numble int
	select @updateticket_numble=SEAT_NUMBLE from TICKET where TICKET_ID=@a
	update  TICKET set SEAT_NUMBLE =@updateticket_numble+1 where TICKET_ID=@a
	set @err = @err + @@error 
	return @err
go



--购买机票存储过程
if exists (select *from sysobjects where name = 'CountsubTICKET')
	drop proc CountsubTICKET
go
create proc CountsubTICKET
@a varchar(50)
as
	declare @err int =0
	declare @updateticket_numble int
	select @updateticket_numble=SEAT_NUMBLE from TICKET where TICKET_ID=@a
	update  TICKET set SEAT_NUMBLE =@updateticket_numble-1 where TICKET_ID=@a
	set @err = @err + @@error 
	return @err
go
这里@err是返回给C#代码做判断的。


整个数据库代码如下:

use 航空售票系统
if	exists(select * from sysobjects where name = 'FIGHT')
	drop table FIGHT
go
CREATE TABLE FIGHT--航班表 
(  
FIGHT_NUMBER VARCHAR(50) NOT NULL PRIMARY KEY,--航班号 
FIGHT_DepartureCity VARCHAR(50) NOT NULL,--出发城市 
FIGHT_DestinationCity VARCHAR(50) NOT NULL,--抵达城市 
FIGHT_DepartureTime VARCHAR(50) NOT NULL,--起飞时间 
FIGHT_ArrialTime VARCHAR(50) NOT NULL,--抵达时间 
CAMPANY_NUMBER VARCHAR(50) NOT NULL,--公司编号 
SEAT_COUNT INT NOT NULL,--座位总数 
CONSTRAINT FK_CAMPANY_NUMBER2 FOREIGN 
KEY(CAMPANY_NUMBER)references CAMPANY(CAMPANY_NUMBER) 
);

use 航空售票系统
if	exists(select * from sysobjects where name = 'CAMPANY')
	drop table CAMPANY
go
CREATE TABLE CAMPANY--航空公司表 
(  
CAMPANY_NUMBER VARCHAR(50) NOT NULL, --公司编号 
COMPANY_NAME VARCHAR(50) NOT NULL,--公司名 
COMPANY_TELEPHONE  VARCHAR(50) NOT NULL,--电话 
COMPANY_ADDRESS VARCHAR(50) NOT NULL,--地址  
CONSTRAINT FK_CAMPANY_NUMBER PRIMARY KEY(CAMPANY_NUMBER)
); 
ALTER TABLE CAMPANY ADD  CONSTRAINT CK_CAMPANY_LAN CHECK(LEN(COMPANY_TELEPHONE)=11)



use 航空售票系统
if	exists(select * from sysobjects where name = 'TICKET')
	drop table TICKET
go 
CREATE TABLE TICKET--机票表
(
	TICKET_ID VARCHAR(50) NOT NULL,--机票编号
	FIGHT_NUMBLE VARCHAR(50) NOT NULL,--航班编号
	TICKET_TYPE VARCHAR(50) NOT NULL,--机票类型
	SEAT_NUMBLE INT NOT NULL,--机票数量
	TICKET_PRICE INT NOT NULL,--机票价格
	销售状态 VARCHAR(50) NOT NULL,--状态
	CAMPANY_NUMBER  VARCHAR(50) NOT NULL,--公司编号
	CONSTRAINT PK_机票 PRIMARY KEY NONCLUSTERED (TICKET_ID),
	CONSTRAINT FK_TICKET_CAMPANY_NUMBER  FOREIGN KEY(CAMPANY_NUMBER) references CAMPANY(CAMPANY_NUMBER)
);


use 航空售票系统
if	exists(select * from sysobjects where name = 'PASSAGER')
	drop table PASSAGER
go 
CREATE TABLE PASSAGER--乘客信息表
(
	PASSAGER_ID VARCHAR(50) 
	CONSTRAINT FK_PASSAGER_ID PRIMARY KEY(PASSAGER_ID ),--旅客身份证
	PASSAGER_NAME VARCHAR(50) NOT NULL,--旅客姓名
	PASSAGER_SEX VARCHAR(4) NOT NULL,--旅客性别
	PASSAGER_TELEPHONE VARCHAR(50) NOT NULL,--旅客电话
	
);


use 航空售票系统
if	exists(select * from sysobjects where name = 'BUY_TICKETS')
	drop table BUY_TICKETS
go
CREATE TABLE BUY_TICKETS--买票表
(  
TICKET_COUNT VARCHAR(50) NOT NULL ,--数量 
BUY_TICKETS_TIME DATE NOT NULL,--购买时间 
PASSAGER_ID VARCHAR(50) NOT NULL,--旅客身份证号 
TICKET_ID VARCHAR(50) NOT NULL,--机票编号  
CONSTRAINT PK_旅客机票 PRIMARY KEY NONCLUSTERED (PASSAGER_ID,TICKET_ID), 
CONSTRAINT FK_BUY_PASSAGER_ID FOREIGN KEY(PASSAGER_ID) references PASSAGER(PASSAGER_ID),  
CONSTRAINT FK_BUY_TICKET_ID FOREIGN KEY(TICKET_ID) references TICKET(TICKET_ID));  
ALTER TABLE BUY_TICKETS ADD  CONSTRAINT CK_BUY_TICKETS_LEN CHECK(LEN(PASSAGER_ID)=18) 
USE 航空售票系统
 
 
use 航空售票系统
if	exists(select * from sysobjects where name = 'REFUND')
	drop table REFUND
go 
CREATE TABLE REFUND--退票表
(  
REFUND_TIME VARCHAR(50),--退票时间 
PASSAGER_ID VARCHAR(50),--旅客身份证号 
TICKET_ID VARCHAR(50) NOT NULL,--机票编号  
CONSTRAINT PK_退旅客机票 PRIMARY KEY(PASSAGER_ID,TICKET_ID), 
CONSTRAINT FK_REFUND_PASSAGER_ID FOREIGN KEY(PASSAGER_ID) references PASSAGER(PASSAGER_ID),  
CONSTRAINT FK_REFUND_TICKET_ID FOREIGN KEY(TICKET_ID) references TICKET(TICKET_ID), );  
ALTER TABLE REFUND ADD  CONSTRAINT CK_REFND_LEN CHECK(LEN(PASSAGER_ID)=18)  
  USE 航空售票系统
 
 
use 航空售票系统
if	exists(select * from sysobjects where name = 'ACCOUNTS1')
	drop table ACCOUNTS1
go 
CREATE TABLE ACCOUNTS1--游客账号
(
	ACCOUNT1_ID VARCHAR(50) --账号
	CONSTRAINT FK_ACCOUNT1_ID PRIMARY KEY(ACCOUNT1_ID ),
	PASSWORD1 VARCHAR(50) NOT NULL,--密码
)
  
use 航空售票系统
if	exists(select * from sysobjects where name = 'ACCOUNTS')
	drop table ACCOUNTS
go 
CREATE TABLE ACCOUNTS--工作人员账号
(
	ACCOUNT_ID VARCHAR(50) --账号
	CONSTRAINT FK_ACCOUNT_ID PRIMARY KEY(ACCOUNT_ID ),
	PASSWORD VARCHAR(50) NOT NULL--密码
)

--创建视图
--为显示长沙航空的所有机票创建一个名CX_TICKET的视图
use 航空售票系统
go
create view CX_TICKET
     as
     select *
     from TICKET
     where CAMPANY_NUMBER=(select CAMPANY_NUMBER
			from CAMPANY
			where COMPANY_NAME ='长沙航空'
			)
go
select * from CX_TICKET

--2.为查询航班座位数大于10的航班创建一个名为zw_count视图
use 航空售票系统
go
create view zw_count
     as
     select *
     from FIGHT
     where SEAT_COUNT>10
go
select * from zw_count
drop view zw_count

--在视图CX_TICKET中插入
use 航空售票系统
go
insert into CX_TICKET
Values('T0003','F0003','经济舱','12','560','在售','G0001')

--删除视图CX_TICKET
use 航空售票系统
go
drop view CX_TICKET




--创建航空公司表的存储过程
if exists(select * from sysobjects where name='CAMPANY1')
drop proc CAMPANY1
use 航空售票系统
go
create proc CAMPANY1
@a varchar(50),
@b varchar(50),
@c varchar(50),
@d varchar(50)
as 
insert into CAMPANY values(@a,@b,@c,@d)
go

--使用存储过程
exec CAMPANY1 'G0001','长沙航空','15200000000','长沙'
exec CAMPANY1 'G0002','北京航空','15200000001','北京'
exec CAMPANY1 'G0003','天津航空','15200000003','天津'
exec CAMPANY1 'G0004','湖北航空','15200000004','武汉'
go

--更新存储过程
update CAMPANY set CAMPANY_NUMBER='G0003' where CAMPANY_NUMBER='G0002'
 
--删除存储过程
drop proc CAMPANY1
go



--创建买票表的存储过程(不需要)



--创建航班表的存储过程
if exists(select * from sysobjects where name='FIGHT1')
drop proc FIGHT1
use 航空售票系统
go
create proc FIGHT1
@a varchar(50),
@b varchar(50),
@c varchar(50),
@d varchar(50),
@e varchar(50),
@f varchar(50),
@g int
as 
insert into FIGHT values(@a,@b,@c,@d,@e,@f,@g)
go


--使用存储过程
exec FIGHT1 'F0001','长沙','北京','2016-12-12 09:00','2016-12-12 11:00','G0001','20'
exec FIGHT1 'F0002','北京','长沙','2016-12-12 09:00','2016-12-12 11:00','G0002','22'
exec FIGHT1 'F0003','长沙','天津','2016-12-14 07:00','2016-12-14 09:00','G0003','25'
exec FIGHT1 'F0004','长沙','武汉','2016-12-12 19:00','2016-12-12 20:00','G0004','28'
exec FIGHT1 'F0005','长沙','北京','2016-12-13 09:00','2016-12-13 11:00','G0001','21'
go

--更新存储过程
--update CAMPANY set='' where =''
 
--删除存储过程
drop proc FIGHT1
go


--创建乘客表的存储过程
if exists(select * from sysobjects where name='PASSAGER1')
drop proc PASSAGER1
use 航空售票系统
go
create proc PASSAGER1
@a varchar(50),
@b varchar(50),
@c varchar(4),
@d varchar(50)
as 
insert into PASSAGER values(@a,@b,@c,@d)
go

--使用存储过程
exec PASSAGER1 '123456789123456789','小白','男','13700000000'
exec PASSAGER1 '123456789123456788','小黑','男','13700000001'
exec PASSAGER1 '123456789123456787','小红','女','13700000002'
go

--更新存储过程
--update CAMPANY set='' where =''
 
--删除存储过程
drop proc PASSAGER1
go




--创建退票表的存储过程(不需要)


--创建机票表的存储过程
if exists(select * from sysobjects where name='TICKET1')
drop proc TICKET1
use 航空售票系统
go
create proc TICKET1
@a varchar(50),
@b varchar(50),
@c varchar(50),
@d	int,
@e	int,
@f varchar(50),
@g varchar(50)
as 
insert into TICKET values(@a,@b,@c,@d,@e,@f,@g)
go

--使用存储过程
exec TICKET1 'T0001','F0001','二等舱','20','560','在售','G0001'
exec TICKET1 'T0002','F0002','头等舱','10','1560','在售','G0002'
exec TICKET1 'T0003','F0003','二等舱','12','560','在售','G0003'
exec TICKET1 'T0004','F0004','二等舱','20','560','在售','G0004'
go

--更新存储过程
--update CAMPANY set='' where =''
 
--删除存储过程
drop proc TICKET1
go

if exists (select *from sysobjects where name = 'DeleteinTICKET')
	drop proc DeleteinTICKET
go
create proc DeleteinTICKET
@a varchar(50)
as
	declare @err int =0
	delete from BUY_TICKETS where TICKET_ID=@a
	delete from REFUND where TICKET_ID=@a
	delete from  TICKET where TICKET_ID = @a
	set @err = @err + @@error 
	return @err
go


--退订机票存储过程
if exists (select *from sysobjects where name = 'CountTICKET')
	drop proc CountTICKET
go
create proc CountTICKET
@a varchar(50)
as
	declare @err int =0
	declare @updateticket_numble int
	select @updateticket_numble=SEAT_NUMBLE from TICKET where TICKET_ID=@a
	update  TICKET set SEAT_NUMBLE =@updateticket_numble+1 where TICKET_ID=@a
	set @err = @err + @@error 
	return @err
go



--购买机票存储过程
if exists (select *from sysobjects where name = 'CountsubTICKET')
	drop proc CountsubTICKET
go
create proc CountsubTICKET
@a varchar(50)
as
	declare @err int =0
	declare @updateticket_numble int
	select @updateticket_numble=SEAT_NUMBLE from TICKET where TICKET_ID=@a
	update  TICKET set SEAT_NUMBLE =@updateticket_numble-1 where TICKET_ID=@a
	set @err = @err + @@error 
	return @err
go

  • 12
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
汽车售票系统是一个基于GUI界面和数据库技术的应用程序,旨在方便用户购买汽车票并管理相关信息。 该系统首先通过GUI界面展示给用户一个直观易用的界面,用户可以通过点击菜单、按钮或输入文本来与系统交互。用户可以选择出发地、目的地、日期等信息来查询汽车票的可用性,并可以查看相关车次、票价、余票数量等详细信息。用户还可以选择座位类型(如硬座、软座、硬卧、软卧等)以及预定所需票数等。通过简单的操作,用户可以完成购票过程。 该系统采用数据库技术来存储和管理车次信息、车票信息以及用户的个人信息等。数据库中会包含车次表、车票表和用户表等不同的数据表,每个表都会有相应的字段用于存储数据,如车次编号、出发地、目的地、日期、座位类型、票价、车票状态等。这些数据将通过数据库的增、删、改、查等操作进行管理,并与界面进行交互。 系统的核心功能包括票务查询、购票和退票。通过查询功能,用户可以方便地查找到符合条件的车次,并了解相关的票价和座位信息。购票功能允许用户选择合适的车次和座位类型进行购票,并自动生成相应的车票信息。退票功能允许用户取消已购买的车票,并更新数据库中的票务信息。 此外,系统还可以包括一些辅助功能,如用户登录与注册、票务统计与报表生成等。用户登录与注册功能可以确保用户购票信息的安全性,同时方便用户查询和管理已购票信息。票务统计与报表生成功能可以帮助管理员分析车票销售情况、座位利用率等,从而进行合理的资源调配和决策。 综上所述,汽车售票系统采用GUI界面和数据库技术,提供了方便快捷的购票和信息管理功能,为用户和管理员提供了高效的票务服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值