SQL内测笔试题

原创 萧瑟  2016-04-04 18:15:20  阅读 1066 次 评论 0 条

来宾表:

点击查看原图

来宾类型表:

 点击查看原图

房间信息表:

点击查看原图

房间类型表:

点击查看原图

该数据库主要是管理酒店信息的,主要范围在来宾入住(Guest),来宾类型(GuestCategory);房间类型(RoomType);来宾住房后的信息(Room)。通过上述表结构,完成以下任务:

(前提:每个顾客都只住一天)

1.     查找2015510日入住的所有男性信息.

2.     查找出所有VIP入住者的电话号码.

3.     统计酒店所有房间的总价.

4.     查找出今天入住者的房间信息和个人信息。

5.     查找出入住时间为20156月入住了201的宾客.

6.     查找出所有入住过‘总统套房的来宾信息。

7.     查找201638日在住房状态的来宾总人数。

8.     查找所有’豪华房‘入住者的客户信息,按加床数量倒序。

9.     算出所有在20163月份入住且在3月份退房后所有‘标准间的总金额。(每个顾客都只住一天)

10.  算出201510月份,所有VIP来宾,在‘501’消费情况。(每个顾客只住一天)

GuestCategory:

CategoryID:类型ID  CategoryName:来宾类型(VIP,普通)

Guest:

GuestID:来宾ID      Name:姓名;

CategoryID:(外键)类型ID   Sex:性别;

Mobile:手机号;       RoomID:(外键)房间ID

ArriveTime:入住时间;     LeaveTime:离开时间;

Room:

RoomID:房间ID     Number:房间号;

TypeID:(外键)房间类型ID    BedNumber:加床数量;

Description:离开时填写的建议;  GuestNumber:入住人数;

State:入住状态(housing:入住中leave:离开empty:空)

RoomType:

TypeID:房间类型ID    TypePrice:房间价钱

TypeName:类型名称(标间,豪华间,总统套房)

AddBedPrice:加床价;   IsAddBed:是否能加床;

Remark:备注信息


答案:

1.	查找2015年5月10日入住的所有男性信息.
select * from Guest
where ArriveTime='2015-5-10' and sex='男'

2.	查找出所有VIP入住者的电话号码.
select Mobile from Guest g,GuestCategory gc
where g.CategoryID=gc.CategoryID
and CategoryName='VIP'

3.	统计酒店所有房间的总价. 
select sum(TypePrice) from RoomType ro,Room r
where ro.TypeID=r.TypeID

4.	查找出今天入住者的房间信息和个人信息。
select * from Guest g,Room r
where g.RoomID=r.RoomID
and ArriveTime='2016-3-31'

5.	查找出入住时间为2015年6月入住了201的宾客.
select * from Guest g,Room r
where g.RoomID=r.RoomID
and ArriveTime like '2015-6-%'
and Number='201'

6.	查找出所有入住过‘总统套房’的来宾信息。
select * from Guest g,Room r,RoomType rt
where g.RoomID=r.RoomID and r.TypeID=rt.TypeID
and TypeName='总统套房'

7.	查找2016年3月8日在住房状态的来宾总人数。
select count(*) from Guest g,Room r
where g.RoomID=r.RoomID
and LeaveTime>'2016-3-8' and State='housing'


8.	查找所有’豪华房‘入住者的客户信息,按加床数量倒序。
select * from Guest g,Room r,RoomType rt
where g.RoomID=r.RoomID and r.TypeID=rt.TypeID
and TypeName='总统套房' order by BedNumber desc

9.	算出所有在2016年3月份入住且在3月份退房后所有‘标准间’的总金额。
select sum(TypePrice) from Guest g,Room r,RoomType rt
where g.RoomID=r.RoomID and r.TypeID=rt.TypeID
and TypeName='标间' and LeaveTime like '2016-3-%'

10.	算出2015年10月份,所有VIP来宾,在‘501’消费情况。
select sum(TypePrice)+sum(BedNumber)*AddBedPrice from Guest g,Room r,RoomType rt,GuestCategory gc
where g.RoomID=r.RoomID and r.TypeID=rt.TypeID and g.CategoryID=gc.CategoryID
and CategoryName='VIP' and  Number='501' and LeaveTime='2015-10-%'



本文地址:https://www.xsyrz.cn/DD-SQL.html
版权声明:本文为原创文章,版权归 萧瑟 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?