📄 车站综合练习.txt
字号:
1:建立一个简单的公交车辆查询系统的表结构:
包括的信息:
车号(如 320,332),首班车时间,末班车时间,起点站,终点站,车站(不考虑各站的先后顺序)
起价(比如 空调车2元起价,一般1元,旅游车 1.5)
2:要求能够方便的添加删除 各路车对应的车站
3:制作并插入数据
--所建立的表要求应当能完成如下查询功能
1:查询320(或其他车次)的所有站
2:查询某一车次的所有站,及其终点起点,
3:查询从中关村到白石桥能坐的所有车,
4:现在是 6:20,在白石桥,能有车到人民大学吗?
5:现在能有车从白石桥到人民大学吗?(使用sysdate来衡量,成功)
注意:
1:表结构是基础。在考虑功能及信息后,先构思好表:几个表,各表字段,表有无关系。
2:建表结果可能不同,但只要能够完成功能要求就可以。
3:数据插入很重要。在以后开发中,测试数据的建立是基本要求。同时在建立测试数据时将强化对表结构的理解。
--公交车次
drop table bus;
create table bus(
busno varchar2(10) primary key,
shouban date,--首班车时间
moban date,--末班车时间
price number(3,1),--单价
qidian varchar2(20), --起点站
zhongdian varchar2(20)); --终点
-- 车站
create table busstation(busno varchar2(10),
station varchar2(20),
primary key (busno,station),
constraint fk_bus
foreign key(busno) references bus(busno));
insert into bus values('320',to_date('6:00:00','hh24:mi:ss'),to_date('23:00:00','hh24:mi:ss'),
1,'北京西站','中关村');
insert into bus values('332',to_date('6:50:00','hh24:mi:ss'),to_date('22:00:00','hh24:mi:ss'),
1,'动物园','颐和园');
insert into bus values('302',to_date('5:30:00','hh24:mi:ss'),to_date('23:10:00','hh24:mi:ss'),
1,'农展馆','巴沟村');
insert into busstation values('320','中关村');
insert into busstation values('320','人民大学');
insert into busstation values('320','黄庄');
insert into busstation values('320','农科院');
insert into busstation values('320','白石桥');
insert into busstation values('332','动物园');
insert into busstation values('332','中关村');
insert into busstation values('332','人民大学');
insert into busstation values('332','黄庄');
insert into busstation values('332','农科院');
insert into busstation values('332','白石桥');
insert into busstation values('332','颐和园');
insert into busstation values('302','中关村');
insert into busstation values('302','人民大学');
insert into busstation values('302','黄庄');
insert into busstation values('302','巴沟村');
insert into busstation values('302','农展馆');
1:查询320的所有站
2:查询某一车次的所有站,及其终点起点,
3:查询从中关村到白石桥能坐的所有车,
4:现在是 6:20,在白石桥,能有车到人民大学吗?
5:现在能有车从白石桥到人民大学吗?(使用sysdate来衡量,成功)
1:查询320的所有站
select station from busstation where busno='320';
2:查询某一车次的所有站,及其终点起点,
select station , bus.busno, qidian 起点站,zhongdian 终点站 from bus ,busstation
where bus.busno=busstation.busno;
select station , bus.busno, qidian 起点站,zhongdian 终点站 from bus ,busstation
where bus.busno=busstation.busno
and bus.busno='320';
3:查询从中关村到白石桥能坐的所有车,--------------------------------------
--思路:用集合实现:取出所有过中关村的车组成一个集,所有过白石桥的车组成一个集
--取两个集的交集
select busno from busstation
where station='中关村'
intersect
select busno from busstation
where station='白石桥';
--用子查询
--思路:取出所有过中关村的,并且要求其同时也过白石桥
select busno from busstation
where station='中关村' and
busno in
(select busno from busstation
where station='白石桥');
4:现在是 6:20,在白石桥,能有车到中关村吗?--------------------------------------
--建一个view存储从中关村到白石桥能坐的所有车。
--以此view为基础关联查询bus表,首班车时间 <6:20<末班车时间
create or replace view viewbus as (select busno from busstation
where station='中关村'
intersect
select busno from busstation
where station='白石桥');
--以此view为基础关联查询bus表,首班车时间 <6:20<末班车时间
--使用to_char将时间转为字符,字符比大小。
select viewbus.busno from viewbus,bus
where bus.busno=viewbus.busno
and to_char(shouban,'hh24:mi:ss') <'06:20:00' and to_char(moban,'hh24:mi:ss') >'06:20:00';
5:现在能有车从白石桥到中关村吗?(使用sysdate来衡量,成功)--------------------------------------
--使用to_char将时间转为字符,字符比大小。
select viewbus.busno from viewbus,bus
where bus.busno=viewbus.busno
and to_char(shouban,'hh24:mi:ss') <to_char(sysdate,'hh24:mi:ss')
and to_char(moban,'hh24:mi:ss') >to_char(sysdate,'hh24:mi:ss');
--不成功.因为sysdate带着日期.date插入也带着日期。所以,sysdate 比moban时间大
select viewbus.busno from viewbus,bus
where bus.busno=viewbus.busno
and shouban < sysdate
and sysdate< moban;
--使用to_char将时间转为字符,字符比大小。
select viewbus.busno from viewbus,bus
where bus.busno=viewbus.busno
and to_char(shouban,'hh24:mi:ss') <'06:20:00' and to_char(moban,'hh24:mi:ss') >'06:20:00';
--显示'hh24:mi:ss'的结果
select to_char(sysdate,'hh24:mi:ss') from dual;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -