SQL数据库课程设计火车票.docx
- 文档编号:9608804
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:10
- 大小:56.38KB
SQL数据库课程设计火车票.docx
《SQL数据库课程设计火车票.docx》由会员分享,可在线阅读,更多相关《SQL数据库课程设计火车票.docx(10页珍藏版)》请在冰豆网上搜索。
SQL数据库课程设计火车票
SQL上机实验项目
设计列车信息查询数据库
学号:
24110121
姓名:
王若龙
1、实验项目名称:
数据模型的建立过程与方法
2、实验项目编号:
ab0822420305
3、实验性质:
必做
4、实验类型:
设计
5、实验目的:
熟练掌握数据模型的设计、建立的过程与方法。
6、实验内容:
设计一个数据库,实现列车车次信息和车站信息的基本管理,为列车运行时刻信息的录入、修改、查询与统计等功能提供数据库支撑。
要求:
(1)设计该数据库E-R图
(2)将E-R模型转换为关系模型,并规范化
(3)用SQL语句定义并建立数据库表结构
(4)提供以下SQL语句,并加以说明。
查询某车站火车到站出站信息。
查询某列火车沿途经过站点信息
查询从某站点上车,到达某站点,共有哪些列车可供乘坐。
统计某段时间经过某站点的列车共有多少。
(1)设计E-R图
(2)将E-R模型转换为关系模型,并规范化
车站信息(车站号,车站名)
列车信息(车次,始发站,终点站,出发时间,到达时间)
乘务人员(车次,姓名,职务)
经由信息(车次,车站名,到站时间,出站时间)
(3)用SQL语句定义并建立数据库表结构
车站信息表(station),采用命令行创建方式。
字段名
代码
类型
约束
车站号
sno
char(5)
主键
车站名
sname
char(20)
列车信息表(train),采用命令行创建方式。
字段名
代码
类型
约束
车次
tno
char(5)
主键
始发站
sf
char(20)
Notnull
终点站
zd
char(20)
Notnull
出发时间
cf
time
到达时间
dd
time
乘务人员表(worker),采用命令行创建方式。
字段名
代码
类型
约束
车次
tno
char(5)
与列车信息表里的车次外键关联
姓名
name
char(10)
主键
职务
zhiwu
char(10)
经由表(pass),采用命令行创建方式。
字段名
代码
类型
约束
车次
tno
char(5)
与列车信息表里的车次外键关联
车站名
sno
char(20)
与车站信息表里的车站名外键关联
到站时间
dz
time
出站时间
cz
time
停留时间
tl
char(5)
相关建表代码实现如下:
createdatabasetest
usetest
createtabletrain--建立列车信息表
(
tnochar(5)primarykey,
sfchar(20)notnull,
zdchar(20)notnull,
cftime(0)notnull,
ddtime(0)notnull,
);
createtablestation--建立车站信息表
(
snochar(5)primarykey,
snamechar(20)
);
createtableworker--建立职工信息表
(
tnochar(5)foreignkey(tno)referencestrain(tno),
namechar(20)primarykey,
zhiwuchar(10)notnull,
);
createtablepass--建立经由信息表
(
tnochar(5)foreignkey(tno)referencestrain(tno),
snochar(5)foreignkey(sno)referencesstation(sno),
dztime(0)notnull,
cztime(0)notnull,
);
--添加列车信息
insertintotrainvalues('K1384','哈尔滨','包头','16:
28','21:
12');
insertintotrainvalues('T298','长春','北京','7:
32','14:
17');
insertintotrainvalues('G382','长春西','北京南','17:
03','23:
13');
insertintotrainvalues('D30','长春西','北京','15:
17','22:
22');
insertintotrainvalues('Z62','长春','北京','20:
15','06:
08');
insertintostationvalues('1','哈尔滨')--添加车站信息
insertintostationvalues('2','扶余')
insertintostationvalues('3','长春')
insertintostationvalues('4','四平')
insertintostationvalues('5','通辽')
insertintostationvalues('6','商都')
insertintostationvalues('7','呼和浩特')
insertintostationvalues('8','包头')
insertintostationvalues('01','长春')
insertintostationvalues('02','北京')
insertintostationvalues('11','长春')
insertintostationvalues('12','沈阳北')
insertintostationvalues('13','锦州')
insertintostationvalues('14','葫芦岛')
insertintostationvalues('15','山海关')
insertintostationvalues('16','秦皇岛')
insertintostationvalues('17','北京')
insertintostationvalues('21','长春西')
insertintostationvalues('22','沈阳北')
insertintostationvalues('23','葫芦岛')
insertintostationvalues('24','秦皇岛')
insertintostationvalues('25','唐山')
insertintostationvalues('26','北京')
insertintostationvalues('31','长春西')
insertintostationvalues('32','四平')
insertintostationvalues('33','沈阳北')
insertintostationvalues('34','山海关')
insertintostationvalues('35','秦皇岛')
insertintostationvalues('36','北京')
select*
fromstation
insertintoworkervalues('K1384','邓鑫磊','列车长')--添加职工信息表
insertintoworkervalues('K1384','陈继军','服务员')
insertintoworkervalues('K1384','贺鹏飞','乘警')
insertintoworkervalues('Z62','汪洋','列车长')
insertintoworkervalues('Z62','张志凯','服务员')
insertintoworkervalues('Z62','李进鹏','乘警')
insertintoworkervalues('T298','陆冠豪','列车长')
insertintoworkervalues('T298','郭子维','服务员')
insertintoworkervalues('T298','任延富','乘警')
insertintoworkervalues('G382','俞鸿涛','列车长')
insertintoworkervalues('G382','李德鸿','服务员')
insertintoworkervalues('G382','王若龙','乘警')
insertintoworkervalues('D30','银鑫','列车长')
insertintoworkervalues('D30','李博','服务员')
insertintoworkervalues('D30','金成龙','乘警')
insertintopassvalues('K1384','1','16:
28','16:
28')--添加经由信息表
insertintopassvalues('K1384','2','17:
57','17:
59')
insertintopassvalues('K1384','3','19:
34','19:
44')
insertintopassvalues('K1384','4','21:
08','21:
28')
insertintopassvalues('K1384','5','00:
15','00:
30')
insertintopassvalues('K1384','6','14:
11','14:
14')
insertintopassvalues('K1384','7','19:
10','19:
18')
insertintopassvalues('K1384','8','21:
12','21:
12')
insertintopassvalues('Z62','01','20:
15','20:
15')
insertintopassvalues('Z62','02','06:
08','06:
08')
insertintopassvalues('T298','11','23:
59','00:
06')
insertintopassvalues('T298','12','02:
44','02:
56')
insertintopassvalues('T298','13','05:
23','05:
29')
insertintopassvalues('T298','14','06:
00','06:
03')
insertintopassvalues('T298','15','07:
26','07:
32')
insertintopassvalues('T298','16','07:
50','07:
54')
insertintopassvalues('T298','17','10:
48','10:
48')
insertintopassvalues('G382','21','17:
00','17:
03')
insertintopassvalues('G382','22','18:
40','18:
44')
insertintopassvalues('G382','23','20:
20','20:
21')
insertintopassvalues('G382','24','21:
14','21:
16')
insertintopassvalues('G382','25','21:
54','21:
56')
insertintopassvalues('G382','26','23:
13','23:
13')
insertintopassvalues('D30','31','15:
44','15:
47')
insertintopassvalues('D30','32','16:
23','16:
25')
insertintopassvalues('D30','33','17:
31','17:
34')
insertintopassvalues('D30','34','19:
47','19:
48')
insertintopassvalues('D30','35','20:
05','20:
06')
insertintopassvalues('D30','36','22:
22','22:
22')
(4)提供以下SQL语句,并加以说明
--查询长春站到站出站信息
SELECTsname车站名,tno车次,dz到站时间,cz出站时间
frompass,station
where
pass.sno=station.sno
and
sname='长春'
--查询K1384列车沿途车站信息
selecttrain.tno车次,sname车站名,dz到站时间,cz出站时间
frompass,train,station
where
pass.sno=station.sno
and
train.tno=pass.tno
and
train.tno='K1384'
--从长春站到四平站的可选择的车次,使用自连接
selectdistincttrain.tno车次,station.sname出发,aa.sname到达,dz到站时间,cz出站时间
frompass,train,station,
stationasaa
wheretrain.tno=pass.tno
andpass.sno=station.sno
andstation.sname='长春'
andaa.sname='四平'
--统计8:
00-23:
00经过秦皇岛的列车数,使用嵌套语句
selectcount(*)列车数目
fromtrain
wheretrain.tno
in
(selecttrain.tno
frompass,train,station
wheretrain.tno=pass.tno
andpass.sno=station.sno
anddzbetween'8:
00'and'23:
00'
andstation.sname='秦皇岛')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 课程设计 火车票