⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 车站综合练习.txt

📁 orale培训教材包括了所有的sql说明和实例
💻 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 + -